Test Design and Documentation

advertisement
Test Design and Documentation
Test Design
• Test design is to ensure that all requirements are
met through a series of test procedures,
increasing the probability of the software being
capable of what is needed and wanted by the
client.
• Test design should start the moment the system
requirements have been approved and baselined.
• The test design changes/adapts during the
system development lifecycle’s iterations
Initial steps
• We must first take into consideration the
testing phase in which the test will be
executed, as there are different types of test
appropriate for testing:
–
–
–
–
–
–
Security
Performance
Usability
Compatibility
Functionality
And other phases testing
Initial Steps Continued
• Once we have done this we then review the
test plan, so as to understand the context and
framework within the test objectives are
defined.
• To break down the testing tasks involved with
test design we then have to ask ourselves the
following questions:
What to test?
• This should have been documented during the test
planning phase so all we have to do is to review our
test plan.
When should test procedures be developed?
• As already stated test procedures should be
developed as soon as the requirements are
approved. This question is more to do with what
order tests should be developed. Higher priority test
should be the first to be completed. The only
exception to this rule is pre-cursor functions, as
these are ran early regardless of there priority.
How should test procedures be designed?
• Generally there is no single solution to testing a
whole system. What usually happens is each part of
the system and how each part is integrated is
analysed and then we use the most appropriate and
effective test for each part.
Who should develop the tests?
• Once we have determined when, what and how
something is to be tested, it should be reasonably
clear who should be responsible for the different
testing.
More Questions
We now have to consider the following:
• What type of testing techniques shall we use?
– i.e. Black box or white box testing
• What test should be automated?
– i.e. Tedious repetitive data entry ones, cost analysis
• What kind of test data is needed?
Test Procedure Template
• A test procedure template should be
mandated as soon as it is possible to be
applied. This is to ensure:
– Consistency
– Completeness
– Repeatability
Test Procedure Standards
• It is important that test design standards are
documented, communicated and followed by the
whole development team. This is so that the
required test information is produced.
• These guidelines are necessary whether they are
manual or automated test procedures.
• The standards for manual test procedures should
include an example of how much detail the
procedure should go in.
• The standards for automated test design are
pretty similar to those of best coding practises.
Test Procedure Standards
• While it is important to maintain and mandate
a test procedure template it is worth noting
that the template should remain in a generic
manner, omitting test data which is too
specific.
• This could lead to unnecessary duplication
which could become both costly and time
consuming.
Test-Design Techniques
• The amount of test variations is endless, to narrow
down the amount of necessary test procedures we use
certain test-design techniques:
• Functional Analysis
– Involves analysing expected behaviour against functional
specifications, then generating one or more test procedure
for each function
• Equivalence Partitioning
– Identifies ranges of inputs and initial conditions that
produce expected similar results. It eliminates tests that
are similar and hence narrows down the amount of tests
to be concluded.
Test Design Techniques
• Path Analysis
– Is used by testing the internal paths, connections
and structure of a product and can be applied at
two levels (code based, white-box testing during
unit tests & functional/black-box testing by testers
or users i.e. manually)
• Boundary Value
– Used primarily for testing input edit logic, i.e. tests
that the checks used for filtering out invalid data
are working correctly.
Test Design Techniques
• Orthogonal Arrays
– Allows the maximum amount of test coverage
with the minimum amount of test coverage, very
useful for when there is a large amount of test
input data or combinations of this data
Orthogonal Arrays
CASE #
A
B
C
1
1
1
3
2
1
2
2
3
1
3
1
4
2
1
2
5
2
2
1
6
2
3
3
7
3
1
1
8
3
2
3
9
3
3
2
Exploratory Testing
• Exploratory testing is used in order to gain
knowledge required for designing appropriate
and effective tests.
• It is most appropriate when detailed design are
either absent or not complete.
• Exploratory testing produces test conditions with
each iteration of the development lifecycle.
• If a pattern occurs in the problems found early in
exploratory testing , it helps focus the efforts of
the later tests.
Summary
• Test design is to ensure all requirements are
met through a set of procedures
• We then review the test plan and ask
ourselves what to test, when to test, how to
test and who to test?
• How to test in more detail, what tests should
be automated, what type of testing
techniques to use, what data do we need to
be produced
More Summary
• Testing techniques
– Functional analysis
– Equivalence partitioning
– Path analysis
– Boundary value
– Orthogonal arrays
• Exploratory testing
Download