SlideShare a Scribd company logo
1 of 107
Where are we? Specification Design Testing Code &  Test Quality Assurance
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],What are we going to discuss today?
[object Object],[object Object],[object Object],[object Object],Which is the aim of SW Testing ?
What Testing Shows? errors requirements conformance performance an indication of quality © SEPA
SW Testing starts with coding But, Quality Assurance is a continuous process Testing is an incremental process.  Starts from small modules and integrated to higher level modules. But, planning the testing process should be started early in system engineering state. When Testing Starts?
When Testing Starts? SystemEngineering Requirement Analysis Design Coding Test Plan Unit Test Integration Test ValidationTest SystemTest plans plans System test plan. SW+HW Function performance etc. BB some GB BB GB Acceptance Test Developer Tester Developer Tester Tester User
Quality Assurance:   monitoring and improving the whole SW development process.  Includes, Verification  : Are we building right SW? and Validation   : Did we build the SW right? Requirement   Specification     SW Verify Validate walkthrough, inspection static, dynamic Testing is  part of  SW Quality Assurance essential
Testing is the process of    exercising  a program  with the  intent of finding errors   within set time and effort prior to delivery to the end user. Not to show that a SW is working correctly! OK! Why Testing such Essential? Testing not only executing
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Simple Errors may Cause Terrible Disasters
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Can’t we avoid errors if we program carefully?
Testing should be planned well ,[object Object],[object Object],[object Object],[object Object],[object Object]
Exhaustive Testing There are  10 14   possible paths! If we execute one test per millisecond, it would take  3,170 years  to test this program!! © SEPA loop < 20 X
Test Cases ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Test Cases (Example) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Testing is a ‘destructive’ process? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Why need independent tester? Developer Independent tester Advantage : Already knew the system. but, will test &quot;gently&quot; and, is driven by &quot;delivery&quot; Disadvantage : Must learn the system but, will attempt to break it and, is driven by quality © SEPA
Testability  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A set of good characteristics of a SW that has a high degree of testability
What we learned ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What are we going to discuss now? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SW Testing and Purposes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Two Important Testing Techniques Black-Box  : To test the functionality, behavior and performance against its specification. Implementation logic is not necessary White-Box  : To test the correctness of the internal logic of a module. Therefore, Implementation detail is necessary © SEPA boundary-value equivalent Partition white-box methods black-box methods basis-path control structure
Black-Box Testing Functional, Behavior, Performance, requirements (expected output) events input output Internal logic not required © SEPA
White-Box Testing Based on “coverage” :   goal is to ensure that all the statements and conditions have been executed  at least once  … statement edge path To test the internal logic © SEPA
Why Cover? logic errors and incorrect assumptions  are inversely proportional to a path's  execution probability we often  believe   that a path is not  likely to be executed;  in fact, reality is  often counter intuitive typographical errors are random;  it's  likely that untested paths will contain  some  © SEPA
PATH coverage not feasible There are  10 14   possible paths! If we execute one test per millisecond, it would take  3,170 years  to test this program!! © SEPA loop < 20 X
Select Most Suitable Paths - but how? Linearly Independent Paths  : each new path introduces at least one different executable or simple conditional statement OR a new edge © SEPA This also ensures  statement and edge coverage :  every statement (and edge) is executed at least once loop < 20 X
Basis-Path Testing - A White-Box test ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Flow Graph    Basic Structures ,[object Object],[object Object],[object Object],A; B; if ( C ) D; else E; F; case G { g1 : H; g2 : I; else : J; } K; A B C E F D G J K I H
Flow Graph    Basic Structures ,[object Object],[object Object],while (L) M; N; do { O; } while (P); Q; NODE REGION EDGE L M N O P Q
Flow Graph    Basic Structures ,[object Object],[object Object],if R AND S T; else U; V; if R OR S T; else U; V; R S T U V R S U T V
Flow Graph    Basic Structures ,[object Object],[object Object],While R AND S T; V; While R OR S T; V; S T V R S T V R
BASIS-PATH example  Module :  search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
BASIS-PATH example  Module :  search ( An Implementation) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],6 1 2 3 4 5 7 8 5 2 1 3 4 8 6 7
Coverage ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],5 2 1 3 4 8 6 7
Cyclomatic Complexity (  V(G) ) Number of simple conditions + 1  OR  Number of enclosed areas + 1 OR  Edges - Nodes + 2 In this case, V(G) = 4 ,[object Object],[object Object],5 2 1 3 4 8 6 7
Cyclomatic Complexity A number of industry studies have indicated  that the higher V(G), the higher the probability  or errors. V(G) modules modules in this range are  more error prone © SEPA
Basis Path Testing- Independent Paths Next, we derive the  independent paths: Since V(G) = 4, there are four paths Path 1:  1,2,4,7,8 Path 2:  1,2,4,5,7,8 Path 3:  1,2,4,5,6,8 Path 4:  1,2,3,2,4,.….,8 Finally, we derive test cases to exercise these  paths. 5 2 1 3 4 8 6 7
Basis Path Testing- TEST CASES Path 1:  1,2,4,7,8 N=0 , target=2 ,( A is empty ) Path 2:  1,2,4,5,7,8 N=1, target =2,  A[1]= 4( any number > 2) Path 3:  1,2,4,5,6,8 N=1, target =2,  A[1]= 2 Path 4:  1,2,3, 2, 4,.….,8 N=1, target =2,  A[1]= 1 ( any number <2) But, more general cases are better; FALSE FALSE TRUE FALSE 5 2 1 3 4 8 6 7
BASIS-PATH another example (  Module: GCD ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Statement coverage : (X=4, Y=3)   (X=3, Y=4) Edge coverage : same BASIS-PATH   DRAW Flow-Graph!! FIND independent paths CHOOSE test cases
Graph Matrices -  a SW tool   ,[object Object],[object Object],Weight - shows just a link available or some other measures like execution probability 2 1 3 4 1 2 3 4 1 2 3 4 from to 1 1 1 1
Some Other White-Box Testing Methods ,[object Object],[object Object],[object Object]
Loop Testing Nested  Loops Concatenated  Loops Unstructured  Loops Simple  loop © SEPA
Loop Testing: Simple Loops © SEPA Minimum conditions—Simple Loops 1.  skip the loop entirely 2.  only one pass through the loop 3.  two passes through the loop 4.  m passes through the loop  m < n 5.  (n-1), n, and (n+1) passes through  the loop where n is the maximum number  of allowable passes
Loop Testing- for module Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],N=2, target =2  A[1]=1, A[2]=3 N=1, target =2  A[1]=4  ? Check for redundancy  with already selected test cases
Loop Testing: Nested Loops © SEPA Start at the innermost loop. Set all outer loops to their  minimum iteration parameter values. Test the min+1, typical, max-1 and max for the  innermost loop, while holding the outer loops at their  minimum values. Move out one loop and set it up as in step 2, holding all  other loops at typical values. Continue this step until  the outermost loop has been tested. If the loops are independent of one another  then treat each as a simple loop else* treat as nested loops for example, the final loop counter value of loop 1 is  used to initialize loop 2. Nested Loops Concatenated Loops
Conditional Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Data-Flow Tesing ,[object Object],[object Object],[object Object]
What are we going to discuss now? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Black-Box Testing ,[object Object],[object Object],[object Object]
Black-Box Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Black-Box Testing Methods ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning user queries mouse picks output formats prompts FK input data © SEPA
Sample Equivalence Classes user supplied commands responses to system prompts file names computational data physical parameters  bounding values initiation values output data formatting responses to error messages graphical data (e.g., mouse picks) data outside bounds of the program  physically impossible data proper value supplied in wrong place Valid data Invalid data © SEPA
Equivalence Partitioning { doubleDigit} ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning  (e.g doubleDigit ) ,[object Object],VALID INVALID INVALID d < 10 105 - 5 7 22 d > 10 leap leap
Equivalence Partitioning for  Typical input   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning for  Typical input   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning (e.g leap ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning (e.g leap ) ,[object Object],VALID INVALID INVALID 400/year 2205 1750 1903 1904 1900 2000 leap leap 4 / year 4 / year  but 100 / year 100/year but 400 /  year
Equivalence Partitioning (e.g SEARCH ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Equivalence Partitioning (e.g SEARCH ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Boundary Value Analysis &quot;Bugs lurk in corners  and congregate at  boundaries ...&quot; Boris Beizer WHY ?  - unknown Select test cases to cover all the boundary values of input and output data elements and data structures © SEPA
Boundary Value Analysis user queries mouse picks output formats prompts FK input data output domain input domain © SEPA
Boundary Value Analysis {   doubleDigit  } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],-5  0   6  9   30  99   105 -1  0   1  8  9   10    98  99  100
Boundary Value Analysis e.g [ SEARCH ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Boundary Value Analysis {   SEARCH  } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ex:  If the SEARCH module also need to return a suitable location (say ‘pos’) for a non existing target in A, modify the specification and find suitable WB and BB test cases
Other Black Box Techniques ,[object Object],[object Object],[object Object],[object Object]
Testing is an incremental process   SystemEngineering Requirement Analysis Design Coding Test Plan Unit Test Integration Test ValidationTest SystemTest plans plans System test plan. SW+HW Function performance etc. BB some GB BB GB Acceptance Test Developer Tester Developer Tester Tester User
Unit Testing module to be tested test cases results software engineer interface  local data structures boundary conditions error handling paths global data effects independent paths loops, conditions ©SEPA
Unit Test Environment Module stub stub driver RESULTS test cases not stand-alone Stubs and drivers are overheads and  should be small enough to throw away after  their use  ©SEPA
DRIVER- example from case-study ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
STUB- example from case-study ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],void getProcessDetail (instance SI, int duration ) { cout >> “in the getProcessDetail”; }
SW Integration Strategies ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],©SEPA
Top Down Integration top module is tested with  stubs stubs are replaced one at  a time, &quot;depth first&quot; as new modules are integrated,  some subset of tests is re-run A B C D E F G Regression test ©SEPA
Bottom-Up Integration drivers are replaced one at a  time, &quot;depth first&quot; A B C D E F G as new modules are integrated,  Regression test some subset of tests is re-run. May be automated ©SEPA
Cluster-based Integration Worker modules are grouped into  builds and integrated A B C D E F G cluster ©SEPA
Integration Example- Case study processDetail ProcessReporter getProcessDetail determineEndDetail displayProcessRepor t getStartDetail getDuration addTime addDate getStartTime leap getStartDate daysInMonth processReport A cluster for validation
Integration Strategies- A comparison ,[object Object],[object Object],[object Object],[object Object]
High Order Testing validation test system test Acceptance tests alpha and beta test other specialized testing ©SEPA
Validation Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
System Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Acceptance Tests Developer’s site customer Alpha Test Beta Test Customer’s site ©SEPA By customers in their normal environment developer customer
Debugging:  A Diagnostic Process ©SEPA
The Debugging Process test cases results Debugging suspected causes identified causes corrections regression tests new test cases ©SEPA
Debugging Effort time required to diagnose the symptom and determine the cause time required to correct the error and conduct regression tests ©SEPA
Symptoms & Causes symptom cause symptom and cause may be  geographically separated  symptom may disappear when  another problem is fixed cause may be due to a  combination of non-errors  cause may be due to a system  or compiler error cause may be due to  assumptions that everyone  believes symptom may be intermittent/irregular ©SEPA
Consequences of Bugs damage mild annoying disturbing serious extreme catastrophic infectious Bug Type Bug Categories: function-related bugs,  system-related bugs, data bugs, coding bugs,  design bugs, documentation bugs, standards  violations, etc. ©SEPA
Debugging Techniques brute force / testing Backtracking Cause elimination by Binary partition induction deduction deduction deduction ©SEPA
Debugging: Final Thoughts Don't run off half-cocked,  think about the  symptom you're seeing. Use tools (e.g., dynamic debugger) to gain  more insight. If at an impasse,  get help from someone else. Be absolutely sure to  conduct regression tests when you do &quot;fix&quot; the bug. 1. 2. 3. 4. ©SEPA
Object Oriented Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why wait until classes  are coded? ,[object Object],OOTesting begins by Evaluating OOAnalysis and OODesign models Seamless transition- everything is class and requests Analysis level model ==> Design level model ==> code Class1 Class2 request1 Class1 Class2 request1 Class1 Class2 request1
public class Date  { private int day, month, year; public Date( ) { day=0; month=0;year=0; } public Date(int day, int month, int year)  { this.day = day; this.month = month; this.year = year; } public boolean leap( ) {  // should change to private return  ((year % 400 == 0)||    ((year % 100 > 0) && (year % 4 ==0))); } } public class Instance { private Date date; private Time time; public Instance(Date date, Time time){ this.date = date; this.time = time; } public void getInstance() { date.getDate(); time.getTime(); } } getDate( ) Date day month year getDate( ) displDate( ) addDate( ) dInMonth( ) leap( ) Instance date time getInstance( ) displInstance( ) addInstance( ) Date Day : integer month : integer year : integer getDate( ) displDate( ) addDate(d: integer,  nD:Date) -dInMonth( ) -leap( ) Instance date:Date time:Time getInstance( ) displInstance( ) addInstance( )
Minimum testable component is a class ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Unit Testing is Class Testing in OO
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],BlueJ - Java implementation Minimum testable component is a class
Integrating Classes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Structure Chart: hierarchical Class Collaborations: network ProcessReporter getProcessDetail getStartDetail getDuration getStartTime getStartDate Process: Instance:Start Date:Start Time:Start 1.disInst(  ) 2. disDate(  ) 6. addDate( ) 3.disTime(  ) 4. addTime( ) Instance:End 8.Instance(  ) Date:End Time:End 9. disDate(  ) 10. disTime(  ) 5. Time(  )
Use Based Integration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CASE STUDY - SEQUENCE DIAGRAM
Cluster Based Integration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cluster : A group of classes that collaborate to perform  a particular request Start with receiver classes Instance:Start Date:Start Time:Start 1. addInst( ) 4. addDate( ) 2. addTime( ) Instance:End 8.Instance(  ) Date:End Time:End 10. disDate(  ) 9. disTime(  ) 7. Date(  ) 3. Time(  ) 5. dInMon(  ) 6. leap( )
Unit Testing - Class Level Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Partition Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],One representative for each partition
State-Based Partitioning ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],number limit balance open( ) setup( ) close( ) viewbalance( ) viewLimit( ) deposit( ) withdraw( ) Account
Attribute -Based Partitioning ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],number limit balance open( ) setup( ) close( ) viewbalance( ) viewLimit( ) deposit( ) withdraw( ) Account
Category - Based Partitioning ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],number limit balance open( ) setup( ) close( ) viewbalance( ) viewLimit( ) deposit( ) withdraw( ) Account
Random Testing - Class Level ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scenario Based Testing ,[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Software Testing Maturity Model and Assessment by Abstracta
Software Testing Maturity Model and Assessment by AbstractaSoftware Testing Maturity Model and Assessment by Abstracta
Software Testing Maturity Model and Assessment by AbstractaKalei White
 
Test strategy &-testplanning
Test strategy &-testplanningTest strategy &-testplanning
Test strategy &-testplanningsrivinayak
 
Test Process Maturity Measurement and Related Measurements
Test Process Maturity Measurement and Related MeasurementsTest Process Maturity Measurement and Related Measurements
Test Process Maturity Measurement and Related MeasurementsSTAG Software Private Limited
 
Quality assurance k.meenakshi
Quality assurance   k.meenakshiQuality assurance   k.meenakshi
Quality assurance k.meenakshiMeenakshiK19
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and PlanningTechWell
 
PMP : Webinar on Quality Planning
PMP : Webinar  on Quality PlanningPMP : Webinar  on Quality Planning
PMP : Webinar on Quality PlanningSaket Bansal
 
Professor Yakub Aliyu Product Quality Non Conformance presentation -v1.4_11...
Professor Yakub  Aliyu  Product Quality Non Conformance presentation -v1.4_11...Professor Yakub  Aliyu  Product Quality Non Conformance presentation -v1.4_11...
Professor Yakub Aliyu Product Quality Non Conformance presentation -v1.4_11...Professor Yakub Aliyu
 
iSQI Certification Days ISTQB Advanced Kari Kakkonen
iSQI Certification Days ISTQB Advanced Kari KakkoneniSQI Certification Days ISTQB Advanced Kari Kakkonen
iSQI Certification Days ISTQB Advanced Kari KakkonenIevgenii Katsan
 
Test Management Training
Test Management TrainingTest Management Training
Test Management Trainingsuhasreddy1
 
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...TEST Huddle
 
Software engineering quality assurance and testing
Software engineering quality assurance and testingSoftware engineering quality assurance and testing
Software engineering quality assurance and testingBipul Roy Bpl
 
How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...Anagha Mahajan
 
Corrective and preventive action plan CAPA report form
Corrective and preventive action plan  CAPA report formCorrective and preventive action plan  CAPA report form
Corrective and preventive action plan CAPA report formConnie Dello Buono
 
Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Kiran Walimbe
 
Quality management interview questions
Quality management interview questionsQuality management interview questions
Quality management interview questionsselinasimpson2301
 
Test Case Point Analysis
Test Case Point AnalysisTest Case Point Analysis
Test Case Point Analysisvuqn
 

What's hot (20)

Software Testing Maturity Model and Assessment by Abstracta
Software Testing Maturity Model and Assessment by AbstractaSoftware Testing Maturity Model and Assessment by Abstracta
Software Testing Maturity Model and Assessment by Abstracta
 
Test strategy &-testplanning
Test strategy &-testplanningTest strategy &-testplanning
Test strategy &-testplanning
 
Test Process Maturity Measurement and Related Measurements
Test Process Maturity Measurement and Related MeasurementsTest Process Maturity Measurement and Related Measurements
Test Process Maturity Measurement and Related Measurements
 
Quality assurance k.meenakshi
Quality assurance   k.meenakshiQuality assurance   k.meenakshi
Quality assurance k.meenakshi
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and Planning
 
PMP : Webinar on Quality Planning
PMP : Webinar  on Quality PlanningPMP : Webinar  on Quality Planning
PMP : Webinar on Quality Planning
 
TMMi Implementation Guideline
TMMi Implementation GuidelineTMMi Implementation Guideline
TMMi Implementation Guideline
 
Test management
Test managementTest management
Test management
 
Attribute measurement analysis
Attribute measurement analysis Attribute measurement analysis
Attribute measurement analysis
 
Professor Yakub Aliyu Product Quality Non Conformance presentation -v1.4_11...
Professor Yakub  Aliyu  Product Quality Non Conformance presentation -v1.4_11...Professor Yakub  Aliyu  Product Quality Non Conformance presentation -v1.4_11...
Professor Yakub Aliyu Product Quality Non Conformance presentation -v1.4_11...
 
iSQI Certification Days ISTQB Advanced Kari Kakkonen
iSQI Certification Days ISTQB Advanced Kari KakkoneniSQI Certification Days ISTQB Advanced Kari Kakkonen
iSQI Certification Days ISTQB Advanced Kari Kakkonen
 
Test Management Training
Test Management TrainingTest Management Training
Test Management Training
 
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...
Isabel Evans - Working Ourselves out of a Job: A Passion For Improvement - Eu...
 
Software engineering quality assurance and testing
Software engineering quality assurance and testingSoftware engineering quality assurance and testing
Software engineering quality assurance and testing
 
Quality management
Quality managementQuality management
Quality management
 
How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...How to take organizations to higher testing maturity suresh bose anagha mahaj...
How to take organizations to higher testing maturity suresh bose anagha mahaj...
 
Corrective and preventive action plan CAPA report form
Corrective and preventive action plan  CAPA report formCorrective and preventive action plan  CAPA report form
Corrective and preventive action plan CAPA report form
 
Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors
 
Quality management interview questions
Quality management interview questionsQuality management interview questions
Quality management interview questions
 
Test Case Point Analysis
Test Case Point AnalysisTest Case Point Analysis
Test Case Point Analysis
 

Viewers also liked

Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing techniqueAnkush Kumar
 
Quality capability roadmap
Quality capability roadmapQuality capability roadmap
Quality capability roadmapAnand Iyer
 
Reduction of NOX using SCR technology
Reduction of NOX using SCR technologyReduction of NOX using SCR technology
Reduction of NOX using SCR technologyMuthineniamulya
 
Black box testing or behavioral testing
Black box testing or behavioral testingBlack box testing or behavioral testing
Black box testing or behavioral testingSlideshare
 
Effective Techniques to control gaseous & particulate pollution
Effective Techniques to control gaseous & particulate pollutionEffective Techniques to control gaseous & particulate pollution
Effective Techniques to control gaseous & particulate pollutionShristi Soni
 
Perfume advert analysis
Perfume advert analysisPerfume advert analysis
Perfume advert analysisHannah Marshh
 
Lift station backup options
Lift station backup optionsLift station backup options
Lift station backup optionsBrian Gongol
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)Javier Gonzalez-Sanchez
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesKiran Kumar
 
