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.