Anda di halaman 1dari 4

Software Testing Techniques

Software testing is as old as the hills in the history of digital computers. The testing of
software is an important means of assessing the software to determine its quality. Since testing
typically consumes 40~50% of development efforts, and consumes more effort for systems that
require higher levels of reliability, it is a significant part of the software engineering. With the
development of Fourth generation languages (4GL), which speeds up the implementation
process, the proportion of time devoted to testing increased. As the amount of maintenance and
upgrade of existing systems grow, significant amount of testing will also be needed to verify
systems after changes are made. Despite advances in formal methods and verification techniques,
a system still needs to be tested before it is used. Testing remains the truly effective means to
assure the quality of a software system of non-trivial complexity, as well as one of the most
intricate and least understood areas in software engineering. Testing, an important research area
within computer science is likely to become even more important in the future.

The Taxonomy of Testing Techniques

Software testing is a very broad area, which involves many other technical and non-
technical areas, such as specification, design and implementation, maintenance, process and
management issues in software engineering. Our study focuses on the state of the art in testing
techniques, as well as the latest techniques which representing the future direction of this area.
Before stepping into any detail of the maturation study of these techniques, let us have a brief
look at some technical concepts that are relative to our research.


Testing
The purpose of system testing is to identify and correct errors in the system and also to
judge if the system meets the requirements of the user or not. There are three levels of system
testing. They are as follows:

Unit Testing
This type of testing focuses on the verification of the smallest unit of software design
namely the module. Using the procedural description as a guide, important control paths are
tested to uncover the errors within the boundary of a module. Unit testing is normally white-box
oriented, and the steps can be conducted in parallel for multiple modules. In this project the sub-
modules have been individually tested.
Following checks were made:
Given set of data was taken as input to the module and the output was observed
Logic and boundary conditions for input and output were also checked
Interfaces between two modules were also checked
Runtime Exceptions were thrown which were detected and rectified by taking the Stack
Trace
Also all the possible situation were anticipated with the help of the user to conduct thorough
tests of the system.
Integration Testing
In this type of testing the main aim is to take the unit tested modules and build a program
structure which can be directed and dictated by the design.
This includes:
Top-down Testing
Bottom-up testing
Regression Testing

The last of the above was particularly important in this project which helped in ensuring
changes without introducing unintended behavior in addition.


System Testing
This type of testing consists of a series of tests whose primary purpose is to fully exercise
the computer based system all work to verify that system elements have been properly
integrated and that they perform specified functions.
When the individual program modules are working, we combined the modules into single
working system. This integration was planned and conducted in such a way that whenever an
error occurs we get an idea about the source of it.
The entire system was viewed as a hierarchy of modules. We began with the module at
the highest level of design and worked down. Then the next modules to be tested were those that
called previously tested modules.
Functional Testing
Once it was certain that information passed between modules according to the design
description, the system was tested to assure whether the functions describing the requirement
specification were performed by the system.
Acceptance Testing
When the functional test completes. The user gets involved to make sure that the system
works according to the users expectation.
Alpha Testing
In this the software goes through a phase in which errors and failures based on simulated
user requirements are verified and studied. The modified software is then subjected to Beta
Testing.
Beta Testing
This is testing the software in the actual users site or a live environment .The system is
used regularly with live transaction .After a scheduled time, failures and errors are documented
and final correction and enhancements are made before the package is released for use.

Anda mungkin juga menyukai