The testing process: Choosing the right answer for multiple choice questions.
Motivation: Errors and defects are unavoidable during software development, making software testing the most important method of quality assurance.
The testing process: Identifying and comprehending facts and attributes of the system under test are important for test design.
Motivation: Being able to extract and understand key facts from the specification of a system being tested are important skills for the successful design of a test.
The testing process: Designing tests using the state transition technique.
Motivation: The state transition technique is essential in developing efficient and effective functional tests for stateful systems.
The testing process: Assembling a set of test cases that provides sufficient test coverage.
Motivation: Being able to create a set of test cases that ensure adequate test coverage is a key skill for creating a successful test. It is desirable for the test suite also to be optimal, i.e. to minimize test execution effort and time without affecting the test coverage.
A bug-tracking workflow that has four states (NEW, POSTPONED, ASSIGNED and CLOSED) needs to be tested.
The workflow consists of transitions between states, which are made by the following rules:
- A newly submitted ticket is automatically set to the NEW state.
- A ticket in the NEW state can be changed to the POSTPONED, ASSIGNED or CLOSED state.
- A ticket in the POSTPONED state can be changed to the ASSIGNED state.
- A ticket in the ASSIGNED state is processed and after that its state is changed to CLOSED.
- A ticket in the CLOSED state is tested. If the bug has not been fixed, its state is changed back to NEW.
Select test cases (sequences of states a ticket has to be driven through) that form an adequate test suite with a minimum total number of state transitions.