Mindmap
Lecture 10 - Testing and Verification
Inhalt der Mindmap
Lecture 10 - Testing and Verification
Overview
- Testing a significant component of most life-cycle models
- An integral component of development
- Should occur during every phase of life-cycle
- Divide into:
- Execution based
- Non-Execution Based
- Independence of testing
- Responsibility of different people
- Originators have blind spots
Non-Execution Based Testing
- Walkthrough
- Group discussion of design documents
- Concentrates on fault finding
- Not about presenting a solution
- Two Main Techniques
- Authors of various design documents present/justify their proposals
- Team provide feedback
- Authors of various design documents present/justify their proposals
- Group discussion of design documents
- Inspection
- More detailed and structured than walkthrough
- Five Main Steps
- Overview
- General statement by one individual
- Preparation
- Participants try to understand documentation
- Inspection
- Detailed presentation of each document
- Ensure every brand covered
- Faults identified
- Report of faults produced by discussion moderator
- Detailed presentation of each document
- Rework
- Author responds to faults presented
- Proposes solution to faults
- Author responds to faults presented
- Follow-Up
- Ensure all faults addressed, no new ones introduced
- Overview
- Walkthrough
Testing during development phases
- Requirements Phase
- Allow various users to experiment with prototypes
- Ensure people consulted are representative of end users
- Object-Orientated Analysis Phase
- Walkthrough/Inspection of design documentation
- CRC Cards, Initial Class Diagrams
- Walkthrough/Inspection of design documentation
- Design Phase
- Walkthrough/Inspection Again (Personnel restricted to design team)
- Detailed Class Diagrams, Behavioural Diagrams
- Show how new documentation follows from earlier stages
- Walkthrough/Inspection Again (Personnel restricted to design team)
- Requirements Phase
Criteria for Execution based Testing
- Correctness
- Satisfies its out requirements
- Utility
- Extent to which user's needs are met
- Reliability
- Frequency of product failure
- Robustness
- Error Handling, adaptability to differing operating conditions
- Performance
- Response Time, Memory Utilisation
- Correctness
Implementation
- Class Testing
- Informal (By Programmers)
- Methodical (SQA Group)
- Non-Execution Based
- Execution Based
- Black-Box (Test to specifications)
- Choose test data based on specifications
- White-Box/Glass-Box (Test to Code)
- Test-Data chosen by examining code
- Class Testing
Black-Box Testing
- Not possible to test all input permutations
- Two variables
- One takes one of seven values
- One takes one of nine values
- Implies 56 permutations and is a very simple case
- Two variables
- Art to choosing manageable sets of data
- Equivalence testing and boundary value analysis
- Equivalence Class
- et of data where one element is effectively as good as another
- Can apply similar technique to output
- Devise test data to produce output in each equivalence class and around boundaries
- Alternative: Functional Testing
- Test functional of whole system
- Each item of functionality for the system tested
- Not possible to test all input permutations
White-Box Testing
- To test every path through the code
- Permutations very large
- Not possible to test all paths
- Structural Testing
- Statement Coverage
- Test Data formulated so that every statement is executed at least once
- Weakness on slide
- Branch Coverage
- Devise test data such that every branch of very statement executed
- More difficult but more errors found
- Devise test data such that every branch of very statement executed
- Path Coverage
- Tests all paths through code
- Too Many
- Use Linear Code Sequences
- Identify points L from which control flow may jump
- Control statements (if, do, switch etc), entry and exit points
- Linear code sequence begins at an element of L and ends at an element L
- Testing only these paths significantly reduces the total number
- Alternative
- All-Definition-Use-Paths
- Identify paths between variable definition and its use
- Test these paths
- Very efficient technique, many faults found
- Far fewer paths than maximum
- Identify paths between variable definition and its use
- Infeasible paths (Dead Code)
- Some code cannot be reached -- indicates fault
- Integration/Maintenance
- Each class tested as completed
- Test the remainder still works
- Maintenance: Additional Problem: Personnel unfamiliar with product
- All-Definition-Use-Paths
- Tests all paths through code
- Statement Coverage
- To test every path through the code
Formal Verification
- Problems may remain after all testing
- Alternative
- Formally prove program correct
- Proof mathematical and time consuming
Informationen
- Beschreibung
- Degree EL560 (Software Engineering) Mindmap am Lecture 10 - Testing and Verification, erstellt von Tom Revise am 29/12/2020.
- Erstellt von
- Tom Revise
- Aufrufe
- 0
- Bewertung