Software testing is a process of devising a set of inputs to
a given piece of software that will cause the software to exercise some
portion of its code. The developer of the software can then check that the
results produced by the software are in accord with his or her expectations.
Independent testing and verification before the implementation of the system
can help improve its quality and reliability and cut the overall costs of
the project.
Types of Software Testing
There are various methods for software
testing and few methods among them are as follows :
- Black Box Testing: not based on any knowledge of
internal design or code. Tests are based on requirements and
functionality.
- White Box Testing: based on knowledge of the
internal logic of an application's code. Tests are based on coverage of
code statements, branches, paths, conditions.
- Unit Testing: the most 'micro' scale of testing; to
test particular functions or code modules.
- Integration Testing: testing of combined parts of
an application to determine if they function together correctly. The
'parts' can be code modules, individual applications, client and server
applications on a network, etc.
- Functional Testing: black-box type testing geared
to functional requirements of an application.
- System Testing: Usually the target is the system's
end- to-end functioning elements
- Acceptance Testing: to verify that the software is
ready, and that it can be used by end users to perform those functions
and tasks for which the software was built.
- Independent Testing: It denotes the test design and
implementation most appropriately performed by someone who is
independent from the team of developers.
- Developer Testing: It denotes the aspects of test
design and implementation most appropriate for the team of developers to
undertake
- End to End Testing: It involves testing of a
complete application environment.
- Compatibility Testing: Testing how well software
performs in a particular hardware/software/operating system/network/etc.
environment.
- Security Testing: Testing how well the system
protects against unauthorized internal or external access
Key Measures of Software Testing
The key measures of the test
includes :
- Coverage: It is the measurement of testing
completeness.
- Quality: It is the measure of the reliability,
stability and performance of the system.
Advantages of Software Testing
- Reduced risk
- Low maintenance cost
- The release date can be more accurately predicted throughout the
project.
- More effective execution of business strategy
- Transparency established.
- Artifacts can be reused for regression testing.
- Not bound to any particular vendor.