1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.

Slides:



Advertisements
Similar presentations
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Advertisements

SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Unit Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 27, 2007.
1 Software Testing and Quality Assurance Lecture 21 – Class Testing Basics (Chapter 5, A Practical Guide to Testing Object- Oriented Software)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing and Quality Assurance
White Box Testing and Symbolic Execution Written by Michael Beder.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing 2.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 6 - Software Testing Techniques.
Testing an individual module
Chapter 18 Testing Conventional Applications
CS4723 Software Validation and Quality Assurance Lecture 02 Overview of Software Testing.
ECE122 L17: Method Development and Testing April 5, 2007 ECE 122 Engineering Problem Solving with Java Lecture 17 Method Development and Testing.
Software Engineering Lecture 12 Software Testing Techniques 1.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 9 Functional Testing
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Verificarea şi Validarea Sistemelor Soft Tem ă Laborator 2 Testare Black Box Dat ă primire laborator: Lab 2 Dat ă predare laborator: Lab 2,3.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Testing (Part 2)
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS4311 Spring 2011 Unit Testing Dr. Guoqiang Hu Department of Computer Science UTEP.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Course Outline Traditional Static Program Analysis –Theory –Classic analysis and applications Points-to analysis, CHA, RTA –The Soot analysis framework.
CS /51 Illinois Institute of Technology CS487 Software Engineering Software Testing Techniques Mr. David A. Lash.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Test Drivers and Stubs More Unit Testing Test Drivers and Stubs CEN 5076 Class 11 – 11/14.
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
Black-box Testing.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
White Box-based Coverage Testing (© 2012 Professor W. Eric Wong, The University of Texas at Dallas) 111 W. Eric Wong Department of Computer Science The.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 © 2011 Professor W. Eric Wong, The University of Texas at Dallas Requirements-based Test Generation for Functional Testing W. Eric Wong Department of.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Test case design l Involves designing the test cases (inputs and outputs) used.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Testing It is much better to have a plan when testing your programs than it is to just randomly try values in a haphazard fashion. Testing Strategies:
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
GROUP MEMBERS AYAZ JAVED BITF06A002 SADAF SARFARAZ BITF06A003 SAMIN ATIQA BITF06A028 BILAL KHALID BITF06A042.
Software Testing. Software Quality Assurance Overarching term Time consuming (40% to 90% of dev effort) Includes –Verification: Building the product right,
Testing Tutorial 7.
CS223: Software Engineering
Software Testing.
Verification & Validation
Types of Testing Visit to more Learning Resources.
Testing Approaches.
Software Development Cycle
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software testing.
CSE403 Software Engineering Autumn 2000 More Testing
Institute of Computing Tech.
Software Development Cycle
CSE 1020:Software Development
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques

2 Lecture Outline Black-box & White-box Testing Input Domains Random Testing Equivalence Classes

3 Black-Box Testing requirements events input output

4 Black-box Testing Test cases are derived from formal specification of the system. Test case selection can be done without any reference to the program design or code. Only tests the functionality and features of the program. Not the internal operation.

5 Black-box Testing Advantages Test case selection is done before the implementation of a program. Help in getting the design and coding correct with respect to the specification.

6 White-Box Testing

7 Test cases are derived from the internal design specification or actual code for the program. Advantages Tests the internal details of the code; Checks all paths that a program can execute. Limitations Wait until after designing and coding the program under test in order to select test cases.

8 Input Domains Software requirements and design specification; and External variables of the program you are testing. Test input selection all about selecting the values in this domain that has the highest likelihood of producing failures.

9 Input Partitioning Input Classifier Function1 (with input domain D1) Function 2 (with input domain D2) Function n (with input domain Dn) Output

10 Input Partitioning Programs are considered as the composition of an input classifier; that Classifies input domain into one of a number of different classes; where Each input class computes one function of the overall program. Each of the functions computed by a program occurs along a program path, a path in the program that executes a sequence of statements for computing function.

11 Input Partitioning - Example Int min (int x, int y) { int minimum = x; if (x > y) { minimum = y; } return minimum; } Path 1

12 Input Partitioning - Example Int min (int x, int y) { int minimum = x; if (x > y) { minimum = y; } return minimum; } Path 2

13 Input Partitioning - Example Computation faults - The correct path is chosen but an incorrect computation occurs along that path. Domain faults - The computation is correct for each path but an incorrect path is chosen. The incorrect path is executed for the input domain. The decisions that make up the path selection may contain a fault. The correct path (or a part) may be missing.

14 Random Testing Distribution of inputs comes form an operational profile for the program. Probability that an element in the input domain will be chosen if the program is actually being used.

15 Random Testing ACB Inputs Probability of Occurrence Using some form of equivalence class Inputs randomly chosen from the equivalence class

16 Random Testing - Issues Large number of inputs need to be confident that input domain has been adequately covered. Distribution of random input simply misses the faults. Difficult to estimate coverage of the input domain.

17 Equivalence Classes Set of values from the input domain that are likely to produce failures for a program. A single test input taken from an equivalence class is representative of all of the inputs in that class.

18 Equivalence Classes Int min (int x, int y) { int minimum = x; if (x > y) { minimum = y; } return minimum; } Equivalence Class A - All inputs that satisfy x > y will execute one path. Equivalence Class B - All inputs that satisfy x ≤ y will execute one path.

19 A Good Equivalence Class? Use underlying structure of the program To determine which inputs execute the same program statements White-box testing Specified functionality of the program Black-box testing Domain Testing Equivalence Partitioning

20 Domain Testing Partition input of a program using the program structure itself. Input space is first partitioned into a set of mutually exclusive classes. Each corresponds to a program path. Test cases are selected from The domain boundaries Points close to the domain boundaries.

21 Equivalence Partitioning Partitions the input of a program using the functional requirements of the program. Aim is to minimise the number of test cases required to cover all of the equivalence classes.

22 Key Points Black-box and white-box testing are complementary approaches. Each program has a input domain. Test input selection is all about selecting the values in this domain that has the highest likelihood of producing failures.