Engineering tasks are supposed to achieve defined goals under certain
project constraints. Example goals of software engineering tasks include
achieving a certain functionality together with some level of
reliability or performance. Example constraints of software engineering
tasks include budget and time limitations or experience limitations of
the developers at hand. Planning of an engineering project requires the
selection of techniques, methods and tools suited to achieve stated
goals under given project constraints. This assumes sufficient knowledge
regarding the process-product relationships (or effects) of candidate
techniques, methods and tools. Planning of software projects suffers
greatly from lack of knowledge regarding the process-product
relationships of candidate techniques, methods and tools. Especially in
the area of testing a project planner is confronted with an abundance of
testing techniques, but very little knowledge regarding their effects
under varying project conditions. This book offers a novel approach to
addressing this problem: First, based on a comprehensive initial
characterization scheme (see chapter 7) an overview of existing testing
techniques and their effects under varying conditions is provided to
guide the selection of testing approaches. Second, the optimisation of
this knowledge base is suggested based on experience from experts, real
projects and scientific experiments (chapters 8, 9, and 10). This book
is of equal interest to practitioners, researchers and students.
Practitioners interested in identifying ways to organize their
company-specific knowledge about testing could start with the schema
provided in this book, and optimise it further by applying similar
strategies as offered in chapters 8 and 9.