Page 188 - DCAP405_SOFTWARE_ENGINEERING
P. 188
Unit 11: Testing Strategies
11.1.4 Problems in Testing Notes
Software Testing is a critical element of Software Quality Assurance
It represents the ultimate review of the requirements, specification, the design and the
code.
It is the most widely used method to ensure Software Quality.
For most software, exhaustive testing is not possible.
Many organizations spend 40-50% of development time in testing.
Testing is the most expensive way to remove defects during software development.
Problems in testing are one of the major contributors to cost and scheduled overruns.
11.1.5 Testing Objectives
Which ones should we test?
One of the most intense arguments in testing object-oriented systems is whether detailed
component testing is worth the effort. That leads me to state an obvious (at least in my mind)
axiom: Select a component for testing when the penalty for the component not working is
greater than the effort required to test it. Not every class will be sufficiently large, important or
complex to meet this test so not every class will be tested independently.
There are several situations in which the individual classes should be tested regardless of their
size or complexity:
Reusable components: Components intended for reuse should be tested over a wider
range of values than a component intended for a single focused use.
Domain components: Components that represent significant domain concepts should be
tested both for correctness and for the faithfulness of the representation.
Commercial components: Components that will be sold, as individual products should be
tested not only as reusable components but also as potential sources of liability.
11.1.6 Scope of Software Testing
A primary purpose for testing is to detect software failures so that defects may be uncovered and
corrected. This is a non-trivial pursuit. Testing cannot establish that a product functions properly
under all conditions but can only establish that it does not function properly under specific
conditions. The scope of software testing often includes examination of code as well as execution
of that code in various environments and conditions as well as examining the quality aspects of
code: does it do what it is supposed to do and do what it needs to do. In the current culture of
software development, a testing organization may be separate from the development team.
There are various roles for testing team members.
Did u know? What is the role of information derived from the software testing?
Information derived from software testing may be used to correct the process by which
software is developed.
LOVELY PROFESSIONAL UNIVERSITY 181