Software Testing and Quality Assurance Practical Considerations (4) 1.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Test plans. Test Plans A test plan states: What the items to be tested are At what level they will be tested What sequence they are to be tested in How.
System Integration Verification and Validation
Software Quality Assurance Plan
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Copyright © 2003 by The McGraw-Hill Companies, Inc. All rights reserved. Business and Administrative Communication SIXTH EDITION.
1 Test Planning CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 9, 2007.
CSE 830: Design and Theory of Algorithms
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
Chapter 1 Principles of Programming and Software Engineering.
Chapter 5: Project Scope Management
Chapter 1 Program Design
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Chapter 10: Estimating with Confidence
Test Plan A document that indicates what testing will occur, how it will occur, and what resources will be necessary for it to occur. A test plan also.
CSE Senior Design II Test Planning Mike O’Dell Based on an earlier presentation by Mike O’Dell, UTA.
Software Testing Prasad G.
Introduction to Software Testing
Software Configuration Management
1 L07SoftwareDevelopmentMethod.pptCMSC 104, Version 8/06 Software Development Method Topics l Software Development Life Cycle Reading l Section 1.4 – 1.5.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
S/W Project Management
… and after unit testing …
Software Testing Lifecycle Practice
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 The process Process, Methods, and Tools
Chapter 8: Systems analysis and design
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
+ The Practice of Statistics, 4 th edition – For AP* STARNES, YATES, MOORE Chapter 8: Estimating with Confidence Section 8.1 Confidence Intervals: The.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
Centro de Estudos e Sistemas Avançados do Recife PMBOK - Chapter 4 Project Integration Management.
Week 2 Seminar: Project Scope Management
Strong9 Consulting Services, LLC 1 PMI - SVC I-80 Breakfast Roundtable Monthly Meeting Thursday, October 12, :00 am – 9:00 am.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies.
Software Testing. Software testing is the execution of software with test data from the problem domain. Software testing is the execution of software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Chapter 6: THE EIGHT STEP PROCESS FOCUS: This chapter provides a description of the application of customer-driven project management.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 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.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Understanding General Software Development Lesson 3.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 test10b Software Testing Necessary to measure and certify quality in software.
Introduction to Software Testing EDITION 1 Chapter 6 Practical Considerations (partial) Paul Ammann & Jeff Offutt
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Cmpe 589 Spring Fundamental Process and Process Management Concepts Process –the people, methods, and tools used to produce software products. –Improving.
Understanding General Software Development Lesson 3.
+ The Practice of Statistics, 4 th edition – For AP* STARNES, YATES, MOORE Chapter 8: Estimating with Confidence Section 8.1 Confidence Intervals: The.
CS223: Software Engineering Lecture 25: Software Testing.
Information Technology Project Management, Seventh Edition.
Software Testing and Quality Assurance Practical Considerations (1) 1.
1 March 19, Test Plans William Cohen NCSU CSC 591W March 19, 2008.
Principles of Programming & Software Engineering
Introduction to Software Testing Chapter 6 Practical Considerations
MIS 120 Test Planning.
Principles of Programming and Software Engineering
Manfred Huber Based on an earlier presentation by Mike O’Dell, UTA
Introduction to Software Testing
Test Planning Mike O’Dell (some edits by Vassilis Athitsos)
Test Automation CS 4501 / 6501 Software Testing
Chapter 8: Estimating with Confidence
Software Testing Lifecycle Practice
Presentation transcript:

Software Testing and Quality Assurance Practical Considerations (4) 1

Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 6  Sections 6.4 and 6.5 2

3 Outline Test Plans ◦ IEEE Standard ◦ Types of Test Plans Identifying Correct Outputs ◦ Direct verification ◦ Redundant computation ◦ Consistency checks ◦ Data redundancy

4 Test Plans The most common question I hear about testing is “ How do I write a test plan? ” This question usually comes up when the focus is on the document, not the contents

5 Test Plans It’s the contents that are important, not the structure ◦ Good testing is more important than proper documentation ◦ However – documentation of testing can be very helpful Most organizations have a list of topics, outlines, or templates

6 Standard Test Plan ANSI / IEEE Standard is ancient but still used Test Plan A document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning.

7 Standard Test Plan Many organizations are required to adhere to this standard Unfortunately, this standard emphasizes documentation, not actual testing – often resulting in a well documented vacuum

