Does NothingDoes NothingDoes NothingDoes Nothing NowtAdminCase Studiesmodule1Module2Module3Module4Module5Module6Glossary  
nowtPolicy / StrategySoftware evaluationDatabase managementDistributed SystemsNetwork security and accountingHuman Computer InteractionHuman Computer InterfaceSoftware DevelopmentSoftware reliabilityPortability of Datanowt
NowtSoftware reliablityQuestionsNowt
 

Module Specification:

5.9 Software Reliability

Software Reliability Computer software is notoriously unreliable. This is because even a simple application will consist of many thousands of instructions, some of which will contain errors. In addition, while the designer will attempt to anticipate all the possible actions of the end user, there will still be combinations of actions that have not been considered and allowed for and these may cause the software to crash. Errors or faults in computer software are called bugs.

In safety critical software a bug may have life threatening consequences. In other software it may cause financial loss and it will almost certainly result in wasted time and reduced efficiency. Attempts are being made to develop mathematics that will allow a designer to prove that an algorithm - the basis of the software - is a correct and full solution to a problem. In the meantime testing remains the first line of defence against bugs.

Initial testing will be done using the test data and procedures defined during the design stage. The purpose of this initial testing is to ensure that the application or system matches the design specification and behaves as expected under the variety of conditions foreseen by its designers. This initial testing is called alpha testing. and any problems highlighted by the process will be corrected before the next stage of testing.

The designers will probably not anticipate all the combinations of conditions that will occur when the software is in real use. A second phase of testing, called beta testing will be performed. At this stage the software is supplied to a group of selected end users to test under working conditions with real data. Once again problems and bugs will be noted and corrected before the package is released.

Even the most extensive testing is unlikely to expose all the bugs in a complex package. Once the package is released then new bugs will be discovered by users. These will be reported to the manufacturer who will correct the software and eventually release an updated version with the identified bugs removed - and possibly new ones added. Versions of software are usually identified by a release number - e.g. 1.1, 1.2, 1.3 etc. If the software has been radically altered by, for example, producing a new HCI or implementing increased functionality, then the version number is changed so that release 1.6 might be followed by an improved version 2.1. Software manufactures may provide 'fixes' for bugs or even later releases free or for a small handling charge. Fixes are often distributed via the Internet. When a new version is produced users of earlier versions can often update to the latest version for a reduced cost.

   

©LEV