Who is involved with testing and evaluation?

144 Chapter 6 n Software development validation and testing. These techniques are a type of quality control – checking that the system you have produced meets the requirements, works well and satisfies the client’s needs.

6.13.4 Quality standards

In developing commercial software systems, businesses invariably use and are certified to a quality standard of one kind or another. In this section we briefly discuss three of the most common quality standards that are used by organisations in product and partic- ularly software development. n ISO 9000. ISO 9000 is a series of standards for a quality management system. If a company is ISO 9000 certified, it means the company following an independent audit has a quality management system in place. This quality management system should, amongst other things, ensure that adequate records are kept of the business processes in terms of definition and monitoring and control, processes are contin- ually reviewed, and there is a quality control process in place. ISO 9000 includes a series of standards such as ISO 9001 which is aimed at companies that design, develop, manufacture, supply and maintain products and ISO 9004 which covers continual process improvement. Although not specifically aimed at software, the ISO 9000 series of standards is often adopted by software development companies to improve their performance and marketability. n ISO 9126. Introduced by the International Organisation for Standardization ISO in 1991, ISO 9126 defines six quality characteristics for software. These include: functionality, reliability, usability, efficiency, maintainability and portability. These characteristics can be broken down further depending on the nature of the system being developed for example, reliability can be broken down into fault tolerance, recoverability, etc.. By applying numerical ratings to each of the characteristics using Likert scales for example, it is possible to obtain relative measures of quality between systems. n Capability Maturity Model CMM. Unlike the ISO 9000 series of standards, CMM was developed specifically for the software development industry. Developed by the Software Engineering Institute it focuses on software process improvement. Organisations are graded on a five point scale according to their software process maturity. The levels range from 1, referring to organisations that have no defined software process in place and develop systems more by luck than judgement, to 5, which applies to organisations that not only have a well defined process in place but also invest in process change management. Although these quality standards are aimed at organisations, some of the principles underlying these standards may be applicable to your own software development project. For example, the principles of ISO 9000 in which you should have effective and recordable development processes in place is good practice to follow. The quality characteristics of software defined by ISO 9126 can be adapted to your own system evaluation. The principles of CMM in which you manage your development process and look at ways of improving your processes are also worthwhile. 6.16 Exercises 145 •

6.14 Summary

This chapter has introduced the following topics: n software development processes; n the generic software development life cycle; n the original build-and-fix model; n the conventional stage-wise and waterfall models; n the incremental model; n prototyping models – throw-away and evolutionary; n choosing an appropriate development approach for your own project; n top-down and bottom-up development; n verification, validation and testing your software; n software quality. •

6.15 Further reading

Davis, A.M. Bersoff, E.H. and Comer, E.R. 1988 ‘A strategy for comparing alternative software development life cycle models’, IEEE Transactions on Software Engineering, Vol 14 10, pp. 1453–1461. Hughes, R. and Cotterell, M. 2006 Software project management 4 th Edition, McGraw-Hill, London. Turner, J.R. 1993 The handbook of project-based management, McGraw Hill, Maidenhead, UK. •

6.16 Exercises

1. What development approach would be suitable in the following cases? i. You are undertaking a project that has been specified quite precisely by your project supervisor. The project requires you to develop a software system, written in C, to solve a problem specified by your supervisor. You will meet your supervisor every one or two weeks to discuss progress. ii. You are undertaking a research-oriented project that involves the development of a new algorithm to solve a particular mathematical problem. When you complete your project you will be expected to present a software system that incorporates this algorithm and illustrates how it works. iii. You are developing a multimedia DVD for a business client that will be used as a marketing device to ‘sell’ that company’s products to potential customers. iv. You are developing a web site for a local sports club.

2. Given the following simple software specification, produce a set of test cases for

the resulting software system. What kind of testing would you undertake for this?