
At a Glance
456 Pages
24.13 x 19.68 x 3.18
Hardcover
RRP $127.95
$119.99
or 4 interest-free payments of $30.00 with
 orÂShips in 5 to 7 business days
Practical Model-Based Testing gives a practical introduction to model-based testing, showing how to write models for testing purposes and how to use model-based testing tools to generate test suites. It is aimed at testers and software developers who wish to use model-based testing, rather than at tool-developers or academics.
The book focuses on the mainstream practice of functional black-box testing and covers different styles of models, especially transition-based models (UML state machines) and pre/post models (UML/OCL specifications and B notation). The steps of applying model-based testing are demonstrated on examples and case studies from a variety of software domains, including embedded software and information systems.
From this book you will learn:
- The basic principles and terminology of model-based testing
- How model-based testing differs from other testing processes
- How model-based testing fits into typical software lifecycles such as agile methods and the Unified Process
- The benefits and limitations of model-based testing, its cost effectiveness and how it can reduce time-to-market
- A step-by-step process for applying model-based testing
- How to write good models for model-based testing
- How to use a variety of test selection criteria to control the tests that are generated from your models
- How model-based testing can connect to existing automated test execution platforms such as Mercury Test Director, Java JUnit, and proprietary test execution environments
- Presents the basic principles and terminology of model-based testing
- Shows how model-based testing fits into the software lifecycle, its cost-effectiveness, and how it can reduce time to market
- Offers guidance on how to use different kinds of modeling techniques, useful test generation strategies, how to apply model-based testing techniques to real applications using case studies
Industry Reviews
| 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. |
ISBN: 9780123725011
ISBN-10: 0123725011
Published: 27th November 2006
Format: Hardcover
Language: English
Number of Pages: 456
Audience: Professional and Scholarly
Publisher: Morgan Kaufmann Publishing
Country of Publication: US
Dimensions (cm): 24.13 x 19.68 x 3.18
Weight (kg): 1.1
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Deciphering Data Architectures
Choosing Between a Modern Data Warehouse, Data Fabric, Data Lakehouse, and Data Mesh
Paperback
RRP $152.00
$73.75
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
- Non-FictionComputing & I.T.Graphical & Digital Media Applications3D Graphics & Modelling
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentObject-Oriented Programming or OOP
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages























