Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.

Slides:



Advertisements
Similar presentations
Software Testing Techniques
Advertisements

Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Unit-V testing strategies and tactics.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Ossi Taipale, Lappeenranta University of Technology
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Creator: ACSession No: 13 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Testing - Techniques CSE300 Advanced Software Engineering.
Chapter 17 Software Testing Techniques
Software Testing Techniques. December Introduction Many aspects to achieving software quality –Formal reviews (of both the software process and.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
BASIS PATH TESTING ● By Tom McCabe ● McCabe, T., "A Software Complexity Measure," IEEE Trans. Software Engineering, vol. SE-2, December 1976, pp
Testing an individual module
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Chapter 18 Testing Conventional Applications
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Software Engineering Lecture 12 Software Testing Techniques 1.
Software Testing & Strategies
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Systems Verification and Validation Laboratory Assignment 3
System/Software Testing
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Testing phases. Test data Inputs which have been devised to test the system Test cases Inputs to test the system and the predicted outputs from these.
Prof. Mohamed Batouche Software Testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Defect testing l Testing programs to establish the presence of system defects.
CSC 480 Software Engineering Lecture 14 Oct 16, 2002.
Software Testing Testing types Testing strategy Testing principles.
Agenda Introduction Overview of White-box testing Basis path testing
Software Testing. 2 CMSC 345, Version 4/12 Topics The testing process  unit testing  integration and system testing  acceptance testing Test case planning.
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
Software Engineering 2 Software Testing Claire Lohr pp 413 Presented By: Feras Batarseh.
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.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 14a: Software Testing Techniques Software Engineering: A Practitioner’s Approach, 6/e Chapter.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Construction Lecture 19 Software Testing-2.
Theory and Practice of Software Testing
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Dynamic Testing.
White Box Testing by : Andika Bayu H.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CSC 395 – Software Engineering Lecture 27: White-Box Testing.
Dynamic White-Box Testing What is code coverage? What are the different types of code coverage? How to derive test cases from control flows?
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
CX Introduction to Web Programming Testing.
Chapter 17 Software Testing Techniques
Based on slides created by Ian Sommerville & Gary Kimura
Software Testing.
Software Testing.
Software Engineering (CSI 321)
Chapter 13 & 14 Software Testing Strategies and Techniques
Types of Testing Visit to more Learning Resources.
White Box Testing.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing (Lecture 11-a)
Chapter 10 – Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing “If you can’t test it, you can’t design it”
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation of some aspect of the system or component. IEEE Std

Testing versus Other Approaches Testing versus Software Quality Management Testing versus Formal Inspections Testing versus Proofs of Correctness Testing versus Formal Verification Testing versus Debugging Testing versus Programming

Black-box Testing Tests the software without understanding how the internal code is implemented. Tests functionality based on requirements Advantages? Disadvantages?

White-box Testing Tests based on the internal logic and structure of the code Advantages? Disadvantages?

What makes a good test? Expected test outcome is known Has a high probability of exposing an error Independence from coding Tests boundary conditions Automated Testing can not show the absence of defects, it can only show that software defects are present

Test Levels Unit testing Integration testing – Finding errors when integrating unit-tested modules System testing – Testing the entire system (as a whole) running on the target hardware Acceptance testing – Performed by the customer – Beta testing Regression testing – Testing changes to make sure the old code still works with the new changes

Types of Tests

Black-box Testing Techniques Equivalence partitioning – Reduces the number of test cases and selects the right test cases to cover all possible scenarios. Boundary-value analysis – Test cases chosen at boundaries of equivalence partitions. Helps with off-by-one errors Robustness testing – Test values outside the domain Ad hoc testing, Exploratory testing – Based on the tester’s skill, intuition, and experience

Equivalence Partitions X < = -2valid -2 < X < 1invalid X >= 1valid Integer.MIN_VALUE, -2 -1, 0 1, Integer.MAX_VALUE

White-box Testing Techniques Basis Path testing 1.Convert the unit into a flow graph A flow graph is a directed graph with a start node and a terminal node 2.Compute the cyclomatic complexity of the unit's logical complexity 3.Use the measure to derive a basis set of execution paths 4.Prepare test cases that will force execution of each path in the basis set.

Flow Graph Example 1.GET(A); GET(B); 2.if A > 15 then 3. if B < 10 then 4. B := A + 5; 5. else 6. B := A - 5; 7. end if 8. else 9. A := B + 5; 10. end if;

Cyclomatic Complexity The cyclomatic complexity gives a quantitative measure of logical complexity Its value is the number of independent paths in the basis set V(G) = E - N + 2 where E = number of edges in G and N = number of nodes in G V(G) provides an upper bound on the number of tests needed to ensure that all paths are executed at least once Studies have shown: – V(G) is directly related to the number of errors in source code – V(G) = 10 is a practical upper limit for testing

Draw the Flow Graph 1:WHILE NOT EOF LOOP 2: Read Record; 2: IF field1 equals 0 THEN 3: Add field1 to Total 3: Increment Counter 4: ELSE 4: IF field2 equals 0 THEN 5: Print Total, Counter 5: Reset Counter 6: ELSE 6: Subtract field2 from Total 7: END IF 8: END IF 8: Print "End Record" 9: END LOOP 9: Print Counter Cyclomatic complexity #edges - #nodes – = 4