8 Types of Test Plans Mission plan – tells “why” ◦ Usually one mission plan per organization or group ◦ Least detailed type of test plan Strategic plan – tells “what” and “when” ◦ Usually one per organization, or perhaps for each type of project ◦ General requirements for coverage criteria to use

9 Types of Test Plans Tactical plan – tells “how” and “who” ◦ One per product ◦ More detailed ◦ Living document, containing test requirements, tools, results and issues such as integration order

10 Test Plan Contents – System Testing Purpose Target audience and application Deliverables Information included ◦ Introduction ◦ Test items ◦ Features tested ◦ Features not tested ◦ Test criteria ◦ Pass / fail standards ◦ Criteria for starting testing ◦ Criteria for suspending testing ◦ Requirements for testing restart Hardware and software requirements Responsibilities for severity ratings Staffing & training needs Test schedules Risks and contingencies Approvals

11 Test Plan Contents – Tactical Testing Purpose Outline Test-plan ID Introduction Test reference items Features that will be tested Features that will not be tested Approach to testing (criteria) Criteria for pass / fail Criteria for suspending testing Criteria for restarting testing Test deliverables Testing tasks Environmental needs Responsibilities Staffing & training needs Schedule Risks and contingencies Approvals

12 Identifying Correct Outputs With simple software methods, we have a very clear idea whether outputs are correct or not But for most programs it’s not so easy This section presents four general methods for checking outputs: ◦ Direct verification ◦ Redundant computation ◦ Consistency checks ◦ Data redundancy Oracle Problem Does a program execute correctly on a specific input ?

13 Direct Verification Appealing because it eliminates some human error Fairly expensive – requiring more programming Verifying outputs is deceptively hard ◦ One difficulty is getting the post-conditions right Using a program to check the answer

14 Direct Verification Not always possible – we do not always know the correct answer ◦ Flow calculations in a stream – the solution is an approximation based on models and guesses; we don’t know the correct answers ! ◦ Probability of being in a particular state in a Petri net – again, we don’t know the correct answer

15 Direct Verification Example Consider a simple sort method Post-condition : Array is in sorted order Input Output 1234 Oops ! Output Oops ! Post-condition : Array sorted from lowest to highest and contains all the elements from the input array Input Output Oops ! Post-condition : Array sorted from lowest to highest and is a permutation of the input array

16 Direct Verification Example This is almost as complicated as the sort method under test ! We can easily make mistakes in the verification methods Input : Array A Make copy B of A Sort A // Verify A is a permutation of B Check A and B are of the same size For each object in A Check if object appears in A and B the same number of times // Verify A is ordered for each index I but last in A Check if A [i] <= A [i+1]

17 Redundant Computation Write two programs – check that they produce the same answer Very expensive ! Problem of coincident failures ◦ That is, both programs fail on the same input ◦ Sadly, the “independent failure assumption” is not valid in general Computing the answer in a different way

18 Redundant Computation This works best if completely different algorithms can be used ◦ Not clear exactly what “completely different” means Consider regression testing ◦ Current software checked against prior version ◦ Special form of redundant computation ◦ Clearly, independence assumption does not hold  But still extremely powerful

19 Consistency Checks Check if a probability is negative or larger than one Check assertions or invariants ◦ No duplicates ◦ Cost is greater than zero ◦ Internal consistency constraints in databases or objects These are only partial solutions and does not always apply, but is very useful within those limits Check part of the answer to see if it makes sense

20 Data Redundancy Check for “identities” ◦ Testing sin (x) : sin(a+b) = sin(a)cos(b) + cos(a)sin(b)  Choose a at random  Set b=x-a  Note failure independence of sin(x), sin(a)  Repeat process as often as desired; choose different values for a  Possible to have arbitrarily high confidence in correctness assessment ◦ Inserting an element into a structure and removing it These are only partial solutions and does not always apply, but is very useful within those limits Compare results of different inputs

21 Key Points A major obstacle to the adoption of advanced test criteria is that they affect the process ◦ It is very hard to change a process Most testing is actually regression testing Test criteria make regression testing much easier to automate OOP has changed the way in which we integrate and test software components ◦ To be successful, testing has to be integrated throughout the process ◦ Identifying correct outputs is almost as hard as writing the program