(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.

Slides:



Advertisements
Similar presentations
Verification and Validation
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 4 Quality Assurance in Context
Inspection (c) 2007 Mauro Pezzè & Michal Young Ch 18, slide 1 Photo credit jurvetson on Flickr.com; creative commons attribution license.
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
(c) 2007 Mauro Pezzè & Michal Young Ch 16, slide 1 Fault-Based Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
(c) 2007 Mauro Pezzè & Michal Young Ch 4, slide 1 Test and Analysis Activities within a Software Process.
Fundamentals of Information Systems, Second Edition
Requirement Engineering – A Roadmap
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
(c) 2007 Mauro Pezzè & Michal Young Ch 10, slide 1 Functional testing.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
(c) 2007 Mauro Pezzè & Michal Young Ch 3, slide 1 Basic Principles.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
(c) 2007 Mauro Pezzè & Michal Young Ch 2, slide 1 A Framework for Testing and Analysis.
Introduction to Software Testing
Verification and Validation
Chapter 3 Software Processes.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 23 Slide 1 Software testing Slightly adapted by Anders Børjesson.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CLEANROOM SOFTWARE ENGINEERING.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 8 Testing.
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.
This chapter is extracted from Sommerville’s slides. Textbook chapter
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Chapter 3: Software Project Management Metrics
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
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.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
CSC 480 Software Engineering
Chapter 18 Maintaining Information Systems
Verification and Validation Overview
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
CS310 Software Engineering Dr.Doaa Sami Khafaga
Presentation transcript:

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 2 Learning objectives View the “big picture'' of software quality in the context of a software development project and organization: Introduce the range of software verification and validation activities Provide a rationale for selecting and combining them within a software development process.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 3 Engineering processes Sophisticated tools –amplify capabilities –but do not remove human error Engineering disciplines pair –construction activities with –activities that check intermediate and final products Software engineering is no exception: construction of high quality software requires –construction and –verification activities

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 4 Verification and design activities Verification and design activities take various forms –suited to highly repetitive construction of non- critical items for mass markets –highly customized or highly critical products. Appropriate verification activities depend on –engineering discipline –construction process –final product –quality requirements.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 5 Peculiarities of software Software has some characteristics that make V&V particularly difficult: –Many different quality requirements –Evolving (and deteriorating) structure –Inherent non-linearity –Uneven distribution of faults Example If an elevator can safely carry a load of 1000 kg, it can also safely carry any smaller load; If a procedure correctly sorts a set of 256 elements, it may fail on a set of 255 or 53 or 12 elements, as well as on 257 or 1023.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 6 Impact of new technologies Advanced development technologies –can reduce the frequency of some classes of errors –but do not eliminate errors New development approaches can introduce new kinds of faults examples –deadlock or race conditions for distributed software –new problems due to the use of polymorphism, dynamic binding and private state in object-oriented software.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 7 Variety of approaches There are no fixed recipes Test designers must –choose and schedule the right blend of techniques to reach the required level of quality within cost constraints –design a specific solution that suits the problem the requirements the development environment

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 8 Five Basic Questions 1.When do verification and validation start? When are they complete? 2.What particular techniques should be applied during development? 3.How can we assess the readiness of a product? 4.How can we control the quality of successive releases? 5.How can the development process itself be improved?

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 9 1: When do V&V start? When are they complete? Test is not a (late) phase of software development –Execution of tests is a small part of the verification and validation process V&V start as soon as we decide to build a software product, or even before V&V last far beyond the product delivery as long as the software is in use, to cope with evolution and adaptations to new conditions

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 10 Early start: from feasibility study The feasibility study of a new project must take into account the required qualities and their impact on the overall cost At this stage, quality related activities include –risk analysis –measures needed to assess and control quality at each stage of development. –assessment of the impact of new features and new quality requirements –contribution of quality control activities to development cost and schedule.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 11 Long lasting: beyond maintenance Maintenance activities include –analysis of changes and extensions –generation of new test suites for the added functionalities –re-executions of tests to check for non regression of software functionalities after changes and extensions –fault tracking and analysis

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 12 2: What particular techniques should be applied during development? No single A&T technique can serve all purposes The primary reasons for combining techniques are: –Effectiveness for different classes of faults example: analysis instead of testing for race conditions –Applicability at different points in a project example: inspection for early requirements validation –Differences in purpose example: statistical testing to measure reliability –Tradeoffs in cost and assurance example: expensive technique for key properties

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 13 Staging A&T techniques

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 14 3: How can we assess the readiness of a product? A&T during development aim at revealing faults We cannot reveal are remove all faults A&T cannot last indefinitely: we want to know if products meet the quality requirements We must specify the required level of dependability and determine when that level has been attained.

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 15 Different measures of dependability Availability measures the quality of service in terms of running versus down time Mean time between failures (MTBF) measures the quality of the service in terms of time between failures Reliability indicates the fraction of all attempted operations that complete successfully

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 16 Example of different dependability measures Web application: 50 interactions terminating with a credit card charge. The software always operates flawlessly up to the point that a credit card is to be charged, but on half the attempts it charges the wrong amount. What is the reliability of the system? If we count the fraction of individual interactions that are correctly carried out, only one operation in 100 fail: The system is 99% reliable. If we count entire sessions, only 50% reliable, since half the sessions result in an improper credit card charge

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 17 Assessing dependability Randomly generated tests following an operational profile Alpha test: tests performed by users in a controlled environment, observed by the development organization Beta test: tests performed by real users in their own environment, performing actual tasks without interference or close monitoring

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 18 4: How can we control the quality of successive releases? Software test and analysis does not stop at the first release. Software products operate for many years, and undergo many changes: –They adapt to environment changes –They evolve to serve new and changing user requirements. Quality tasks after delivery –test and analysis of new and modified code –re-execution of system tests –extensive record-keeping

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 19 5: How can the development process itself be improved? The same defects are encountered in project after project A third goal of the improving the quality process is to improve the process by –identifying and removing weaknesses in the development process –identifying and removing weaknesses in test and analysis that allow them to remain undetected

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 20 A four step process to improve fault analysis and process 1.Define the data to be collected and implementing procedures for collecting them 2.Analyze collected data to identify important fault classes 3.Analyze selected fault classes to identify weaknesses in development and quality measures 4.Adjust the quality and development process

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 21 An example of process improvement 1.Faults that affect security were given highest priority 2.During A&T we identified several buffer overflow problems that may affect security 3.Faults were due to bad programming practice and were revealed late due to lack of analysis 4.Action plan: Modify programming discipline and environment and add specific entries to inspection checklists

(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 22 Summary The quality process has three different goals: –Improving a software product –assessing the quality of the software product –improving the quality process We need to combine several A&T techniques through the software process A&T depend on organization and application domain. Cost-effectiveness depends on the extent to which techniques can be re-applied as the product evolves. Planning and monitoring are essential to evaluate and refine the quality process.