What is software quality?

Solutions to selected exercises 147 some different interface ideas. Having chosen a suitable interface you could then move onto an evolutionary approach to develop the final system.

2. As you do not know how the code was written, this is black-box testing; you only

know the overall functionality of the software. You should therefore run the pro- gram to test it with a test set of input values. During these tests, have you included tests for the following? n Do you test a number of ‘reasonable’ input values – for example, 0, 10, 100, –1, –10, –200? Do these provide the correct results? n Do you test for extreme values – for example, values below –273.15, values above say 10,000? How should the system react in these cases? n Have you tested real and integer values? n Have you tested non-numeric data entry – for example characters or strings? n Have you tested the sensitivity of the system – for example, does 1.0 produce the same result as 1.000001? n Have you tested negative and positive values for both the input and the output?

3. If you were given this simple specification, there would still be a number of ques-

tions you would need to answer in terms of its implementation. You could make a number of assumptions yourself as to what is appropriate or you could return to the user for clarification. In some cases, the user may be happy to respond to these questions; in other cases they may be annoyed that you cannot make simple deci- sions for yourself – so tread carefully. Although we haven’t even touched on the interface for this system in this exam- ple which would throw up another series of questions, the following are things you would need to clarify: n How should the system deal with incorrect data for example, character input, data outside the acceptable range, etc.? n Should the system ask the user for another number after it has provided a result or should the program terminate? n Should the system end after an incorrect input, or should it allow the user to have another go? n If it allows the user another go, how many times should it allow this? n How should the results be displayed – for example, how many decimal places should be displayed? Should °F or Fahrenheit appear after the result? n What range of inputs should the system cope with? Does it need to provide a message to the user informing them of this? n How accuratesensitive should the system be? This largely depends on the sensitivity of the input data – so how many decimal places are allowed for the input data? It is worth noting that even a simple program specification such as this has a significant number of ambiguities or areas where clarification is needed. Imagine the number of questions that will arise from much larger specifications. CHAPTER 7 Controlling your project Aims: To introduce the skills needed to manage yourself and your project effectively as it is progressing. Learning objectives: When you have completed this chapter, you should be able to: n Control the five elements introduced in Chapter 4 in your project as it progresses. n Understand problems that can occur and be aware of ways of dealing with them. n Manage your time effectively. n Know how to use your supervisor effectively. n Work efficiently in a project team. n This chapter is relevant for both undergraduate and postgraduate projects. n Section 7.5 Working in teams can be skipped by those undertaking research degrees and those not involved with group work. 148