SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.

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.
Chapter 14 Testing Tactics
Lecture 8: Testing, Verification and Validation
Chapter 6 Path Testing Software Testing
1 Ivan Marsic Rutgers University LECTURE 15: Software Complexity Metrics.
CYCLOMATIC COMPLEXITY 1. Invented by Thomas McCabe (1974) to measure the complexity of a program ’ s conditional logic Cyclomatic complexity of graph.
Creator: ACSession No: 13 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 Testing - Techniques CSE300 Advanced Software Engineering.
Software Testing Techniques. December Introduction Many aspects to achieving software quality –Formal reviews (of both the software process and.
White Box Testing Techniques Dynamic Testing. White box testing(1) Source code is known and used for test design While executing the test cases, the internal.
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
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
Chapter 18 Testing Conventional Applications
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
Software Systems Verification and Validation Laboratory Assignment 3
Software Testing Techniques
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Software Reviews & testing Software Reviews & testing An Overview.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Agenda Introduction Overview of White-box testing Basis path testing
1 Chapter : Testing Tactics. 2 Testing Fundamental Software engineer attempts to build software from an abstract concept to a tangible product. Next is.
Black-box Testing.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
White-box Testing.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
BASIS PATH TESTING.
Software Engineering Saeed Akhtar The University of Lahore.
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.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Dynamic Testing.
White Box Testing by : Andika Bayu H.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
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.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
Based on slides created by Ian Sommerville & Gary Kimura
Software Testing.
BASIS PATH TESTING.
Software Testing.
Software Testing.
Software Testing Techniques
Software Engineering (CSI 321)
Structural testing, Path Testing
Types of Testing Visit to more Learning Resources.
White Box Testing.
UNIT-IV ECS-602 Software engineering PART-I
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing (Lecture 11-a)
Chapter 14 Software Testing Techniques
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
User Interface Design & Testing Technique
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.
Chapter 14 Software Testing Techniques
Software Testing “If you can’t test it, you can’t design it”
Software Testing.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
By: Lecturer Raoof Talal
Presented by KARRI GOVINDA RAO ,
Unit III – Chapter 3 Path Testing.
Presentation transcript:

SOFTWARE TESTING

INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results

TESTING OBJECTIVES 1.Testing is a process of executing a program with the intent of finding an error. 2.A good test case is one that has high probability of finding an undiscovered error. 3.A successful test is one that uncovers an as-yet undiscovered error.  The major testing objective is to design tests that systematically uncover types of errors with minimum time and effort.

TEST CHARACTARISTICS  A good test has a high probability of finding an error  The tester must understand the software and how it might fail  A good test is not redundant  Testing time is limited; one test should not serve the same purpose as another test  A good test should be neither too simple nor too complex  Each test should be executed separately; combining a series of tests could cause side effects and mask certain errors

CHARACTERISTICS OF TESTABLE SOFTWARE  Operable  The better it works (i.e., better quality), the easier it is to test  Observable  Incorrect output is easily identified; internal errors are automatically detected  Controllable  The states and variables of the software can be controlled directly by the tester  Decomposable  The software is built from independent modules that can be tested independently

CHARACTERISTICS OF TESTABLE SOFTWARE  Simple  The program should exhibit functional, structural, and code simplicity  Stable  Changes to the software during testing are infrequent and do not invalidate existing tests  Understandable  The architectural design is well understood; documentation is available and organized

LEVELS OF TESTING Unit Testing Integration Testing Validation Testing Acceptance Testing

UNIT TESTING Algorithms and logic Data structures (global and local) Interfaces Independent paths Boundary conditions Error handling

WHY INTEGRATION TESTING IS NECESSARY One module can have an adverse effect on another Subfunctions, when combined, may not produce the desired major function Interfacing errors not detected in unit testing may appear Timing problems (in real-time systems) are not detectable by unit testing

VALIDATION TESTING Determine if the software meets all of the requirements defined in the SR Having written requirements is essential Regression testing involves selectively repeating existing validation tests, not developing new tests

ACCEPTANCE TESTING Similar to validation testing except that customers are present or directly involved. Usually the tests are developed by the customer

TEST TECHNIQUE White box or glass box testing Black box testing

TWO UNIT TESTING TECHNIQUES  Black-box testing  Knowing the specified function that a product has been designed to perform, test to see if that function is fully operational and error free  Not concerned with internal logical structure of the software  White-box testing  Knowing the internal workings of a product, test that all internal operations are performed according to specifications and all internal components have been exercised  Logical paths through the software are tested  Test cases exercise specific sets of conditions and loops 13

WHITE-BOX TESTING

WHITE BOX TESTING  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.

WHITE BOX TESTING

 White-box test design techniques include:  Control flow testing  Data flow testing  Branch testing  Path testing

WHITE-BOX TESTING  These test cases  Guarantee that all independent paths within a module have been exercised at least once  Exercise all logical decisions on their true and false sides  Execute all loops at their boundaries and within their operational bounds  Exercise internal data structures to ensure their validity 18

BASIS PATH TESTING White-box testing technique proposed by Tom McCabe enables the test case designer to derive a logical complexity measure of a procedural design Uses this measure as a guide for defining a basis set of execution paths Test cases derived to exercise the basis set are guaranteed to execute every statement in the program at least one time during testing 19

FLOW GRAPH NOTATION  A circle in a graph represents a node, which stands for a sequence of one or more procedural statements  A node containing a simple conditional expression is referred to as a predicate node  Each compound condition in a conditional expression containing one or more Boolean operators (e.g., and, or) is represented by a separate predicate node  A predicate node has two edges leading out from it (True and False)  An edge, or a link, is a an arrow representing flow of control in a specific direction  An edge must start and terminate at a node  An edge does not intersect or cross over another edge 20

FLOW GRAPH EXAMPLE FLOW CHARTFLOW GRAPH 0

INDEPENDENT PROGRAM PATHS  Defined as a path through the program from the start node until the end node that introduces at least one new set of processing statements or a new condition (i.e., new nodes)  Must move along at least one edge that has not been traversed before by a previous path  Basis set for flow graph on previous slide  Path 1:  Path 2:  Path 3:  Path 4:  The number of paths in the basis set is determined by the cyclomatic complexity 22

CYCLOMATIC COMPLEXITY Provides a quantitative measure of the logical complexity of a program Defines the number of independent paths in the basis set Provides an upper bound for the number of tests that must be conducted to ensure all statements have been executed at least once  Can be computed two ways  V(G) = E – N + 2, where E is the number of edges and N is the number of nodes in graph G  V(G) = P + 1, where P is the number of predicate nodes in the flow graph G  Results in the following equations for the example flow graph  V(G) = 14 edges – 12 nodes + 2 = 4  V(G) = 3 predicate nodes + 1 = 4 23

DERIVING THE BASIS SET AND TEST CASES 1.Using the design or code as a foundation, draw a corresponding flow graph 2.Determine the cyclomatic complexity of the resultant flow graph 3.Determine a basis set of linearly independent paths 4.Prepare test cases that will force execution of each path in the basis set 24

CYCLOMATIC COMPLEXITY  Invented by Thomas McCabe (1974) to measure the complexity of a program ’ s conditional logic  Cyclomatic complexity of graph G equals #edges - #nodes + 2  V(G) = e – n + 2  Also corresponds to the number of linearly independent paths in a program 25

CONVERTING CODE TO GRAPH 26 if expression1 then statement2 else statement3 end if statement4 switch expr1 case 1: statement2 case 2: statm3 case 3: statm4 end switch statm5 (a) (b) do statement1 while expr2 end do statement3 (c) CODEFLOWCHARTGRAPH TF expr1 ? statm4 statm2statm expr1 ? statm5 statm3 statm2statm4 n1 n2n3 n4 n1 n2n4 n5 n3 T F expr2 ? statm3 statm1 n1 n2 n3

EXAMPLE PATHS 27 if expression1 then statement2 end if do statement3 while expr4 end do if expression5 then statement6 end if statement7 n1 n3 n2 n4 n5 n7 n6 e1 e2 e3 e4 e5 e6 e7 e8 e9 Paths: P1 = e1, e2, e4, e6, e7, e8 P2 = e1, e2, e4, e5, e4, e6, e7, e8 P3 = e3, e4, e6, e7, e8, e10 P4 = e6, e7, e8, e10, e3, e4 P5 = e1, e2, e4, e6, e9, e10 P6 = e4, e5 P7 = e3, e4, e6, e9, e10 P8 = e1, e2, e4, e5, e4, e6, e9, e10 V(G) = e – n + 2 = 9 – = 4

EXAMPLE 1 28

29 V=e-n+2=11-9+2=4

30

31 V=e-n+2=11-9+2=4

BLACK-BOX TESTING

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.  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.

BLACK BOX

BLACK-BOX TESTING CATEGORIES Incorrect or missing functions Interface errors Errors in data structures or external data base access Behavior or performance errors Initialization and termination errors 35

QUESTIONS ANSWERED BY BLACK-BOX TESTING  How is functional validity tested?  How are system behavior and performance tested?  What classes of input will make good test cases?  Is the system particularly sensitive to certain input values?  How are the boundary values of a data class isolated?  What data rates and data volume can the system tolerate?  What effect will specific combinations of data have on system operation?