The testing and evaluation of software solutions occurs throughout the software development cycle. - Design specifications are checked against requirements,
- algorithms are tested for correctness and efficiency,
- source code is tested as it is created and
- the final product is tested in a variety of live environments.
These are just some of the aspects of testing and evaluating software prior to its release. We have already examined a number of techniques used for testing and evaluating software as it is developed. In this chapter, we formalise these and introduce a number of others. Software products undergo formal system testing prior to their distribution and installation. This testing occurs after the product has been coded. For large commercial products, specialist teams dedicated to the testing process undertake system testing. Its purpose is to ensure the software performs its functions correctly and achieves its objectives under real conditions. - System-level testing involves the use of large file sizes, different types of transactions, large volumes of data as well as checking the interface between the product and other software and hardware.
- It aims to detect errors and problems rather than to identify their source and correct them.
- System-level testing uses black box testing techniques.
 - The inputs are compared to the expected outputs with no detailed knowledge of the processing.
- Errors and problems found would be sent back to the developers for correction.
In the HSC course, we examine system-level testing in detail.
In the preliminary course, we restrict our discussion to testing and evaluating the software itself rather than the total system. - The remainder of this chapter is concerned with checking algorithms and source code - testing they work correctly and efficiently and evaluating them to ensure they meet the original design specifications.
- We are interested in not just detecting errors but in identifying their cause which allows us to correct them.
- Therefore, we use white box testing techniques.
- White box testing involves examining the detail of each process as it occurs.
- To accomplish these tests first requires the creation of appropriate and thorough test data.
- The test data is then used to verify the logic of the solution.
- We then discuss methods for evaluating the design of software solutions.
- What are the advantages and disadvantages of different interpretations and approaches used as part of the solution? Finally, we discuss the need to evaluate the implemented solution against the original design specifications. This includes user feedback and consideration of social and ethical issues.
GROUP TASK Discussion Why do you think black box techniques are used for system-level testing and white box techniques for algorithm and source code testing? Discuss.
|