Introduction to Testing
The need for testing these software applications is therefore
very clear because testing helps to ensure that applications
developed meet with the original intent of the customer. The
complexity that applications must support today comes at a price
to developers because each of the many features being created
have to be tested in multiple scenarios and different environments
to ensure that they work properly as intended. And in the event
that the user performs an invalid operation, the system should
generate a meaningful message to the user about why the failure
It is not unusual to download and use an application and find
that an attempt to do something impossible, like save a document
directly to a CDROM drive, will cause the application to crash.
This is because the developer of the application did not foresee the
multiple scenarios that endusers of the application would
attempt while using the application. While the enduser might be
wrong to save a document to a readonly drive, it is still important
for the application to recover from the scenario gracefully without
causing the user to lose the work done to their document.
This is precisely why we do software testing. It provides the
ability to rigorously test a software application to ensure that the
application meets with the originating requirements and
expectations. Testing also helps to ensure that the application
continues to function even when used in unintended ways. If
problems are found during the development phase of an
application, they can be fixed before the application is made
available to endusers.
Figure 1.1: The Windows Notepad application.