Air pollution control methods and equipments
Air pollution control methods and equipmentsAir pollution control methods and equipments
Air pollution control methods and equipmentsJinto Cv
 
Characteristics of a good test
Characteristics of a good testCharacteristics of a good test
Characteristics of a good testALMA HERMOGINO
 

Viewers also liked (14)

Cause effect graphing technique
Cause effect graphing techniqueCause effect graphing technique
Cause effect graphing technique
 
Quality capability roadmap
Quality capability roadmapQuality capability roadmap
Quality capability roadmap
 
Blackbox
BlackboxBlackbox
Blackbox
 
Reduction of NOX using SCR technology
Reduction of NOX using SCR technologyReduction of NOX using SCR technology
Reduction of NOX using SCR technology
 
Black box testing or behavioral testing
Black box testing or behavioral testingBlack box testing or behavioral testing
Black box testing or behavioral testing
 
Effective Techniques to control gaseous & particulate pollution
Effective Techniques to control gaseous & particulate pollutionEffective Techniques to control gaseous & particulate pollution
Effective Techniques to control gaseous & particulate pollution
 
Asme sec viii div 1 icb
Asme sec viii div 1 icbAsme sec viii div 1 icb
Asme sec viii div 1 icb
 
Perfume advert analysis
Perfume advert analysisPerfume advert analysis
Perfume advert analysis
 
