Software Testing Methods: A Rundown of the
Main Processes
It is well known that the software testing is an
important phase in the software development life cycle. In many
cases the testing time is more than the development time of the
software. The engineers working on software estimate that the
total time taken for testing software is as high as 50% of the
development time. The software undergoes different types of
tests before it is ready for release.
The basic purpose for software testing is to find the errors
in the software or coding in the software. During testing the
software is tested for its quality, functionality, correctness,
completeness, maintainability, efficiency, performance,
capability, portability and usability. The errors or bugs in
the software are easy to locate but are difficult to rectify.
The software testing identifies the errors and these are to be
rectified by the coder or tester. Once the errors are rectified
the software is tested again. It may so happen that the
software may not operate properly after the removal of bugs.
The cycle of testing and retesting goes on until the software
is fully made functional without errors. This is an expensive
iterative process but cannot be avoided because of negative
consequences. If the bug is serious consequences will be
disastrous; some incidents are airplane crashes, stock market
delays etc. One can skip the testing if the errors are
minor.
The choice of the type of software testing methods is mainly
dependent on the software and also the type of errors that are
likely to occur. Tests conducted to maintain the quality of the
software ensure that there are no serious errors. For any
software to pass through quality tests three criteria are used
i.e. functionality, engineering and adaptability. The output of
functionality tests are correctness, reliability, usability and
integrity. Engineering deals with interiors and takes care of
efficiency, testability, documentation and structure.
Flexibility, reusability and maintainability are necessary for
future and this is taken care of by adaptability. The process
of verification and validation testing, tests for these three
qualities.
The most important and successful test that checks the
functionality is black box testing. The black box testing
requires no knowledge of internal logic or code structure and
is mainly focused on the testing for requirements and
functionality of the product/ software application. In this the
software tester will input the data and see the correctness of
the output data. He is not concerned with the internal
operations which make the data do what it does. The white box
testing deals with the internal logic and structure of the
code. The tests written based on the white box testing strategy
incorporate coverage of the code written, branches, paths,
statements and internal logic of the code etc. Gray box testing
involves having access to internal data structures and
algorithms for purposes of designing the test cases, but
testing at the user, or black-box level. Gray box testing can
be considered as the combination of black box and white box
testing. The objective of this testing is to find out defects
related to bad design or bad implementation of the system.
The process of testing is very expensive; that too if it is
manual. Software is available for automated testing and this
type of testing is relatively inexpensive. However, test cases
are not available for testing based on different criteria. The
success or failure of the software depends on its passing the
performance, reliability and security testing.
|