Hardware Reference
In-Depth Information
Table 1. Software rating - defect density, [27]
Rating
Very Low Defect Density
Very High Defect Density
Test Cases
Few test cases
Many test cases
Test case asserts
Asserts that only exercise
"success" behavior of the
product or do not
adequately cover the
functionality of the product
Asserts that exercise
various behaviors of each
requirements
Requirements
Test cases do not relate to
requirements
At least one test case per
requirement
Code coverage
Minimal coverage of
important functions
100% coverage
A further warning in this regard has been advocated by Hoffman [28], who pointed
at the possibility that definitions of TCs, as well as their number and content, might
change during the course of the project, jeopardizing the validity of metrics based on
these TCs.
4.2 TC Use and Generation in Modern Software Development
Not only have TCs been important in traditional software development processes,
they also continue to play an important role in more modern software development
methodologies and techniques.
Similar to the more traditional software development environments, the TC is a
fundamental entity in testing software in the object oriented environment. For exam-
ple, Binder [29] first developed a methodology for TC generation in an object ori-
ented environment, by introducing the 'testing points' concept, a mechanism used to
define test requirements and the relevant TCs. Later in his topic Binder suggested to
define the TC as a method thereby including the test itself as part of the design of the
objects.
Agile software development methods have quite revamped traditional testing con-
cepts, particularly the division between testers and developers [30], since on-going
testing is one of the principles guiding development of very small and frequent soft-
ware iterations common to the agile methodology. Nonetheless, the centrality of the
TC concept has not changed as a result of utilizing these methodologies, although the
test planning method has.
TDD or TDM are software development methods that advocate writing TCs prior
to the actual software development to assure developing software that is testable [31,
32]. Here, the role of the TC is even magnified, yet evidence about the effectiveness
of this method is still mixed [31, 33].
Service oriented architecture (SOA) has introduced new testing challenges [34]
demonstrated for example by the inclusion of a testing mechanism in the SOA infra-
structure delivered by IBM [35]. Especially challenging is testing composed and
complex services that require new testing methods [36], making estimation of testing
scope and effort more difficult. The recent move to SOA has raised the interest in
Search WWH ::




Custom Search