Lift station backup options
Lift station backup optionsLift station backup options
Lift station backup options
 
201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)201008 Software Testing Notes (part 1/2)
201008 Software Testing Notes (part 1/2)
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 
Air pollution control methods and equipments
Air pollution control methods and equipmentsAir pollution control methods and equipments
Air pollution control methods and equipments
 
Pressure vessel types
Pressure vessel typesPressure vessel types
Pressure vessel types
 
Characteristics of a good test
Characteristics of a good testCharacteristics of a good test
Characteristics of a good test
 

Similar to Where are we? Specification Design Testing Code &amp; Test Quality Assurance

1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.pptabdulbasetalselwi
 
Chapter 8 Testing Tactics.ppt Software engineering
Chapter 8 Testing Tactics.ppt Software engineeringChapter 8 Testing Tactics.ppt Software engineering
Chapter 8 Testing Tactics.ppt Software engineeringAnasHassan52
 
Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07uShubham Sharma
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniquesersanbilik
 
CS8494 SOFTWARE ENGINEERING Unit-4
CS8494 SOFTWARE ENGINEERING Unit-4CS8494 SOFTWARE ENGINEERING Unit-4
CS8494 SOFTWARE ENGINEERING Unit-4SIMONTHOMAS S
 
Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test Gregory Solovey
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis Engineering Software Lab
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-conceptsmedsherb
 
