Page 249 -
P. 249

232   Chapter 8   Software testing


                   EXERCISES

                       8.1. Explain why it is not necessary for a program to be completely free of defects before it is
                           delivered to its customers.
                       8.2. Explain why testing can only detect the presence of errors, not their absence.
                       8.3. Some people argue that developers should not be involved in testing their own code but that
                           all testing should be the responsibility of a separate team. Give arguments for and against
                           testing by the developers themselves.
                       8.4. You have been asked to test a method called ‘catWhiteSpace’ in a ‘Paragraph’ object that,
                           within the paragraph, replaces sequences of blank characters with a single blank character.
                           Identify testing partitions for this example and derive a set of tests for the ‘catWhiteSpace’
                           method.
                       8.5. What is regression testing? Explain how the use of automated tests and a testing framework
                           such as JUnit simplifies regression testing.
                       8.6. The MHC-PMS is constructed by adapting an off-the-shelf information system. What do you
                           think are the differences between testing such a system and testing software that is
                           developed using an object-oriented language such as Java?
                       8.7. Write a scenario that could be used to help design tests for the wilderness weather station
                           system.
                       8.8. What do you understand by the term ‘stress testing’? Suggest how you might stress test the
                           MHC-PMS.
                       8.9. What are the benefits of involving users in release testing at an early stage in the testing
                           process? Are there disadvantages in user involvement?

                      8.10. A common approach to system testing is to test the system until the testing budget is
                           exhausted and then deliver the system to customers. Discuss the ethics of this approach
                           for systems that are delivered to external customers.





                   REFERENCES

                      Andrea, J. (2007). ‘Envisioning the Next Generation of Functional Testing Tools’. IEEE Software, 24
                      (3), 58–65.
                      Beck, K. (2002). Test Driven Development: By Example. Boston: Addison-Wesley.
                      Bezier, B. (1990). Software Testing Techniques, 2nd edition. New York: Van Nostrand Rheinhold.
                      Boehm, B. W. (1979). ‘Software engineering; R & D Trends and defense needs.’ In Research
                      Directions in Software Technology. Wegner, P. (ed.). Cambridge, Mass.: MIT Press. 1–9.
                      Cusamano, M. and Selby, R. W. (1998). Microsoft Secrets. New York: Simon and Shuster.
   244   245   246   247   248   249   250   251   252   253   254