chapter 4 - Test Analysis and Design Flashcards
The criteria that a component or system must satisfy in order to be accepted by a user, customer, or other authorized entity.
Acceptance criteria
A collaboration-based test-first approach that defines acceptance tests in the stakeholders’ domain language.
Acceptance test-driven development
Abbreviation: ATDD See also: specification by example
Black-box test technique
A test technique based on an analysis of the specification of a component or system. Synonyms: black-box test design technique, specification-based test technique
-(also known as specification-based techniques)
-are based on an analysis of the specified behavior of the test object without reference to its internal structure.
-Therefore, the test cases are independent of how the software is implemented.
-Consequently, if the implementation changes, but the required behavior stays the same, then the test cases are still useful.
Examples: Boundary value analysis, Decision table testing, Equivalence partitioning, State transition testing
-can only be dynamic testing because it involves executing the software to verify its behavior during runtime.
-A black-box test technique in which test cases are designed based on boundary values
Boundary value analysis
See also: boundary value (. 3-value BVA- Three-value Boundary Value Analysis (BVA))
Boundary Value Analysis (BVA) is a technique based on exercising the boundaries of equivalence partitions.
Therefore, BVA can only be used for ordered partitions.
The coverage of branches in a control flow graph
Branch coverage
-Coverage is measured as the number of branches exercised by the test cases divided by the total number of branches, and is expressed as a percentage.
-When 100% branch coverage is achieved, all branches in the code, unconditional and conditional, are exercised by test cases.
An experience-based test technique in which test cases are designed to exercise the items of a checklist
Checklist-based testing
An approach to testing that focuses on defect avoidance by collaborating among stakeholders
Collaboration-based test approach
The degree to which specified coverage items are exercised by a test suite, expressed as a percentage. Synonyms: test coverage
Coverage
- An attribute or combination of attributes derived from one or more test conditions by using a test technique. See also: coverage criteria
Coverage item
A black-box test technique in which test cases are designed to exercise the combinations of conditions and the resulting actions shown in a decision table.
Decision table testing
Decision tables are used for testing the implementation of system requirements that specify how different combinations of conditions result in different outcomes.
Decision tables are an effective way of recording complex logic, such as business rules.
When creating decision tables, the conditions and the resulting actions of the system are defined. These form the rows of the table.
Each column corresponds to a decision rule that defines a unique combination of conditions, along with the associated actions.
In limited-entry decision tables all the values of the conditions and actions (except for irrelevant or infeasible ones; see below) are shown as Boolean values (true or false). Alternatively, in extended-entry decision tables some or all the conditions and actions may also take on multiple values (e.g., ranges of numbers, equivalence partitions, discrete values).
- A black-box test technique in which test conditions are equivalence partitions exercised by one representative member of each partition. Synonyms: partition testing
Equivalence partitioning
Equivalence Partitioning (EP) divides data into partitions (known as equivalence partitions) based on the expectation that all the elements of a given partition are to be processed in the same way by the test object.
The theory behind this technique is that if a test case, that tests one value from an equivalence partition, detects a defect, this defect should also be detected by test cases that test any other value from the same partition. Therefore, one test for each partition is sufficient.
A test technique in which tests are derived on the basis of the tester’s knowledge of past failures, or general knowledge of failure modes.
Error guessing
A test technique based on the tester’s experience, knowledge and intuition. Synonyms: experience-based test design technique, experience-based technique
Experience-based test technique
-effectively use the knowledge and experience of testers for the design and implementation of test cases.
-The effectiveness of these techniques depends heavily on the tester’s skills.
-Experience-based test techniques can detect defects that may be missed using the blackbox and white-box test techniques. Hence, experience-based test techniques are complementary to the black-box and white-box test techniques.
Examples: Checklist-based testing, Exploratory testing
An approach to testing in which the testers dynamically design and execute tests based on their knowledge, exploration of the test item and the results of previous tests. See also: test charter
Exploratory testing
A black-box test technique in which test cases are designed to exercise elements of a state transition model. Synonyms: finite state testing
State transition testing
A state transition diagram models the behavior of a system by showing its possible states and valid state transitions.
A transition is initiated by an event, which may be additionally qualified by a guard condition.
The transitions are assumed to be instantaneous and may sometimes result in the software taking action.
The common transition labeling syntax is as follows: “event [guard condition] / action”. Guard conditions and actions can be omitted if they do not exist or are irrelevant for the tester.
The coverage of executable statements
Statement coverage
Coverage is measured as the number of statements exercised by the test cases divided by the total number of executable statements in the code, and is expressed as a percentage.
When 100% statement coverage is achieved, it ensures that all executable statements in the code have been exercised at least once. In particular, this means that each statement with a defect will be executed, which may cause a failure demonstrating the presence of the defect. However, exercising a statement with a test case will not detect defects in all cases.
For example, it may not detect defects that are data dependent (e.g., a division by zero that only fails when a denominator is set to zero).
Also, 100% statement coverage does not ensure that all the decision logic has been tested as, for instance, it may not exercise all the branches (see chapter 4.3.2) in the code.
A procedure used to define test conditions, design test cases, and specify test data. Synonyms: test design technique
Test technique
A test technique only based on the internal structure of a component or system. Synonyms: white-box test design technique, structure-based test technique
White-box test technique
-(also known as structure-based techniques)
-are based on an analysis of the test object’s internal structure and processing.
-As the test cases are dependent on how the software is designed, they can only be created after the design or implementation of the test object.
Examples: white-box test design technique, structure-based test technique, branch testing, statement testing
-can be dynamic or static testing
support the tester in test analysis (what to test) and in test design (how to test).
Test techniques
-Test techniques help to develop a relatively small, but sufficient, set of test cases in a systematic way.
Test techniques also help the tester to
define test conditions
identify coverage items
and identify test data during the test
analysis and design
test techniques are classified as
black-box,
white-box,
and experience-based.
A white-box test technique in which test cases are designed to execute statements.
statement coverage
-the coverage items are executable statements.
-The aim is to design test cases that exercise statements in the code until an acceptable level of coverage is achieved.
A white-box test technique in which the test conditions are branches.
Branch testing
black-box vs white-box testing
- Black-Box Testing:
Focus: Testing the functionality of the application without knowing the internal code, structure, or implementation.
Tester’s Perspective: The tester is only concerned with the inputs and outputs. They do not have knowledge of how the system processes those inputs to generate outputs.
- White-Box Testing (also called Glass-Box or Clear-Box Testing):
Focus: Testing the internal code, logic, and structure of the application.
Tester’s Perspective: The tester has full knowledge of the internal workings of the system and tests the software from a developer’s point of view.
experience based test examples
Checklist-based testing,
Exploratory testing,
error guessing
white-box test techniques examples
white-box test design technique,
structure-based test technique,
branch testing,
statement testing
black-box test techniques examples
Boundary value analysis,
Decision table testing,
Equivalence partitioning,
State transition testing
specification-based techniques
Black-box test techniques
structure-based techniques
White-box test techniques
finite state testing
state Transition Testing