E-Book, Englisch, 260 Seiten, eBook
Bärisch Domain-Specific Model-Driven Testing
2010
ISBN: 978-3-8348-9624-7
Verlag: Vieweg & Teubner
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 260 Seiten, eBook
Reihe: Software Engineering Research
ISBN: 978-3-8348-9624-7
Verlag: Vieweg & Teubner
Format: PDF
Kopierschutz: 1 - PDF Watermark
Stefan Baerisch applies a combination of feature modelling and code generation, for which he uses a model-driven approach, in order to facilitate the design of tests by non-programmers. This combination of modelling and code generation allows for a more integrated and more efficient testing process.
Dr.-Ing. Stefan Baerisch completed his doctoral thesis at the Department of Software Engineering at the Christian Albrechts University, Kiel. He works as a consultant in Oldenburg.
Zielgruppe
Research
Autoren/Hrsg.
Weitere Infos & Material
1;Foreword;6
2;Acknowledgements;7
3;Abstract;8
4;Contents;10
5;1 Testing of Software;13
5.1;1.1 Testing and Software Quality;13
5.2;1.2 Acceptance Testing;24
5.3;1.3 Quality of Test Automation;25
5.4;1.4 Chapter Summary;27
6;2 Use of Models in Software Engineering;29
6.1;2.1 Roles and Properties of Models;30
6.2;2.2 Model-Driven Software Development;33
6.3;2.3 Model-Driven Testing;36
6.4;2.4 Chapter Summary;38
7;3 System Families and Variability;40
7.1;3.1 Variability in Software Engineering;41
7.2;3.2 Feature Modeling;45
7.3;3.3 Testing of System Families;49
7.4;3.4 Chapter Summary;51
8;4 Information Retrieval and Digital;52
8.1;4.1 Information Retrieval;52
8.2;4.2 Digital Libraries;61
8.3;4.3 Chapter Summary;66
9;5 The MTCC Approach;67
9.1;5.1 The MTCC Process;67
9.2;5.2 Overview of the MTCC Models;81
9.3;5.3 Chapter Summary;84
10;6 Models for System and Test Representation;86
10.1;6.1 Models for the Behavior of a Testee;87
10.2;6.2 Feature Models for System and Test Representation;93
10.3;6.3 Composition of the Application Test Model;103
10.4;6.4 Chapter Summary;105
11;7 Application of MTCC Models;107
11.1;7.1 Representation of Test Steps in the Editor;108
11.2;7.2 Configuration of Test Models;118
11.3;7.3 Reuse of Tests;124
11.4;7.4 Test Execution Based on Test Configuration Instances;130
11.5;7.5 Chapter Summary;135
12;8 Application of MTCC to the Digital;136
12.1;8.1 A System Family of Digital Libraries;136
12.2;8.2 Test-Relevant Services and Test Steps;143
12.3;8.3 Generic Services;146
12.4;8.4 Domain-Specific Services;148
12.5;8.5 Chapter Summary;155
13;9 Validation Goals and Design;157
13.1;9.1 Validation in Software Engineering;157
13.2;9.2 Goals and Questions of the MTCC Validation;163
13.3;9.3 GQM Application for MTCC;165
13.4;9.4 Chapter Summary;179
14;10 Results of the Validation;181
14.1;10.1 Participants in the MTCC Validation;181
14.2;10.2 The Prototype of the MTCC Editor;181
14.3;10.3 Considered Systems;185
14.4;10.4 Capability to Represent Tests;185
14.5;10.5 Validation of the Executability;187
14.6;10.6 Validation of Reusability;191
14.7;10.7 Interpretation of the Validation;197
14.8;10.8 Chapter Summary;202
15;11 RelatedWork;204
15.1;11.1 Testing Based on Usage Scenarios;204
15.2;11.2 Modeling of Tests;208
15.3;11.3 Abstract Representation of User-Interfaces;210
15.4;11.4 Testing of System Families;211
15.5;11.5 Involvement of Domain Experts in Software Development;214
15.6;11.6 Novelty of MTCC;216
15.7;11.7 Chapter Summary;217
16;12 Summary and Contributions;218
16.1;12.1 Summary;218
16.2;12.2 Contributions;220
17;13 Outlook and Conclusion;222
17.1;13.1 FutureWork;222
17.2;13.2 Concluding Remarks;223
18;A Test Sets;225
18.1;Test Set TS1;225
18.2;Test Set TS2;225
18.3;Test Set TS3a;226
18.4;Test Set TS3b;227
18.5;Test Set TS4a;227
18.6;Test Set TS4b;228
18.7;Test Set TS5;228
19;Bibliography;230
Testing of Software.- Use of Models in Software Engineering.- System Families and Variability.- Information Retrieval and Digital Libraries.- The MTCC Approach.- Models for System and Test Representation.- Application of MTCC Models.- Application of MTCC to the Digital Library Domain.- Validation Goals and Design.- Results of the Validation.- Related Work.- Summary and Contributions.- Outlook and Conclusion.
1 Testing of Software (p. 1)
Testing is defined as the execution of a system with the purpose of finding faults in the system. It encompasses a wide range of different approaches with different goals and motivations. In this chapter, we discuss both the role of testing for software quality and the role of MTCC in the field of testing.
We start with an examination of the role of testing in Section 1.1. In order to be more efficient and effective, often, various parts of the testing process are automated. The extent, to which testing is automated, varies with different approaches, but the execution of tests implemented as test scripts and the recording of test results form the core of test automation. Section 1.1.3 examined the goals of test automation and the challenges that must be met to establish an automated testing regime. Acceptance tests involve domain experts in system testing.
Section 1.2 motivates the involvement of domain experts into the testing process and discusses acceptance tests and their automation. The quality of a test is defined by its ability to find faults. Tests must therefore be based on the requirements as defined by the domain experts for a system and must be able the assess a testee based on this requirements.
Section 1.3 discusses the meaning of quality for tests and test software and applies the quality attributes of software engineering to test software.
1.1 Testing and Software
Quality Testing is a method of quality assurance that verifies the behavior of a system against a set of requirements that are expressed as tests. The notion of quality and its relation to the requirements of a system, the specifications that represent these requirements and the needs of the users of a system are central to testing.
If quality is defined as the capability of a system to fulfill the requirements of its users or customers [JG88], the question must be considered how these requirements can be captured and formalized as tests. One source of requirements are domain experts. Domain experts are customers or users of a system who are familiar with the functions that the systems needs to fulfill and who are often experienced in the use of similar systems.
The direct and continuous involvement of domain expert in the software development process as a methodology belongs to the group of agile approaches to software development [BA04] but is considered as part of other approaches to software development as well [Eva04].
One method to make the knowledge of domain experts available for the software development process is the definition of acceptance tests. In acceptance tests, domain experts either test a system themselves or specify the functionality to be tested and the conditions for the success of a test in a format that is either suitable for execution by a human tester or for execution by an automated testing system. One purpose of test automation is to allow the execution of tests without human involvement. Automation is desirable both for economic reasons and to allow for greater effectiveness in testing.
1.1.1 Software Quality
Juran [JG88] defines quality as fitness for use. This definition raises a number of questions: fitness for what use? What constitutes fitness? How can it be determined, if and to what degree a system is fit to be used? In order to evaluate the fitness of a system, some sort of specification is needed.
A specification is a document that describes the requirements for a system. The quality of a system can also be defined as the degree to which its implementation complies with its specification. The specification must therefore reflect the requirements for a system. Functional as well as non-functional quality attributes are relevant to software systems. Software engineering defines a number of methods that serve the purpose of creating a high-quality products or evaluating its quality.
1.1.1.1 Different Notions of Quality
Two questions have to be addressed in the discussion of quality assurance.