CompSci 230 Software Design and Construction

Slides:



Advertisements
Similar presentations
Testing and Quality Assurance
Advertisements

SDLC – Beyond the Waterfall
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Agile Architecture Prabhu Venkatesan for COMP-684.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
COMP 350: Object Oriented Analysis and Design Lecture 2
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CompSci 230 Software Design and Construction Software Quality 2015S1 Revision.
An Agile View of Process
Introduction to Agile.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Dr Andy Brooks1 FOR0383 Software Quality Assurance Lecture 1 Introduction Forkröfur/prerequisite: FOR0283 Programming II Website:
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
1 SWE Introduction to Software Engineering Lecture 4.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
CS3100 Software Project Management Agile Approaches.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Lecture 3 – Agile Approach
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
1 Requirements Engineering for Agile Methods Lecture # 41.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Think Scrum, act Scrum Scrum Practitioner like a boss Thibault Clavier.
 System Requirement Specification and System Planning.
Software Engineering Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
Agile/XP Introduction
CompSci 230 Software Construction
Appendix B Agile Methodologies
Software Engineering Process
Iterative and Agile Development
Introduction to Software Engineering
Introduction to Software Testing
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
CSE 303 Concepts and Tools for Software Development
Rapid software development
Presentation transcript:

CompSci 230 Software Design and Construction Software Quality 2015S1 Traditional approach to testing (Waterfall)

Lecture plan Week 1: No class - Anzac Day What is software quality? Some key developer practices (version control, testing). Week 2: Black box testing. White-box testing. Myers' testing principles. Week 3: Traditional approach to testing (Waterfall). Agile approach to testing (XP). Famous failures. Software Quality 2015 S1

Learning goals Have a working understanding of : Discuss: the waterfall model for software development testing in the waterfall model iterative, incremental and evolutionary development Discuss: limitations of the waterfall model agile alliance and manifesto Software Quality 2015 S1

Brief history of waterfall 1960s : programming is an ‘art’ practitioners receive no formal training serious concerns about quality as projects became larger 1968 : conference organised by the NATO Science Committee discussed issues with ‘software manufacture’ coined the term ‘software engineering’ introduced standard development model (waterfall) based on staged manufacturing process Note : many ‘current’ issues discussed (need to iterate, obtain feedback from customer, reuse, product architecture) BUT appears to have been little attempt to reframe software development as anything other than a manufacturing process. Software Quality 2015 S1

Waterfall model Staged model. Each stage : implemented by different people with different skill sets must be completed and ‘signed off’ before the next begins verified against the previous stage before sign-off http://www.coleyconsulting.co.uk/from-waterfall-to-v-model.htm Software Quality 2015 S1

Waterfall model - verification At each stage, what is needed to verify that the product is being built according to what is stated in the previous stage (Are we building the product right)? Documents – requirements specs, design specs, code, test cases Process – reviews, walkthroughs, inspections http://softwaretestingfundamentals.com/verification-vs-validation/ Software Quality 2015 S1

Waterfall model - documents Documents play a critical role in the verification process. Document standards : IEEE Recommended Practice for Software Requirements Specifications (SRS) etc. IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Specifications / Software Quality 2015 S1

Waterfall model - requirements A template from the IEEE SRS. Note that, in addition to the features, you must consider external product interfaces and non-functional requirements. IEEE Std 830-1998 - IEEE Recommended Practice for Software Requirements Specifications / Software Quality 2015 S1

V-model for testing Staged model testing : Each stage has a corresponding kind of test AKA Integration test AKA Unit test http://www.coleyconsulting.co.uk/from-waterfall-to-v-model.htm Software Quality 2015 S1

V-model for testing Component (unit) test Performed by Issues Does the component implement the design? Performed by developer OR independent tester Issues Cannot catch every bug in a component. Impossible to test every combination of inputs (black box) every execution path (white box) Software Quality 2015 S1

