3. Introduction
• Software testing is a critical element of
software quality assurance and represents the
ultimate review of specification, design &
coding.
• Testing is a process that requires more efforts
than any other software engineering activity.
• Testing is a set of activities that can be
planned in advance and conducted
systematically.
4. Introduction
• If it is done haphazardly, then only time will be
wasted and more even worse errors may get
introduced.
• This may lead to have undetected errors in the
system being developed.
• Hence performing testing is needed.
5. Testing Strategies
• There are basically four testing strategies :-
1) Unit testing
2) Integration testing
3) Validation testing
4) System testing
6. Unit Testing
• In unit testing the individual components are
tested independently to ensure their quality.
• The focus is to uncover the errors in design
and implementation.
• The various tests that are conducted during
the unit test are described as below :-
o Module interface are tested for proper
information flow in and out of the program.
7. Unit Testing
o Local data are examined to ensure that
integrity is maintained.
o All error handling paths should be tested.
o Boundary conditions are tested to ensure that
the module operates properly at boundaries
established to limit or restrict processing.
o All the independent paths are tested for
ensuring that all statements in the module
have been executed only once.
8. Integration Testing
• Integration is defined as a set of integration
among component. Testing the interactions
between the module and interactions with other
system externally is called Integration testing.
• Integration testing carried out using two
approaches :- 1) Non-Incremental :- Bing bang &
2) Incremental :- Top down testing, Bottom up
testing, Regression testing & Smoke testing.
9. Validation Testing
• The process of evaluating software during the
development process or at the end of the
development process to determine whether it
satisfies specified business requirements.
Validation testing ensures that the product
actually meets the client’s needs.
• Acceptance Testing :- The acceptance testing is a
kind of testing conducted to ensure that the
software works correctly in the user work
environment.
10. Validation Testing
• The types of acceptance testing :-
1. Alpha Test :- This testing is done by a developer
or by a customer under the supervision of
developer in company’s premises. Sometimes
full product is not tested using alpha testing only
core functionalities are tested.
2. Beta Test :- This testing is done by the customer
without any interference of developer and is
done at customer’s place. The complete product
is tested under this testing.
11. System Testing
• In system testing the software and other system
elements are tested as a whole.
• System testing verifies that all elements mesh
properly and that overall system performance is
achieved.
• System Tests are :-
1. Recovery Testing
2. Security Testing
3. Stress Testing
4. Performance Testing
12. Software Testing Technique
• Two basic techniques :- Black box testing & White box
testing.
• Black box testing :-
1. Black box testing is called as behavioural testing.
2. Black box testing examines some fundamental aspect of
the system with little regard for internal logical structure
of the software.
3. During black box testing the program cannot be tested
100 percent.
4. This type is suitable for large projects.
5. This is applicable to following levels of Software
engineering levels:- Integration, System, Acceptance
testing.
13. Software Testing Technique
• White box testing :-
1. White box testing is called as glass box testing.
2. White box testing the procedural details all the logical
paths, all the internal data structures are closely
examined.
3. White box testing lead to test the program throughly.
4. This type is suitable for small projects.
5. This is applicable to following levels of Software
engineering levels:- Integration, System, Unit testing.
14. Test case
• Test cases are used to determine the presence of fault
in the program. Sometimes even if there is some fault
in our program the correct output can be obtained for
some inputs. Hence, it is necessary to exercise those
set of inputs for which faults can be exposed off.
• Executing test cases require money because
i) Machine time is required to execute test cases.
ii) Human efforts are involved in executing test cases.
• The selection of test case should be such that faulty
program segment must be exercised by at least one
test case.