Skip to content
Register Sign in Wishlist

Introduction to Software Testing

2nd Edition


  • Date Published: December 2016
  • availability: In stock
  • format: Hardback
  • isbn: 9781107172012

£ 49.99

Add to cart Add to wishlist

Other available formats:

Request inspection copy

Lecturers may request a copy of this title for inspection

Product filter button
About the Authors
  • 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.

    • Includes five chapters on the foundations of software testing to provide students with a strong background in the subject
    • Separates the theory from its application during software development for each family of coverage criteria, making it easier for students to grasp the underlying concepts
    • Presents the JUnit test framework for both ordinary tests and advanced JUnit features, demonstrating the rationale for different ways of writing tests
    Read more

    Reviews & endorsements

    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

    '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

    '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

    '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

    '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 more reviews

    Customer reviews

    Not yet reviewed

    Be the first to review

    Review was not posted due to profanity


    , create a review

    (If you're not , sign out)

    Please enter the right captcha value
    Please enter a star rating.
    Your review must be a minimum of 12 words.

    How do you rate this item?


    Product details

    • Edition: 2nd Edition
    • Date Published: December 2016
    • format: Hardback
    • isbn: 9781107172012
    • length: 364 pages
    • dimensions: 260 x 184 x 50 mm
    • weight: 0.95kg
    • contains: 79 b/w illus.
    • availability: In stock
  • Table of Contents

    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.

  • Resources for

    Introduction to Software Testing

    Paul Ammann, Jeff Offutt

    Find resources associated with this title

    Type Name Unlocked * Format Size

    Showing of

    Back to top

    This title is supported by one or more locked resources. Access to locked resources is granted exclusively by Cambridge University Press to lecturers whose faculty status has been verified. To gain access to locked resources, lecturers should sign in to or register for a Cambridge user account.

    Please use locked resources responsibly and exercise your professional discretion when choosing how you share these materials with your students. Other lecturers may wish to use locked resources for assessment purposes and their usefulness is undermined when the source files (for example, solution manuals or test banks) are shared online or via social networks.

    Supplementary resources are subject to copyright. Lecturers are permitted to view, print or download these resources for use in their teaching, but may not change them or use them for commercial gain.

    If you are having problems accessing these resources please contact

  • Authors

    Paul Ammann, George Mason University, Virginia
    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, George Mason University, Virginia
    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.

Sign In

Please sign in to access your account


Not already registered? Create an account now. ×

Sorry, this resource is locked

Please register or sign in to request access. If you are having problems accessing these resources please email

Register Sign in
Please note that this file is password protected. You will be asked to input your password on the next screen.

» Proceed

You are now leaving the Cambridge University Press website. Your eBook purchase and download will be completed by our partner Please see the permission section of the catalogue page for details of the print & copy limits on our eBooks.

Continue ×

Continue ×

Continue ×

Find content that relates to you

Join us online

This site uses cookies to improve your experience. Read more Close

Are you sure you want to delete your account?

This cannot be undone.


Thank you for your feedback which will help us improve our service.

If you requested a response, we will make sure to get back to you shortly.

Please fill in the required fields in your feedback submission.