Close Notification

Your cart does not contain any items



Not in-store but you can order this
How long will it take?


Cambridge University Press
13 December 2016
This extensively classroom-tested text takes an innovative approach to explaining software testing that defines it as the process of applying a few precise, general-purpose criteria to a structure or model of the software. The book incorporates cutting-edge developments, including techniques to test modern types of software such as OO, web applications, and embedded software. This revised second edition significantly expands coverage of the basics, thoroughly discussing test automaton frameworks, and it adds new, improved examples and numerous exercises. The theory of coverage criteria is carefully and cleanly explained to help students understand concepts before delving into practical applications, while extensive use of the JUnit test framework gives students practical experience in a test framework popular in the industry. Exercises, meanwhile, feature specifically tailored tools that allow students to check their own work. The book's website also offers an instructor's manual, PowerPoint slides, testing tools for students, and example software programs in Java.
By:   Paul Ammann (George Mason University Virginia), Jeff Offutt (George Mason University, Virginia)
Imprint:   Cambridge University Press
Country of Publication:   United Kingdom
Edition:   2nd Revised edition
Dimensions:   Height: 260mm,  Width: 184mm,  Spine: 50mm
Weight:   950g
ISBN:   9781107172012
ISBN 10:   1107172012
Pages:   364
Publication Date:   13 December 2016
Audience:   College/higher education ,  Professional and scholarly ,  Primary ,  Undergraduate
Format:   Hardback
Publisher's Status:   Active
Preface; Part I. Foundations: 1. Why do we test software?; 2. Model-driven test design; 3. Test automation; 4. Putting testing first; 5. Criteria-based test design; Part II. Coverage Criteria: 6. Input space partitioning; 7. Graph coverage; 8. Logic coverage; 9. Syntax-based testing; Part III. Testing in Practice: 10. Managing the test process; 11. Writing test plans; 12. Test implementation; 13. Regression testing for evolving software; 14. Writing effective test oracles; List of criteria.

Paul Ammann is Associate Professor of Software Engineering at George Mason University, Virginia, where he earned the Volgenau School of Engineering's Outstanding Teaching Award in 2007. He also led the development of the Applied Computer Science degree, and has served as Director of the MS Software Engineering program. He has taught courses in software testing, applied object-oriented theory, formal methods for software engineering, web software, and distributed software engineering. Ammann has published more than eighty papers in software engineering, with an emphasis on software testing, security, dependability, and software engineering education. Jeff Offutt is Professor of Software Engineering at George Mason University, Virginia, where he leads the MS in Software Engineering program, teaches software engineering courses at all levels, and has developed new courses on several software engineering subjects. He was awarded the George Mason University Teaching Excellence Award, Teaching with Technology, in 2013. Offutt has published more than 165 papers in areas such as model-based testing, criteria-based testing, test automaton, empirical software engineering, and software maintenance. He is Editor-in-Chief of the Journal of Software Testing, Verification and Reliability, helped found the IEEE International Conference on Software Testing, and is the founder of the Java project.

Reviews for Introduction to Software Testing

Review of the first edition: 'I think this is a great testing book, both from academic and industrial perspectives. I believe Ammann and Offutt's book will become the testing textbook of choice. There are a lot of testing books out there, some better than others. Most are narrow in the topics they cover and the level of detail they present. In stark contrast, Ammann and Offutt's book has the advantage of presenting concepts and techniques that cover the broad range of languages and platforms used in practice by industry and academia. Theirs is one of the most thorough and practical testing books ever published.' Roger Alexander, Washington State University Review of the first edition: '... well written, logically organized, and provides excellent examples as well as useful course materials (such as homework assignments and quizzes) ... greatly facilitates the teaching and learning process. I plan to ... use the Ammann and Offutt text [again] ... students ... complimented the book in their student evaluations (a very rare occurrence) ... [it] provides an excellent high level as well as detailed presentation of topics that are often difficult for students to master, such as control flow graph coverage, data flow graph coverage (including all-defs, all-uses, all-du-paths criteria), graph coverage for use cases, logic coverage (predicate coverage, clause coverage) [and] syntax-based testing ... In particular, the logic coverage chapter took very complex concepts and made them understandable for the students. Also, the examples that appear in the book are very useful and are highly representative of what our students run into after they graduate and land jobs as developers and/or testers.' Jane Hayes, University of Kentucky Review of the first edition: 'This software testing textbook creatively uses only four models to capture current software testing techniques helping students, researchers, and practitioners to deeply grasp these techniques from an abstract, systematic perspective. The textbook provides excellent balance between theory and practice!' Tao Xie, North Carolina State University Review of the first edition: 'This is a great book for learning software testing. The clear terminology definitions and comprehensive examples provide an easy way to master the software testing techniques ... for people who work in or [are] prepar[ing] to enter the software testing field, this book is definitely what you need in your hand.' Ling Liu, ETH Zurich Review of the first edition: 'Where has this book been all these years? [It] reminds me why I wanted to study software testing in graduate school: testing touches on all the interesting theoretical/engineering models/representations for software.' Arthur Reyes, University of Texas, Arlington Review of the first edition: 'These two leading researchers provide an excellent exposition of the recent advancement of software testing in a manner that is suitable for classroom use. Theoretical concepts are covered rigorously and in practical contexts allowing students to build a solid foundation while being well-connected to the real applications. The abundant examples and exercises make both teaching and learning a more tangible task. In addition to classroom use, the balanced coverage of theory and application also makes the book a valuable addition to the practitioner's bookshelf.' Jeff Lei, University of Texas, Arlington Review of the first edition: 'The authors logically break down the discussion into four key coverage criteria: graph-based, logic-based, syntax-based, and partition-based testing. They provide a solid theoretical presentation of software testing and test coverage criteria ... A concise but brief introduction to software testing.' R. S. Stansbury, Choice Advance praise: 'My favorite text book on software testing just became even better! I particularly like the new chapters on model-driven testing, JUnit, test plans and test oracles. As before it covers testing concepts and techniques that are important for students and practitioners alike. The new edition is still compact, the writing insightful and easily understandable. A must for any software engineering library.' Anneliese Amschler Andrews, University of Denver Advance praise: 'Software testing is one of the most important activities currently undertaken by our species, underpinning international security, social interaction, healthcare, transport, and economic well-being. No economic sector nor human activity remains untouched by software testing, yet it remains poorly understood, inefficient and often insufficiently effective, thereby requiring textbooks just such as this. This is an excellent introduction to software testing, covering principles, foundations, techniques and test management. It will be an invaluable book for practitioners, students and researchers alike. The authors, Paul Amman and Jeff Offutt, are both highly accomplished authors, and outstanding internationally-leading scholars, who have significantly advanced the field of software testing themselves, and are, therefore, well-placed to provide an introduction to this is critical field of science and engineering.' Mark Harman, Head of Software Systems Engineering, University College London Advance praise: 'This book manages to capture - in a concise, clear, and precise form - the most important concepts pertaining to software testing. This is the best introduction to the topic that is available, as it includes many theoretical and practical insights that will provide the readers with a solid foundation in the subject matter.' Lionel Briand, University of Luxembourg Advance praise: 'This software testing textbook creatively uses only four models to capture current software testing techniques helping students, researchers, and practitioners to deeply grasp these techniques from an abstract, systematic perspective. The textbook provides excellent balance between theory and practice! The 2nd edition includes valuable new contents to allow readers to learn these software testing techniques in common settings in industrial practices.' Tao Xie, University of Illinois, Urbana-Champaign

See Also