DSR Testing (Part 1)
DSR Testing (Part 1)DSR Testing (Part 1)
DSR Testing (Part 1)Steve Upton
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)ShudipPal
 

Similar to Where are we? Specification Design Testing Code &amp; Test Quality Assurance (20)

Testing
TestingTesting
Testing
 
1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt1414_lecturueueueueuueueeueueueuusuee_7.ppt
1414_lecturueueueueuueueeueueueuusuee_7.ppt
 
Chapter 8 Testing Tactics.ppt
Chapter 8 Testing Tactics.pptChapter 8 Testing Tactics.ppt
Chapter 8 Testing Tactics.ppt
 
Chapter 8 Testing Tactics.ppt Software engineering
Chapter 8 Testing Tactics.ppt Software engineeringChapter 8 Testing Tactics.ppt Software engineering
Chapter 8 Testing Tactics.ppt Software engineering
 
Qat09 presentations dxw07u
Qat09 presentations dxw07uQat09 presentations dxw07u
Qat09 presentations dxw07u
 
Debug me
Debug meDebug me
Debug me
 
Test Techniques
Test TechniquesTest Techniques
Test Techniques
 
Testing techniques
Testing techniquesTesting techniques
Testing techniques
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
 
CS8494 SOFTWARE ENGINEERING Unit-4
CS8494 SOFTWARE ENGINEERING Unit-4CS8494 SOFTWARE ENGINEERING Unit-4
CS8494 SOFTWARE ENGINEERING Unit-4
 
