3. Introduction
●
Software testing is a critical element of software quality
assurance and represents the ultimate review of
specification, design and coding.
Software testing is usually performed for one of two
reasons: defect detection, and reliability estimation.
01/29/14
3
4. Introduction
●
The problem of applying software testing to reliability
estimation is that the input distribution used for selecting
test cases may be flawed. We must at all times have in mind
that the key to software testing is trying to find modes of
failure - something that requires exhaustively testing the
code on all possible inputs.
Software testing, depending on the testing method
employed, can be implemented at any time on the
01/29/14
development process.
4
5. Knowing the objectives:
●
Testing is a set of activities that could be planned ahead and
conducted systematically. The main objective of testing is to
find an error by executing a program. And the objective of
testing is to check whether the designed software meets the
customer specification.
01/29/14
5
6. Knowing the objectives
In other to know and understand the objectives better, the
following should be considered:
●
●
●
Test should be appropriate and different for different points
in time
An independent test group should exist and should conduct
testing for different software development projects.
Though testing and debugging are different activities ,
debugging must be accommodated in any testing activity.
01/29/14
6
7. Test Plan:
For performing any activity, planning is done and similarly
testing commences with a test plan.
A test plan is a general document for the entire project that
defines the scope, approach to be taken, and the schedule of
testing as well as identifies the test items for the entire
testing process and personnel responsible for the different
activities of testing.
01/29/14
7
8. Test Plan
The inputs for the test plan are as follows: project plan,
requirements documents and system design document.
An ideal test plan should contain the following:
●
Test unit specification
●
Features to be tested
●
Approach to testing
●
Test deliverable
●
Schedule
●
Personnel allocation
01/29/14
8
9. Test Plan
●
Testability:
Testability is simply how a computer program can be tested.
This is a process of testing how adequately a particular sets
of tests will cover the product.
The Attributes of a good test are:
●
It should have a high probability of finding an error:
(The Tester must understand the software and attempt to
develop a mental picture of the failure possibilities.)
01/29/14
9
10. Test Plan
●
It is not redundant: (Since the testing time and resources
are limited, there is no point of conducting the test of same
procedure as like the other. Every test should have different
purpose.)
●
It should be best of breed.
●
It should be neither simple or complex. (Although it is
sometimes possible to combine a series of tests into one test
case, the possible side effects associated with this approach
01/29/14
may mask errors.)
10
11. Development Testing
●
Development testing includes verification and validation
(V&V).
Verification refers to the set of activities that ensure that
software correctly implements a specific function.
Validation refers to a different set of activities that ensure
that the software has been built is traceable to customer
requirements.
Verification - "Are we building the product right?,
01/29/14
Validation - "Are we building the right product"?
11
12. Development Testing
●
Some of the activities of verification and validation are
part of the software quality assurance that include the
formal
reviews,quality
and
configuration
audits,
performance monitoring, simulation, feasibility study,
document review,database review, algorithm analysis,
development testing, qualification testing, and installation
testing.
01/29/14
12
13. Development Testing
In other to implement any testing strategy the following
must be implemented:
➔
Specify product requirement in quantifiable manner long
before testing commences. Although the overriding
objective of testing is to find errors, a good testing
strategy also assesses other quality characteristics such
as portability,maintainability, and usability. These must
be specified in a way that is measurable so that testing
results are unambiguous.
01/29/14
13
14. Development Testing
➔
State testing objectives explicitly. The specific objectives
of testing should be stated in measurable terms.
For e.g., test effectiveness, test coverage, meantime to
failure, the cost to find and fix defects, remaining defect
density or frequency of occurrence,and test work hours
per regression test should all be stated within the test
plan.
01/29/14
14
15. Development Testing
➔
Develop a testing plan that emphasizes "rapid cycle
testing": it is recommended that a software engineering
team learn to test in rapid cycles. And the feedback
generated from these rapid tests can be used to control
quality levels and the corresponding test strategies.
01/29/14
15
16. Development Testing
➔
Build "robust" software that is designed to test itself.
Software should be designed in a manner that uses antibugging techniques.
That is, software should be capable of diagnosing certain
classes of errors.
In addition, the design should accommodate automated
testing and regression testing.
01/29/14
16
18. General Testing Methods
●
Traditionally, there are two main approaches to testing
software: black-box(or functional) testing and
black-box
white-box (or structural) testing. This two should be
performed together for every application so that the
software will live up to user's expectations on every
level.
01/29/14
18
19. General Testing Methods
●
White-Box testing:
White-box testing strategies include designing tests such
that every line of source code is executed at least once, or
requiring every function to be individually tested.
#It requires visibility into the executable to determine what
to test.
#It requires a method to determine the outcome of the test.
01/29/14
19
20. General Testing Methods
●
Black-Box Testing:
Black-box testing tests whether an application actually
functions as it intended to function.
#Testing critical paths functionality (i.e., testing certain Site
functionality by testing if associated paths through the site
contain errors)
#Testing whether or not all appropriate pages contain
certain invariable elements.
01/29/14
20
21. General Testing Methods
●
Black-Box and White-Box Testing Methods:
While black-box and white-box are terms that are still in
popular use, many people prefer the terms "behavioral"
and "structural".
●
White box testing is much more expensive than black
box testing. It requires the source code to be produced
before the tests can be planned and is much more
laborious in the determination of suitable input data and
the determination if the software is or is not correct.
01/29/14
21
22. Conclusion
●
Software testing is an important phase in the software
development life cycle. It represents the ultimate review
of specification, design and coding. The main objective
for test case design is to derive a set of tests that can find
out errors in the software.
A quality product is what every one wants and
appreciates. Software Testing also provides an objective,
independent view of the software to allow the business to
appreciate and understand the risks at implementation of
the software.
01/29/14
22