Software Testing Software Testing
By Marcin Starzomski :P
By Marcin Starzomski :P
What is Testing What is Testing ? ?
Testing is a process used to help identify the Testing is a process used to help identify the correctness, completeness and quality of
correctness, completeness and quality of developed computer software. Testing is developed computer software. Testing is
nothing but criticism or comparison, that is nothing but criticism or comparison, that is
comparing the actual value with expected one.
comparing the actual value with expected one.
S S software faults and software faults and S S oftware oftware failures
failures
failure - the software does not do what the user failure - the software does not do what the user expects
expects
faults - error in the correctness of the semantic faults - error in the correctness of the semantic of a computer program
of a computer program
W W hite box hite box ( ( glass box glass box ) Testing ) Testing
In white box or "glass box", testing the test In white box or "glass box", testing the test
developer has access to the source code. They developer has access to the source code. They
ensure that components used in the ensure that components used in the
construction are functional to some degree.
construction are functional to some degree.
B B lack box lack box Testing Testing
In black box testing the test engineer only In black box testing the test engineer only accesses the software through the same accesses the software through the same
interfaces that the customer or user would.
interfaces that the customer or user would.
G G rey rey (G (G ray ray ) ) B B ox ox T T esting esting
T T he typical grey box tester is permitted to set he typical grey box tester is permitted to set up or manipulate the testing environment. It up or manipulate the testing environment. It
can also be used of testers who know the can also be used of testers who know the
internal workings or algorithm of the software internal workings or algorithm of the software
under test and can write tests specifically for under test and can write tests specifically for
the anticipated results.
the anticipated results.
ALFA ALFA Testing Phase Testing Phase
I I n the first phase of alpha testing, developers n the first phase of alpha testing, developers test the software using white box techniques.
test the software using white box techniques.
Additional inspection is then performed using Additional inspection is then performed using
black box or grey box techniques.
black box or grey box techniques.
BETA Testing Phase BETA Testing Phase
Versions of the software, known as beta- Versions of the software, known as beta-
versions, are released to a limited audience versions, are released to a limited audience outside of the company. Testing during the outside of the company. Testing during the
beta phase, informally called 'beta testing, is beta phase, informally called 'beta testing, is
generally constrained to black box techniques generally constrained to black box techniques
although a core of test engineers are likely to although a core of test engineers are likely to continue with white box testing in parallel to continue with white box testing in parallel to
the beta tests.
the beta tests.
GAMMA Testing Phase :]
GAMMA Testing Phase :]
Cynics have referred to all software releases as Cynics have referred to all software releases as
"gamma testing" since defects are found in
"gamma testing" since defects are found in almost all commercial, commodity and
almost all commercial, commodity and
publicly available software eventually
publicly available software eventually
Remember ! Remember !
A A lpha and beta refer to stages of the software lpha and beta refer to stages of the software before release (and also implicitly on the size before release (and also implicitly on the size of the testing community, and the constraints of the testing community, and the constraints
on the testing methods), white box, black box, on the testing methods), white box, black box,
and grey box refer to the ways in which the and grey box refer to the ways in which the
tester accesses the target.
tester accesses the target.
C C ycle o ycle o f f testing testing
Requirements Analysis: Testing should begin in the requirements phase of Requirements Analysis: Testing should begin in the requirements phase of the software life cycle(SDLC).
the software life cycle(SDLC).
Design Analysis: During the design phase, testers work with developers in Design Analysis: During the design phase, testers work with developers in determining what aspects of a design are testable and under what
determining what aspects of a design are testable and under what parameter those testers work.
parameter those testers work.
Test Planning: Test Strategy Test Planning: Test Strategy
Test Development: Test Scenarios, Test Cases, Test Scripts to use in Test Development: Test Scenarios, Test Cases, Test Scripts to use in testing software.
testing software.
Test Execution: Testers execute the software based on the plans and tests Test Execution: Testers execute the software based on the plans and tests and report any errors found to the development team.
and report any errors found to the development team.
Test Reporting: Once testing is completed, testers generate metrics and Test Reporting: Once testing is completed, testers generate metrics and make final reports on their test effort and whether or not the software make final reports on their test effort and whether or not the software
tested is ready for release.
tested is ready for release.
Retesting the Defects Retesting the Defects
System testing System testing
Most software produced today is modular. Most software produced today is modular.
System testing is a phase of software testing in System testing is a phase of software testing in
which developers see if there are any which developers see if there are any
communications flaws--either not passing communications flaws--either not passing
information, or passing incorrect information-- information, or passing incorrect information--
between modules.
between modules.
Code Coverage Code Coverage
Code coverage is inherently a white box testing Code coverage is inherently a white box testing
activity.process allows developers and quality assurance activity.process allows developers and quality assurance
personnel to look for parts of a system that are rarely or never personnel to look for parts of a system that are rarely or never accessed under normal conditions (error handling and the like) accessed under normal conditions (error handling and the like)
and helps reassure test engineers that the most important and helps reassure test engineers that the most important
conditions (function points) have been tested.
conditions (function points) have been tested.