Let us start from the V-Model Verification Phases Requirements analysis System Design Architecture Design Module Design Coding Validation phases Unit.

Slides:



Advertisements
Similar presentations
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Testing and Quality Assurance
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Test Case Design: Strategies, Techniques & Models Robin Brennan, Senior Consultant Quality Assurance Institute.
Nov R McFadyen1 A Traditional Software Development Process Unit test Integration test System test Detailed design Architectural design Analysis.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
Chapter 17 Software Testing Techniques
SWE 415 Boundary Value Testing Example Boundary Value Testing Example.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 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.
Testing an individual module
Software Engineering Lecture 12 Software Testing Techniques 1.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
Test Design Techniques
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.
System/Software Testing
White-box Testing Black-box Testing Extensions
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.
CS4311 Spring 2011 Verification & Validation Dr. Guoqiang Hu Department of Computer Science UTEP.
Introduction Telerik Software Academy Software Quality Assurance.
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.
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.
CS /51 Illinois Institute of Technology CS487 Software Engineering Software Testing Techniques Mr. David A. Lash.
Software Testing Testing types Testing strategy Testing principles.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Testing Testing Techniques to Design Tests. Testing:Example Problem: Find a mode and its frequency given an ordered list (array) of with one or more integer.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
CS 217 Software Verification and Validation Week 7, Summer 2014 Instructor: Dong Si
Testing Techniques Software Testing Module ( ) Dr. Samer Hanna.
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.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
Theory and Practice of Software Testing
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.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Chapter 12: Software Testing Omar Meqdadi SE 273 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
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.
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.
Dynamic Black-Box Testing Part 1 What is dynamic black-box testing? How to reduce the number of test cases using: Equivalence partitioning Boundary value.
Software Testing.
Equivalence partitioning
Equivalence partitioning
Software Engineering (CSI 321)
Chapter 13 & 14 Software Testing Strategies and Techniques
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
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 Verification and Validation
Software Verification and Validation
CSE403 Software Engineering Autumn 2000 More Testing
Software Testing “If you can’t test it, you can’t design it”
Software Verification and Validation
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:

Let us start from the V-Model Verification Phases Requirements analysis System Design Architecture Design Module Design Coding Validation phases Unit Testing Integration Testing System Testing User Acceptance Testing This model helped in realizing that Testing has to be started early in the lifecycle of software development and thus more emphasis was laid on Static Testing during the Verification Phases

Why Test Designing The Quality of Testing is as good as its Test Design Usage of formal and customized Test Specification techniques for deriving Test Cases from the Input Documents (Test Basis) will help in achieving the following:  Proper Coverage/Depth in testing each of the functions (/system)‏  Test Specifications prepared by various members in the test team will be uniform  Test Cases will be more Manageable

Understanding test design techniques Classic distinction – black-box and white box techniques Black box - Black-box techniques (also called specification-based techniques) are a way to derive and select test conditions or test cases based on an analysis of the test basis documentation, whether functional or non-functional, for a component or system without reference to its internal structure. White box - White-box techniques (also called structural or structure-based techniques) are based on an analysis of the internal structure of the component or system. Black BoxWhite Box Tests are derived from functional designed specifications Tests require knowledge of the internal program structure and the code Will fail to test “ hidden” functionsWill fail to detect “missing” functions Data drivenLogic driven testing Requires exhaustive input testing to detect all errors Requires exhaustive Path testing to detect all errors

Categories of test design techniques Requirement based techniques: – Models, either formal or informal, are used for the specification of the problem to be solved, the software or its components. – From these models test cases can be derived systematically. Structure based techniques: – Information about how the software is constructed is used to derive the test cases, for example, code and design. – The extent of coverage of the software can be measured for existing test cases, and further test cases can be derived systematically to increase coverage.

Black Box Testing Methodologies  Equivalence Partitioning  Boundary Value Analysis  Decision Table  Cause Effect Graph  State Transition

Equivalence Partitioning Partitioning the input domain of a program into a finite number of classes [sets], to identify a minimal set of well selected test cases to represent these classes. There are two types of input equivalence classes, valid and invalid. Continuous equivalence classes Discrete equivalence classes Equivalence class testing can significantly reduce the number of test cases that must be created and executed A module for a human resources system that decides how we should process employment applications based on a person's age. 0–15Don't hire 16–17Can hire on a part-time basis only 18–54Can hire as a full-time employee 55–99Don't hire

