Test Analysis and Design Flashcards
Where test techniques are used?
In test analysis (what to test) and test design (how to test)
How to choose test techniques?
Some techniques are more applicable to certain test levels and situations, others can be used in all test levels.
In general, a combination of test techniques can achieve the best result.
A lot of factors can determine which test technique to choose, for example:
- type of component or system
- regulatory standards
- tester knowledge and skills
- expected use of the software
- …
What are the categories of dynamic testing?
- black-box
- white-box
- experience-based
How does black-box test technique work?
Aka specification-based techniques
View the test object (software under test) as black box with inputs/outputs WITHOUT looking at how the system or component is structured inside the box.
Test cases are independent of the way the software is implemented
If the implementation changes, the test cases are still valid.
Test conditions, test cases and test data are derived from a test basis that may include:
- software requirements
- Speicifications
- Use cases
- User stories
Test cases may be used to detect gaps between requirements and the implementation of the requirements as well as deviations from the requirements.
Coverage is measured based on the items tested in the test basis and the technique applied to the test basis.
What are some examples of black-box test technique?
- Specification-based
- Equivalence Partitioning
- Boundary value analysis
- Decision tables
- State Transition
- Use Case Testing
How does white-box test technique work?
Aka structure-based techniques
Based on an analysis of the architecture, detailed design, internal structure, code and processing within the test object.
Test cases are dependent on the internal structure and processing within the test object.
What are some examples of white-box test technique?
- Structure-based
- Statement
- Decision
- Branch
How does experience-based test techniques work?
Leverage the experience, knowledge and intuition of the testers to design and implement tests.
Effectiveness heavily depends on the skills and experience of the tester
Experience-based testing can find defects that could be missed by more formal test techniques
Often complement white/black box test techniques.
What are some examples of experience-based test technique?
- Error guessing
- Exploratory testing
- Checklist based testing
Explain equivalence partitioning.
It is a black-box technique
Can be applied on all testing levels
Idea is to devide (parition) data into groups or sets for which the behavior is assumed to be the same (test object should handle each value in a partition equivalently)
Test cases designed to execute representatives from ALL equivalence partitions
- valid value (valid equivalence partition)
- invalid values (invalid equivalence partition)
Test cases are designed to cover each partition ONCE and ONLY ONCE (valid and invalid)
How coverage is calculated for equivalence partitioning?
(Nr of equivalance partitions tested by at least one value / Total nr of identified equivalence partitions) * 100%
If you have multiple sets of partitions, combinations of partitions are not taken into account. In this case, test cases should exercise EACH partition from EACH set at least once.
Explain Boundary Value analysis
It is a test technique used to exercise the boundaries of equivalence partitions - min and max values of a partition. The reason to do that is because the behavior at the boundaries of equivalence partitions are more likely to be incorrect than within the partitions.
What is the difference between Boundary Value and Boundary Value (2 - value)? How about Boundary Value Analysis (3-value)?
For Boundary Value (2-value), each boundary has 2 coverage items:
- The boundary Value AND
- The value of the closest neighbor belonging to the adjacent partition
For Boundary Value (3-value), each boundary has 3 coverage items:
- The boundary Value AND
- The values of BOTH its’ neighbors
Consider this equivalence partitions:
x < 0.00 -> invalid
0.00 <= x <= 50.00 -> 2%
50.01 <= x <= 999.99 -> 3%
x > 999.99 -> 5%
Values tested for bondary value:
0.00, 50.00, 1000.00
Values tested for bondary value (2-value):
-0.01, 0.00, 50.00, 50.01, 999.99, 1000.00