6. Testing and Evaluation Software Solutions Flashcards
How can an algorithm be tested?
By testing all pathways through the algorithm code and testing boundary conditions
Desk checking
A manual process. Each statement in the algorithm is evaluated by hand and the results written on a table. The table contains a column for each identifier used within the algorithm. As the value in an identifier changes the new value is written beneath the previous value.
What are design specifications?
They aim to formalise the requirements that must be fulfilled. A number of guiding questions may assist in this process:
- Is it a generic solution?
- Can it be understood?
- Is it efficient?
- Is it self-contained?
Peer checking
Colleagues at the same level within the company examine and comment on the work of their peers. A strong team atmosphere is required if peer checking is to be successful.
Structured walk through
The developer or team of developers present their work to a group of interested parties, presenting it step-by-step. No attempt is made to correct or justify aspects of the product; the aim being to receive feedback
Checking the solution meets the original requirements
The main aim of any new software solution is to meet its original requirements and design specifications. Design specifications need to be evaluated to ensure those involved have complied.
User feedback
Software is written for users, if it does not meet their needs then it will not be considered a success. Therefore user feedback should always be valued and considered.
Testing pre-releases
User feedback can be obtained using pre-release versions of the product. The users selected should possess various levels of expertise dependant on the nature of the product. They should be encouraged to complete tasks using the new product and evaluate its effectiveness in terms of their own needs.
Statement coverage testing
Ensures every statement is executed
Decision coverage testing
Ensures every boundary condition is tested
Path testing
Ensures every path through the algorithm or code must be executed by our test data if we are to be sure of its correctness