testing
testingtesting
testing
 
Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test Model Driven Testing: requirements, models & test
Model Driven Testing: requirements, models & test
 
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
Parasoft .TEST, Write better C# Code Using  Data Flow Analysis Parasoft .TEST, Write better C# Code Using  Data Flow Analysis
Parasoft .TEST, Write better C# Code Using Data Flow Analysis
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
Testing
TestingTesting
Testing
 
DSR Testing (Part 1)
DSR Testing (Part 1)DSR Testing (Part 1)
DSR Testing (Part 1)
 
Slides chapters 13-14
Slides chapters 13-14Slides chapters 13-14
Slides chapters 13-14
 
Testing
TestingTesting
Testing
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 

More from Kiran Kumar

User Interface Standards
User Interface StandardsUser Interface Standards
User Interface StandardsKiran Kumar
 
Banking Overview
Banking OverviewBanking Overview
Banking OverviewKiran Kumar
 
Winrunner Vs QTP
Winrunner Vs QTPWinrunner Vs QTP
Winrunner Vs QTPKiran Kumar
 
Security Testing
Security TestingSecurity Testing
Security TestingKiran Kumar
 
Software Testing
Software TestingSoftware Testing
Software TestingKiran Kumar
 
Software Testing
Software TestingSoftware Testing
Software TestingKiran Kumar
 
