Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
- ISBN: 9780123725011 | 0123725011
- Cover: Hardcover
- Copyright: 11/27/2006
Testing is vitally important in the software development process, and no new product would ever go to market without serious testing. But with today's technological advances, pressure to market quickly, and stiff competition, standard testing simply doesn't cut it anymore; "old-school" testing methods take too much time and aren't sufficiently reliable. Smart and innovative developers use model-based testing-a breakthrough in software testing that uses state-of-the-art tools to automatically generate tests from a model of the software product.
Mark Utting is a senior lecturer in computer science at the University of Waikato Bruno Legeard is chief technology officer of LEIRIOS Technologies and a professor of software engineering at the University of Franche-Comte
Preface | p. XIII |
About the Authors | p. XIX |
The Challenge | p. 1 |
What Do We Mean by Testing? | p. 3 |
What Is Model-Based Testing? | p. 6 |
A Smart Card Example | p. 10 |
Summary | p. 17 |
Further Reading | p. 17 |
The Pain and the Gain | p. 19 |
Classic Testing Processes | p. 19 |
A Manual Testing Process | p. 20 |
A Capture/Replay Testing Process | p. 22 |
A Script-Based Testing Process | p. 23 |
A Keyword-Driven Automated Testing Process | p. 24 |
Solved and Remaining Problems | p. 25 |
The Model-Based Testing Process | p. 26 |
Models: Build or Borrow? | p. 31 |
Your Maturity Level | p. 33 |
Your Testing Maturity Level | p. 33 |
Your Modeling Maturity Level | p. 34 |
Hypothetical Case: Total Testing Hours | p. 35 |
Assumptions | p. 36 |
Conclusions | p. 38 |
Model-Based Testing Experience Reports | p. 40 |
Model-Based Testing at IBM | p. 40 |
Model-Based Testing at Microsoft | p. 41 |
Model-Based Testing in the Smart Card Industry | p. 43 |
Model-Based Testing in the Automotive Industry | p. 47 |
Benefits of Model-Based Testing | p. 48 |
SUT Fault Detection | p. 48 |
Reduced Testing Cost and Time | p. 49 |
Improved Test Quality | p. 50 |
Requirements Defect Detection | p. 51 |
Traceability | p. 52 |
Requirements Evolution | p. 54 |
Limitations of Model-Based Testing | p. 54 |
Summary | p. 56 |
Further Reading | p. 56 |
A Model of Your System | p. 59 |
How to Model Your System | p. 60 |
Notations for Modeling | p. 62 |
Choosing a Notation | p. 64 |
A Case Study | p. 66 |
DVM Requirements | p. 66 |
DVM High-level Design | p. 66 |
Transition-Based Models | p. 69 |
Finite State Machines | p. 69 |
Overview and History of Statecharts | p. 70 |
UML State Machines | p. 72 |
The UML Object Constraint Language | p. 75 |
Pre/Post Models in B | p. 78 |
The Complete B Method | p. 78 |
A Simple Drink Vending Machine | p. 79 |
Overview of B Machines | p. 82 |
The B Toolkit | p. 85 |
A Richer DVM Model | p. 91 |
Other Pre/Post Notations | p. 98 |
Summary | p. 103 |
Further Reading | p. 104 |
Selecting Your Tests | p. 107 |
Structural Model Coverage | p. 110 |
Control-Flow-Oriented Coverage Criteria | p. 111 |
Data-Flow-Oriented Coverage Criteria | p. 114 |
Transition-Based Coverage Criteria | p. 115 |
UML-Based Coverage Criteria | p. 120 |
Data Coverage Criteria | p. 122 |
Boundary Value Testing | p. 123 |
Statistical Data Coverage | p. 127 |
Pairwise Testing | p. 128 |
Fault-Based Criteria | p. 130 |
Requirements-Based Criteria | p. 131 |
Explicit Test Case Specifications | p. 132 |
Statistical Test Generation Methods | p. 133 |
Combining Test Selection Criteria | p. 133 |
Summary | p. 136 |
Further Reading | p. 136 |
Testing from Finite State Machines | p. 139 |
Testing Qui-Donc with a Simple FSM | p. 140 |
Informal Requirements | p. 140 |
Modeling Qui-Donc with an FSM | p. 141 |
Generating Tests | p. 148 |
Complete Testing Methods | p. 155 |
EFSMs and the ModelJUnit Library | p. 157 |
Extended Finite State Machines | p. 157 |
The ModelJUnit Library | p. 160 |
An EFSM Model of Qui-Donc | p. 162 |
Unit Testing ZLive with EFSMs | p. 167 |
The System under Test: ZLive FlatPred | p. 168 |
A Family of Models | p. 169 |
Encoding FlatPredModel in Java | p. 175 |
Test Results | p. 179 |
Labeled Transition Systems Models | p. 182 |
Summary | p. 183 |
Further Reading | p. 184 |
Testing from Pre/Post Models | p. 187 |
How to Write Pre/Post Models for Testing | p. 188 |
Adding Requirements Tags | p. 191 |
The System Process Scheduler Example | p. 192 |
Functional Requirements | p. 192 |
Modeling the Scheduler | p. 194 |
An Introduction to Test Targets | p. 200 |
Test Selection for the Scheduler | p. 203 |
Understanding the Test Targets | p. 204 |
Test Case Generation Using LTG/B | p. 205 |
Traceability between Requirements and Test Cases | p. 207 |
Generating More Tests | p. 208 |
The Triangle Example | p. 214 |
Informal Specification and Formal Models | p. 214 |
The High-Level Triangle Model | p. 215 |
Test Generation for Compound Decisions | p. 217 |
Evaluation of the Generated Test Suites | p. 227 |
Robustness Testing from a Pre/Post Model | p. 233 |
Syntactic Modeling and Format Testing | p. 234 |
Testing a Chat System with Spec Explorer | p. 237 |
An Overview of Spec Explorer | p. 240 |
The Chat System | p. 242 |
The Spec# Model | p. 242 |
Test Generation with Spec Explorer | p. 245 |
Summary | p. 248 |
Further Reading | p. 250 |
Testing from UML Transition-Based Models | p. 251 |
UML Modeling Notations | p. 252 |
Testing an eTheater with LTG/UML | p. 253 |
Requirements | p. 253 |
Assumptions for the Test Model | p. 257 |
A UML Model of eTheater | p. 257 |
Generating Tests Using LEIRIOS LTG/UML | p. 261 |
Generating Better Test Suites | p. 263 |
Testing a Protocol with Qtronic | p. 266 |
Protocol | p. 267 |
Model | p. 267 |
Importing the Model into Qtronic | p. 277 |
Connecting Qtronic to the SUT | p. 277 |
Generating and Running Tests | p. 279 |
Summary | p. 280 |
Further Reading | p. 281 |
Making Tests Executable | p. 283 |
Principles of Test Adaptation | p. 284 |
The Adaptation Approach | p. 286 |
The Transformation Approach | p. 288 |
Which Approach Is Better? | p. 290 |
Example: The eTheater System | p. 291 |
Transforming Tests into Ruby | p. 295 |
Writing a Ruby Adapter for eTheater | p. 297 |
Executing the eTheater Tests | p. 300 |
Summary | p. 303 |
Further Reading | p. 303 |
The GSM 11.11 Case Study | p. 305 |
Overview of the GSM 11.11 Standard | p. 306 |
Selected Files | p. 307 |
Security Aspects | p. 308 |
Selected Commands | p. 309 |
Modeling GSM 11.11 in B | p. 311 |
Abstracting the Behavior | p. 311 |
The Data Model | p. 312 |
The Operational Model | p. 316 |
Validation and Verification of the B Model | p. 321 |
Validation by Animation | p. 321 |
Model Verification | p. 322 |
Generating Tests with LTG/B | p. 323 |
Model Coverage Criteria and Test Generation Parameters | p. 324 |
Computing Test Targets | p. 324 |
Generating Test Cases | p. 327 |
Generating Executable Scripts | p. 327 |
LTG Test Script Generator | p. 328 |
GSM 11.11 Adaptation Layer | p. 332 |
Test Execution | p. 334 |
Summary | p. 337 |
Further Reading | p. 338 |
The ATM Case Study | p. 339 |
Overview of the ATM System | p. 340 |
Modeling the ATM System in UML | p. 344 |
Class Diagrams | p. 344 |
Modeling Behavior with State Machines and OCL | p. 349 |
Comparing the Design and Test Models | p. 355 |
Generating Test Cases | p. 357 |
Initial State for Test Generation | p. 357 |
Generation of Test Cases | p. 359 |
Discussion | p. 359 |
Generating Executable Test Scripts | p. 364 |
Executing the Tests | p. 365 |
Summary | p. 370 |
Further Reading | p. 370 |
Putting It into Practice | p. 371 |
Prerequisites for Model-Based Testing | p. 371 |
Selecting a Model-Based Testing Approach | p. 373 |
People, Roles, and Training | p. 377 |
Model-Based Testing and Agile Methods | p. 380 |
Test-Driven Development | p. 380 |
Acceptance Tests and the Iterative Process | p. 381 |
Agile Modeling | p. 382 |
Model-Based Testing and the Unified Process | p. 382 |
Introducing the Unified Process | p. 383 |
Extending the Unified Process with Model-Based Testing | p. 384 |
Epilogue | p. 387 |
Model-Based Testing | p. 387 |
Future Trends | p. 388 |
Summary of B Abstract Machine Notation | p. 391 |
Machine Structure | p. 391 |
Logical Predicates (P, Q) | p. 392 |
Numbers (n, m) | p. 392 |
Sets (S, T) | p. 392 |
Relations (r) | p. 393 |
Functions (f) | p. 393 |
Commands and Substitutions (G H, I, J) | p. 393 |
Summary of Common OCL Constructs | p. 397 |
Basic OCL Types | p. 397 |
OCL Collections | p. 398 |
Commercial Tools | p. 401 |
Glossary | p. 405 |
Bibliography | p. 409 |
Index | p. 419 |
Table of Contents provided by Ingram. All Rights Reserved. |
What is included with this book?
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.