|
This book is not a comprehensive survey or comparison of the model-based testing and analysis tools developed at Microsoft Research (or elsewhere). Instead, we focus on selected concepts and techniques that we believe are the most important for beginners in this field to learn, and that make a persuasive (and reasonably short) introduction. We created the NModel library and tools to support this book (and further research).We believe that the simplicity, versatility, and transparency of this technology makes it a good platform for learning the methods and experimenting with their possibilities.
However, this book is also for readers who use other tools, including Spec Explorer, which is also from Microsoft Research and is also in active development. Other tools support many of the same methods we describe here, and some that we do not discuss. This book complements the other tools' documentation by explaining the concepts and methods common to all, by providing case studies with thorough explanations, and by showing one way (of many possible ways) that a modeling and testing framework can support the techniques that we have selected to teach here.This book is a self-contained introduction to modeling, specifications, analysis, and testing. Readers need not have any previous exposure to these topics. Readers should have some familiarity with an object-oriented programming language such as Java, C++, or C#, as could be gained in a year of introductory computer science courses. Student readers need not have taken courses on data structures and algorithms, computing theory, programming language semantics, or software engineering. This book touches on those topics, but provides self-contained explanations. It also explains the C# language features that it uses that are not found in other popular languages, such as attributes and events. Although this book is accessible to students, it will also be informative to experienced professionals and researchers. It applies some familiar ideas in novel ways, and describes new techniques that are not yet widely used, such as on-the-fly testing and model composition. When used with the NModel framework, C# can express the same kind of statebased models as many formal specification languages, including Alloy, ASMs, B, Promela, TLA, Unity, VDM, and Z, and also some diagramming notations, including Statecharts and the state diagrams of UML. Exploration is similar to the analysis performed by model checkers such as Spin and SMV. We have experience with several of these notations and tools, and we believe that modeling and analysis do not have to be esoteric topics. We find that expressing the models in a familiar programming language brings them within reach of most people involved in the technical aspects of software production. We also find that focusing on testing as one of the main purposes of modeling provides motivation, direction, and a practical emphasis that developers and testers appreciate. This ebook is divided into four parts. The end of each part is an exit point; a reader who stops there will have understanding and tools for modeling, analysis, and testing up to that level of complexity. Presentation is sequential through Part III, each chapter and part is a prerequisite for all the following chapters and parts. Chapters in Part IV are independent; readers can read one, some, or all in any order. This book provides numerous practical examples, case studies, and exercises and contains an extensive bibliography, including citations to relevant research papersand reports. Download free ebook for c#: Cambridge Press Model-Based Software Testing and Analysis with C#
|
Free programing ebooks
This book is not a comprehensive survey or comparison of the model-based testing and analysis tools developed at Microsoft Research (or elsewhere). Instead, we focus on selected concepts and techniques that we believe are the most important for beginners in this field to learn, and that make a persuasive (and reasonably short) introduction. We created the NModel library and tools to support this book (and further research).We believe that the simplicity, versatility, and transparency of this technology makes it a good platform for learning the methods and experimenting with their possibilities.
However, this book is also for readers who use other tools, including Spec Explorer, which is also from Microsoft Research and is also in active development. Other tools support many of the same methods we describe here, and some that we do not discuss. This book complements the other tools' documentation by explaining the concepts and methods common to all, by providing case studies with thorough explanations, and by showing one way (of many possible ways) that a modeling and testing framework can support the techniques that we have selected to teach here.