Software testing

Home Up

This information is to help students to make a plan for testing the software they have developed.  Testing is an important part of the marking schedule for 'O'-Level Computer Studies projects.  A good well executed plan is required.


Structured Testing during software development

The purpose of testing is to identify deficiencies in the system being developed. The testing activity takes place throughout the system development life cycle. Testing is to ensure quality.

Here are a few notes and suggestions for implementing a testing strategy.

What and when to test.

A simple testing strategy will address four levels of testing. These four levels are

  1. Unit Testing
    This type of testing is to prove that modules do not operate according to design specifications. We must also prove that modules do not interface with each other.
    Example: A function designed to calculate the area of a triangle does not perform as expected when the inputs are abnormal – such as a height of -6 and base length of "quite big".
  2. System Integration Testing
    The objective of this testing is to show that all the components of the system do not work together.
    Example: We create a user interface screen that has a save() function. After executing the save() function we move to a new screen and find we get an error message displayed. The problem being that the save() function of the previous screen changed the data environment for the information system, making it impossible to load information from a database view into the new screen. In this example the save() function of one screen interferes with the operation of the form_load() function of another screen. This particular example demonstrates a coupling problem, which we would be looking for in system integration testing. The example demonstrates how a module has failed to meet a programming requirement that the modules do not alter environmental or global parameters except in a predictable way.
  3. User Acceptance Testing
    This testing is completed by end-users. It is to demonstrate that the system does not meet end – user requirements. Put another way, this testing is to show that the system does not meet or exceed user expectations.
    Example: A system is tried out by staff at a business where the new system is to be implemented. It is found that users have trouble navigating from one screen to another because buttons have unusual icons and there is no help function to guide users when they get stuck. This amounts to proof that the system is not ready for implementation. At this stage the system is tested in a controlled environment – not with live data.
  4. Production Acceptance Testing
    The purpose of this testing is to prove that the system fails to operate according to user expectations in a real – life environment. This testing is normally carried out by system users with system developers acting as technical support staff.

What to do….

  1. Make a Gantt Chart that shows how the testing activities of your project are to be completed. Activities to be included are:
    Choosing test type and timing.
  2. Making suitable test data sets that will exhaustively test the four categories above.

Here is a list of tests that might be included in a project. It is not necessary to complete many of these – though it is likely that all of them would be completed for a large expensive project.

You should construct suitable tests for your project and provide (i) a list of the data that you have used (ii) the result of processing (iii) the expected result of processing (iv) a comment about the success or otherwise of the testing.  Remember that testing is successful when errors are found!

This short document is not a complete guide to testing. Any good system design and development textbook will provide a bigger list. The list above is based upon some of the tests suggested by Roger Fournier in his book called "Practical Guide To Structured system Development And Maintenance". Some ideas also came from a book called "Systems Analysis, Design and Implementation" by John G, Burch.


Home Dictionary Acronyms News Search Links