Software Testing
Software TestingSoftware Testing
Software TestingKiran Kumar
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing TechniquesKiran Kumar
 
Testing Fundamentals
Testing FundamentalsTesting Fundamentals
Testing FundamentalsKiran Kumar
 
Software Quality Testing
Software Quality TestingSoftware Quality Testing
Software Quality TestingKiran Kumar
 

More from Kiran Kumar (11)

User Interface Standards
User Interface StandardsUser Interface Standards
User Interface Standards
 
Banking Overview
Banking OverviewBanking Overview
Banking Overview
 
Winrunner Vs QTP
Winrunner Vs QTPWinrunner Vs QTP
Winrunner Vs QTP
 
Security Testing
Security TestingSecurity Testing
Security Testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Testing
TestingTesting
Testing
 
Software Testing Techniques
Software Testing TechniquesSoftware Testing Techniques
Software Testing Techniques
 
Testing Fundamentals
Testing FundamentalsTesting Fundamentals
Testing Fundamentals
 
Software Quality Testing
Software Quality TestingSoftware Quality Testing
Software Quality Testing
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Where are we? Specification Design Testing Code &amp; Test Quality Assurance

  • 1. Where are we? Specification Design Testing Code & Test Quality Assurance
  • 2.
  • 3.
  • 4. What Testing Shows? errors requirements conformance performance an indication of quality © SEPA
  • 5. SW Testing starts with coding But, Quality Assurance is a continuous process Testing is an incremental process. Starts from small modules and integrated to higher level modules. But, planning the testing process should be started early in system engineering state. When Testing Starts?
  • 6. When Testing Starts? SystemEngineering Requirement Analysis Design Coding Test Plan Unit Test Integration Test ValidationTest SystemTest plans plans System test plan. SW+HW Function performance etc. BB some GB BB GB Acceptance Test Developer Tester Developer Tester Tester User
  • 7. Quality Assurance: monitoring and improving the whole SW development process. Includes, Verification : Are we building right SW? and Validation : Did we build the SW right? Requirement Specification SW Verify Validate walkthrough, inspection static, dynamic Testing is part of SW Quality Assurance essential
  • 8. Testing is the process of exercising a program with the intent of finding errors within set time and effort prior to delivery to the end user. Not to show that a SW is working correctly! OK! Why Testing such Essential? Testing not only executing
  • 9.
  • 10.
  • 11.
  • 12. Exhaustive Testing There are 10 14 possible paths! If we execute one test per millisecond, it would take 3,170 years to test this program!! © SEPA loop < 20 X
  • 13.
  • 14.
  • 15.
  • 16. Why need independent tester? Developer Independent tester Advantage : Already knew the system. but, will test &quot;gently&quot; and, is driven by &quot;delivery&quot; Disadvantage : Must learn the system but, will attempt to break it and, is driven by quality © SEPA
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Two Important Testing Techniques Black-Box : To test the functionality, behavior and performance against its specification. Implementation logic is not necessary White-Box : To test the correctness of the internal logic of a module. Therefore, Implementation detail is necessary © SEPA boundary-value equivalent Partition white-box methods black-box methods basis-path control structure
  • 22. Black-Box Testing Functional, Behavior, Performance, requirements (expected output) events input output Internal logic not required © SEPA
  • 23. White-Box Testing Based on “coverage” : goal is to ensure that all the statements and conditions have been executed at least once … statement edge path To test the internal logic © SEPA
  • 24. Why Cover? logic errors and incorrect assumptions are inversely proportional to a path's execution probability we often believe that a path is not likely to be executed; in fact, reality is often counter intuitive typographical errors are random; it's likely that untested paths will contain some © SEPA
  • 25. PATH coverage not feasible There are 10 14 possible paths! If we execute one test per millisecond, it would take 3,170 years to test this program!! © SEPA loop < 20 X
  • 26. Select Most Suitable Paths - but how? Linearly Independent Paths : each new path introduces at least one different executable or simple conditional statement OR a new edge © SEPA This also ensures statement and edge coverage : every statement (and edge) is executed at least once loop < 20 X
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Cyclomatic Complexity A number of industry studies have indicated that the higher V(G), the higher the probability or errors. V(G) modules modules in this range are more error prone © SEPA
  • 37. Basis Path Testing- Independent Paths Next, we derive the independent paths: Since V(G) = 4, there are four paths Path 1: 1,2,4,7,8 Path 2: 1,2,4,5,7,8 Path 3: 1,2,4,5,6,8 Path 4: 1,2,3,2,4,.….,8 Finally, we derive test cases to exercise these paths. 5 2 1 3 4 8 6 7
  • 38. Basis Path Testing- TEST CASES Path 1: 1,2,4,7,8 N=0 , target=2 ,( A is empty ) Path 2: 1,2,4,5,7,8 N=1, target =2, A[1]= 4( any number > 2) Path 3: 1,2,4,5,6,8 N=1, target =2, A[1]= 2 Path 4: 1,2,3, 2, 4,.….,8 N=1, target =2, A[1]= 1 ( any number <2) But, more general cases are better; FALSE FALSE TRUE FALSE 5 2 1 3 4 8 6 7
  • 39.
  • 40.
  • 41.
  • 42. Loop Testing Nested Loops Concatenated Loops Unstructured Loops Simple loop © SEPA
  • 43. Loop Testing: Simple Loops © SEPA Minimum conditions—Simple Loops 1. skip the loop entirely 2. only one pass through the loop 3. two passes through the loop 4. m passes through the loop m < n 5. (n-1), n, and (n+1) passes through the loop where n is the maximum number of allowable passes
  • 44.
  • 45. Loop Testing: Nested Loops © SEPA Start at the innermost loop. Set all outer loops to their minimum iteration parameter values. Test the min+1, typical, max-1 and max for the innermost loop, while holding the outer loops at their minimum values. Move out one loop and set it up as in step 2, holding all other loops at typical values. Continue this step until the outermost loop has been tested. If the loops are independent of one another then treat each as a simple loop else* treat as nested loops for example, the final loop counter value of loop 1 is used to initialize loop 2. Nested Loops Concatenated Loops
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52. Equivalence Partitioning user queries mouse picks output formats prompts FK input data © SEPA
  • 53. Sample Equivalence Classes user supplied commands responses to system prompts file names computational data physical parameters bounding values initiation values output data formatting responses to error messages graphical data (e.g., mouse picks) data outside bounds of the program physically impossible data proper value supplied in wrong place Valid data Invalid data © SEPA
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62. Boundary Value Analysis &quot;Bugs lurk in corners and congregate at boundaries ...&quot; Boris Beizer WHY ? - unknown Select test cases to cover all the boundary values of input and output data elements and data structures © SEPA
  • 63. Boundary Value Analysis user queries mouse picks output formats prompts FK input data output domain input domain © SEPA
  • 64.
  • 65.
  • 66.
  • 67.
  • 68. Testing is an incremental process SystemEngineering Requirement Analysis Design Coding Test Plan Unit Test Integration Test ValidationTest SystemTest plans plans System test plan. SW+HW Function performance etc. BB some GB BB GB Acceptance Test Developer Tester Developer Tester Tester User
  • 69. Unit Testing module to be tested test cases results software engineer interface local data structures boundary conditions error handling paths global data effects independent paths loops, conditions ©SEPA
  • 70. Unit Test Environment Module stub stub driver RESULTS test cases not stand-alone Stubs and drivers are overheads and should be small enough to throw away after their use ©SEPA
  • 71.
  • 72.
  • 73.
  • 74. Top Down Integration top module is tested with stubs stubs are replaced one at a time, &quot;depth first&quot; as new modules are integrated, some subset of tests is re-run A B C D E F G Regression test ©SEPA
  • 75. Bottom-Up Integration drivers are replaced one at a time, &quot;depth first&quot; A B C D E F G as new modules are integrated, Regression test some subset of tests is re-run. May be automated ©SEPA
  • 76. Cluster-based Integration Worker modules are grouped into builds and integrated A B C D E F G cluster ©SEPA
  • 77. Integration Example- Case study processDetail ProcessReporter getProcessDetail determineEndDetail displayProcessRepor t getStartDetail getDuration addTime addDate getStartTime leap getStartDate daysInMonth processReport A cluster for validation
  • 78.
  • 79. High Order Testing validation test system test Acceptance tests alpha and beta test other specialized testing ©SEPA
  • 80.
  • 81.
  • 82. Acceptance Tests Developer’s site customer Alpha Test Beta Test Customer’s site ©SEPA By customers in their normal environment developer customer
  • 83. Debugging: A Diagnostic Process ©SEPA
  • 84. The Debugging Process test cases results Debugging suspected causes identified causes corrections regression tests new test cases ©SEPA
  • 85. Debugging Effort time required to diagnose the symptom and determine the cause time required to correct the error and conduct regression tests ©SEPA
  • 86. Symptoms & Causes symptom cause symptom and cause may be geographically separated symptom may disappear when another problem is fixed cause may be due to a combination of non-errors cause may be due to a system or compiler error cause may be due to assumptions that everyone believes symptom may be intermittent/irregular ©SEPA
  • 87. Consequences of Bugs damage mild annoying disturbing serious extreme catastrophic infectious Bug Type Bug Categories: function-related bugs, system-related bugs, data bugs, coding bugs, design bugs, documentation bugs, standards violations, etc. ©SEPA
  • 88. Debugging Techniques brute force / testing Backtracking Cause elimination by Binary partition induction deduction deduction deduction ©SEPA
  • 89. Debugging: Final Thoughts Don't run off half-cocked, think about the symptom you're seeing. Use tools (e.g., dynamic debugger) to gain more insight. If at an impasse, get help from someone else. Be absolutely sure to conduct regression tests when you do &quot;fix&quot; the bug. 1. 2. 3. 4. ©SEPA
  • 90.
  • 91.
  • 92. public class Date { private int day, month, year; public Date( ) { day=0; month=0;year=0; } public Date(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } public boolean leap( ) { // should change to private return ((year % 400 == 0)|| ((year % 100 > 0) && (year % 4 ==0))); } } public class Instance { private Date date; private Time time; public Instance(Date date, Time time){ this.date = date; this.time = time; } public void getInstance() { date.getDate(); time.getTime(); } } getDate( ) Date day month year getDate( ) displDate( ) addDate( ) dInMonth( ) leap( ) Instance date time getInstance( ) displInstance( ) addInstance( ) Date Day : integer month : integer year : integer getDate( ) displDate( ) addDate(d: integer, nD:Date) -dInMonth( ) -leap( ) Instance date:Date time:Time getInstance( ) displInstance( ) addInstance( )
  • 93.
  • 94.
  • 95.
  • 96. Structure Chart: hierarchical Class Collaborations: network ProcessReporter getProcessDetail getStartDetail getDuration getStartTime getStartDate Process: Instance:Start Date:Start Time:Start 1.disInst( ) 2. disDate( ) 6. addDate( ) 3.disTime( ) 4. addTime( ) Instance:End 8.Instance( ) Date:End Time:End 9. disDate( ) 10. disTime( ) 5. Time( )
  • 97.
  • 98. CASE STUDY - SEQUENCE DIAGRAM
  • 99.
  • 100. Cluster : A group of classes that collaborate to perform a particular request Start with receiver classes Instance:Start Date:Start Time:Start 1. addInst( ) 4. addDate( ) 2. addTime( ) Instance:End 8.Instance( ) Date:End Time:End 10. disDate( ) 9. disTime( ) 7. Date( ) 3. Time( ) 5. dInMon( ) 6. leap( )
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.