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.
|