作者:empty 页数:367 出版社:empty |
This book teaches model-based analysis and model-based testing, important new wayslo write and analyzes of i ware specifications and designs, generate testcases, and checkthe results of test runs.These methods increase the au lo mation in each of these steps,making them more timely, more thorough, and more effective.Using a familiar programming language, testers and analysts will learn to writemodels that de seri be how a program is supposed to be have.The authors work throughseveralrealisticcasestudiesindepthanddetail.usin ga toolkit built on the C#languageand the.NET frame wark.Readers can also apply the methods in analyzing and testingsystems in many other languages and frameworks.Intended for professional software developers, including testers, and for universitystudents, this book is suitable for courses on software engineering, testing, specification,or applications of formal methods.
Jonathan Jacky is a Research Scientist at the University of Washington in Seattle.Heis experienced in embedded control systems, safely-critical systems, signal processing.and scientif c comput ng.He has taught at the Evergreen State College and has been aVisiting Researcher at Microsoft Research, He is the author of The Way of Z:PracticalProgramming with For mial Methods.Margus V eanes is a Researcher in the Foundations of SoftwareEng ince ring(FSE)group at Microsoft Research.His research interests include model-based software de-velopment, validation, and testingColin Campbell has worked on model-based testing and analysis techniques for anumber of years in industry, for companies including Microsoft Research.He is aPrine i pal of the consulting firm Modeled Corn putation LLC in Seattle(www.modeled-computation.com) .His current interests include design analysis, the modeling of reactiveand dist n but ed systems, and the integration of components in large systems.Wolfram Schulte is a Research Area Manager at Microsoft Research, managing theFSE group, the Programming Languages and Methods(PLM) group, and the SoftwareDesign and Implementation(SDI) group.
Preface
Acknowledgments
Overview
Describe, Analyze, Test
1.1Model programs
1.2Model-based analysis
1.3Model-based testing
Model programs in the software process
Syllabus
Model-based analysis reveals the design errors
2WhyWe Need Model-Based Testing
2.1Client and server
2.2Protocol
2.3Sockets
2.4Libraries
2.5Applications
2.6Unit testing
Contents
2.7Some simple scenarios
2.8A more complex scenario
2.9Failures in the field
2.10 Failures explained
2.11 Lessons learned
2.12 Model-based testing reveals the defect
2.13 Exercises
3WhyWe Need Model-Based Analysis
3.1Reactive system
3.2Implementation
3.3Unit testing
3.4Failures in simulation
3.5Design defects
3.6Reviews and inspections, static analysis
3.8Exercises
4 Further Reading
Systems with Finite Models
5 Model Programs
5.1States, actions, and behavior
5.2Case study:userinterface
5.3Preliminary analysis
5.4Coding the model program
Simulation
Casestudy:client/server
Case study:reactive program
Other languages and tools
Exercises
6 Exploring and Analyzing Finite Model
Programs
6.1Finite state machines
6.2Exploration
6.3Analysis
6.4Exercise
10.1“Infinite model programs
10.2 Types for model programs
10.4 Case study:revision control system
10.5 Exercises
11.1Explor able model programs
11.2 Pruning techniques
11.4 Exercises
12.1On-the-fly testing
12.2 Implementation, model and stepper
12.3 Strategies
12.4 Coverage-directed strategies
12.5 Advanced on-the-fly settings
12.6 Exercises
Structuring Model Programs with Features and
Composition
7.1Scenario control
7.2Features
7.3Composition
7.4Choosing among options for scenario control
7.5Composition for analysis
7.6Exercises
8 Testing Closed Systems
8.1Offline test generation
8.2Traces and terms
8.3Test harness
8.4Test execution
Contents
8.5Limitations of offline testing
8.6Exercises
9 Further Reading
III Systems with Complex State
I 0 Modeling Systems with Structured State
10.3 Compound values
Analyzing Systems with Complex State
11.3 Sampling