Equivalence Partitioning continued… Normal Test Cases Test Data If (applicantAge == 0) hireStatus="NO"; 0 If (applicantAge == 1) hireStatus="NO"; 1 … … If (applicantAge == 14) hireStatus="NO"; 14 If (applicantAge == 15) hireStatus="NO"; 15 If (applicantAge == 16) hireStatus="PART"; 16 If (applicantAge == 17) hireStatus="PART"; 17 If (applicantAge == 18) hireStatus="FULL"; 18 If (applicantAge == 19) hireStatus="FULL"; 19 … … If (applicantAge == 53) hireStatus="FULL"; 53 If (applicantAge == 54) hireStatus="FULL"; 54 If (applicantAge == 55) hireStatus="NO"; 55 If (applicantAge == 56) hireStatus="NO"; 56 … … If (applicantAge == 98) hireStatus="NO"; 98 If (applicantAge == 99) hireStatus="NO"; 99 Test Cases using equivalence partition Test Data If (applicantAge >= 0 && applicantAge <=15) hireStatus="NO"; 13 If (applicantAge >= 16 && applicantAge <=17) hireStatus="PART"; 17 If (applicantAge >= 18 && applicantAge <=54) hireStatus="FULL"; 27 If (applicantAge >= 55 && applicantAge <=99) hireStatus="NO"; 75 A group of tests forms an equivalence class : They all test the same thing. If one test catches a bug, the others probably will too within each equivalence class. If one test doesn't catch a bug, the others probably won't either within each equivalence class. Using the equivalence class approach, we have reduced the number of test cases from 100 (testing each age) to four (testing one age in each equivalence class) — a significant savings.

Boundary Value Analysis A selection technique in which test data are chosen to lie along "boundaries“ of the input domain [or output range] classes, data structures, procedure parameters, etc. Choices often include maximum, minimum, and trivial values This technique is often called stress testing. ContinuousDiscrete A module for a human resources system that decides how we should process employment applications based on a person's age. Example A module for a human resources system that decides how we should process employment applications based on a person's age. 0–15Don't hire 16–17Can hire on a part-time basis only 18–54Can hire as a full-time employee 55–99Don't hire What about ages -3 and 101? Note that the requirements do not specify how these values should be treated. We could guess but "guessing the requirements" is not an acceptable practice.

Boundary Value Analysis Continued… If (applicantAge >= 0 && applicantAge <=15) hireStatus="NO"; If (applicantAge >= 16 && applicantAge <=17) hireStatus="PART"; If (applicantAge >= 18 && applicantAge <=54) hireStatus="FULL"; If (applicantAge >= 55 && applicantAge <=99) hireStatus="NO"; The interesting values on or near the boundaries in this example are Test Data S. NoStatementLeft Epsilon Left Extreme InteriorRight Extreme Right Epsilon 1applicantAge >= 0 && applicantAge <= applicantAge >= 16 && applicantAge <= applicantAge >= 18 && applicantAge <= applicantAge >= 55 && applicantAge <= Select the test cases at the “edges” of Equivalence classes in addition to selecting an element in the class

Decision Table A Test criteria to identify which actions should be produced in response to particular combinations of conditions Derive the logic function for the model to validate its completeness and consistency Example - A Bank has the following norms fixed to provide personal loans If age <= 25 and no loan has been taken, loan will be 1 lakh else 2 lakhs If age <= 25 and no. of loans taken is one, loan will be 50 thousands else 1.5 lakhs If age <= 25 and no. of loans taken is two, loan will be 25 thousands else 1 lakh If apply for third loan cancel loan approval process No. of loans already taken AgeLoan AmountApproval Status 0 =26 1 lakh 2 lakhs Yes 1 =26 50 thousands 1.5 lakhs Yes 2 =26 25 thousands 1 lakh Yes 30No, Cancel Loan Decision Variable:Age, No. of loans Actions:Loan Amount, Approval status

Cause Effect Graph A graphical representation of inputs or stimuli (causes) with their associated outputs (effects), which can be used to design test cases. A systematic method of generating test cases representing combinations of conditions. The input and output domains are partitioned into classes and analysis is performed to determine which input classes cause which effect. Example - A Bank has the following norms fixed to provide personal loans If age <= 25 and no loan has been taken, loan will be 1 lakh else 2 lakhs If age <= 25 and no. of loans taken is one, loan will be 50 thousands else 1.5 lakhs If age <= 25 and no. of loans taken is two, loan will be 25 thousands else 1 lakh If apply for third loan cancel loan approval process

Cause Effect Graph Continued…

State Transition A test design technique in which test cases are designed to execute state transitions. Events are caused by input and Actions are likely to cause output Helpful in Web based testing Transitions State 1 State 2 input output Event /Action PTBT UT ST/CB ST/CU Example MS-WORD BT – Bold Text UT – Underlined Text PT – Plain Text ST – Select Text CB – Click Bold CU – Click Underline

Thank You