V-model for testing Interface (integration) test Performed by Issues Do the components work with each other? Performed by developer OR independent build person Issues Many integration issues for large application interfaces misunderstanding about functionality Software Quality 2015 S1

V-model for testing System test Performed by Issues Does the software deliver to the specification (functional and non- functional requirements)? Performed by specialised test team Issues Can be difficult to replicate user’s (production) environment Software Quality 2015 S1

V-model for testing Acceptance test Performed by Issues Does the software deliver what the customer wanted? Performed by specialised QA team and/or customer (alpha releases) Issues Can be difficult to replicate user’s environment use low spec machines to test e.g. latency issues Software Quality 2015 S1

V-model for testing Release test Performed by Issues Does the software work in the existing business environment? Performed by operations team and/or customer (beta releases) Issues Customers can be busy and don’t want to be interrupted If beta testing, need committed users Software Quality 2015 S1

V-model for testing System, acceptance and release tests aim to validate that the software does what the customer wants it to do (Did we build the right product?) System test Does the software deliver to the specification? Test team. Acceptance test Does the software deliver what the customer wanted? Customer. Release test Does the software work in the existing business environment? Operations team. http://softwaretestingfundamentals.com/verification-vs-validation/ Software Quality 2015 S1

Quality characteristics Testing relating to quality characteristics: Load testing – apply maximum loads to test maximum capacity. Stress testing – find breaking point by applying over the maximum load. Usability testing – measure how quickly users learn to use the system complete specific tasks etc. Reliability testing Portability testing Software Quality 2015 S1

Other testing Other kinds of testing : Smoke testing. During integration, before the product is handed over to the test team, a superficial check is made by the build person that the product’s basic features do what they are supposed to. Purpose is, of course, to not waste the test team’s time. Regression testing. Applied when changes to the product are needed (to fix bugs or add functionality) to make sure nothing is broken. Applied at unit, integration and system test levels, Software Quality 2015 S1

Waterfall - issues Practitioners uncovered some serious issues when implementing a waterfall approach : During projects lasting several years, clients often changed their minds about what was required. The wrong product was delivered. changes in environment introduction of new technologies The need for extensive documentation resulted in documents not being kept up- to-date. e.g. during design phase, mistake in requirements document is discovered – fixed in design doc but not in requirements doc. No communication between practitioners from different phases meant that tacit knowledge wasn’t shared. Coders often didn’t really grasp what was wanted. Software Quality 2015 S1

Waterfall summary Waterfall is a staged approach based on a manufacturing paradigm. Created to address problems in large, complex development efforts. Communication is largely via documentation. Serious issues relating to documentation, communication and delivering what the customer really wanted. Software Quality 2015 S1

Agile alliance Many practitioners explored ways to mitigate issues Many (most?) projects actually implemented an iterative and incremental approach. 1970s: Harlan Mills - upfront specification, deliver in many increments. adapt designs as a result of customer feedback. 1976: Tom Gilb formally introduced ideas of ‘evolutionary project management’. no upfront specification, rather discover requirements in an iterative way. In 2001, a number of separate groups working on ‘agile’ approaches to software development formed the Agile Alliance. http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf http://www.agilealliance.org/ 2015 S1 Software Quality

Agile alliance Mission Manifesto “We support those who explore and apply Agile principles and practices to make the software industry productive, humane and sustainable.” Manifesto “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more.” http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf http://www.agilealliance.org/ 2015 S1 Software Quality

Agile alliance Principles: http://www.agilealliance.org/ 2015 S1 Software Quality

Agile methods http://en.wikipedia.org/wiki/Agile_software_development Software Quality

Agile approach Agile approach is based on a software-as-a-service paradigm. Communication is largely face-to-face. Software is delivered frequently to customers. The agile methods are quite different from one another but have the Principles in common. Next session, we will study one agile method, eXtreme Programming (XP), in greater detail. Software Quality 2015 S1