Software Testing
The Development of
finalized version of software involves series of activities. These
activities are mainly:
Project Planning
Analysis
Design
Coding
Testing
Coding
Implementation
Maintenance
Testing is one of
important phase of software development life cycle. After
development of software a set of activities are required to make
the software suitable to use by the end user. Thus software
testing techniques enter the picture to achieve the goal of
providing error free software to the customers. Testing is phase
in software development life cycle that comes into scene after the
Coding and before maintenance. Testing is required to check the
working of modules of software or software as a whole. Software
testing is a critical element in software quality assurance and
represents the ultimate review of specification, design and code
generation. Generally organizations expend 30 to 40% of total
project effort on testing. In case of human rated software like
flight control, nuclear reactor monitoring etc. can cost 3 to 5
times as much as altogether software engineering steps combined.
Objectives of
Testing:
Testing is undertaken
by executing the program with the intent of finding uncovered
error. A good and successful test is one that is able to uncover
all hidden errors and which has high probability of success.
Verification and
Validation: Software testing is often referred to as
verification and validation. Verification is a set of activities
that ensures the software is correctly able to perform its
functions whereas validation are a set of activities that are able
to find out whether the software is able to meet the customer
requirements. Thus the only difference between verification and
validation is that verification of checking of software internally
whereas validation is process of external checking of software
where output of software is able to meet the customer requirements
or not.
Types of software
testing strategies: Software Testing strategies are also of
different types. These are broadly classified under verification
testing and validation testing.
Verification testing
includes Unit testing and Integration testing.
Unit testing:
When tests are conducted to check the functionality of each
component or unit module software. It is Unit testing.
Integration
Testing: When all the modules of software are tested together
or the software is tested as a whole. It is Integration
testing.
Validation testing
includes system testing, alpha testing and beta or acceptance
testing.
System Testing:
Top level of Integration testing. At this level requirements are
validated as in SRS.
Alpha Testing:
When software is tested at developer’s site with the inputs
supplied by application testers of Developer Company itself. This
is Alpha Testing.
Beta Testing or
Acceptance Testing: When the software tests are conducted at
the customer site with the inputs supplied by application user.
This is Beta testing. It is also called Acceptance testing because
after this testing software is accepted by customer or this test
is necessary just to make it acceptable to
customer