VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.

251-1420-00L 6 Credits DS , MSC D-INFK

Software Testing

Lecturers & Examiners: Dr. Alexander Pretschner
VVZ CR n/a

Last Updated: 2026-02-05 15:29:32

Abstract

Testing denotes activities that aim at increasing confidence that actual and intended behaviors of a system conform, or at proving the assumption of conformance wrong. The relevance of testing is reflected in the general experience that it makes for about one half of the overall development cost. We convey fundamental concepts, techniques and assumptions as well as published evidence.

Content

A. Introduction - Relevance - Terminology and fundamental concepts - Testing in the software development process - Kinds of testing - Cost vs. quality B. Requirements-Based and Combinatorial Testing - Cause-Effect Graphs - Category-Partition Method - Combinatorial testing C. White-Box Testing C.1 Testing based on control flow and conditions - Coverage of statements, branches, conditions, and loops - Subsumption - Empirical evidence C.2 Testing based on data flow - Intraprocedural data flows - Interprocedural data flows - Empirical evidence D. Random and Statistical Testing D.1 Random Testing - Analytical comparisons of random and partition-based testing: the models of Weyuker&Jeng and Gutjahr D.2 Statistical Testing - Operational Profiles - Just Right Reliability - Markov models - Reliability growth E. Model-Based Testing - Models and Abstraction - Scenarios - Generation Technology - Cost Effectiveness, assumptions, and empirical evidence F. State-based testing and testing OO software - State-based testing - Testing with inheritance - Testing with polymorphism G. Miscellaneous - Fault injection and mutation testing - Alternative approaches to QA - Test specification languages H. Invited Talk

Resources

Literature

Unfortunately, there is not one single book that covers all the material. The following books cover most parts; more references and links to research papers will be given in class. * G. Myers: The Art of Software Testing, 2nd edition, John Wiley and Sons, 2004 -- one classical book * B. Beizer: Software Testing Techniques, Van Nostrand Reinhold, 1990 -- the other classical book * J. Musa: Software Reliability Engineering: More Reliable Software Faster and Cheaper, 2nd edition, AuthorHouse, 2004 -- discusses stochastic testing in depth * R. Binder: Testing Object Oriented Systems: Models, Patterns and Tools, Addison Wesley, 1999 -- not surprisingly, is the standard reference on OO testing * M. Broy, B. Jonsson, J.-P. Katoen, M. Leucker, A. Pretschner (eds.): Model-Based Testing of Reactive Systems, Springer Lecture Notes in Computer Science 3472, 2005 -- a collection of overview articles in the field of model-based testing * S. McConnell: Code Complete, 2nd edition, Microsoft Press, 2004 -- a classical SW engineering book, from the practitioner's perspective * A. Endres, D. Rombach: A Handbook of Software and Systems Engineering, Pearson Addison Wesley, 2003 -- compiles a lot of empirical studies in different SW engineering disciplines * P. Liggesmeyer: Software-Qualität. Testen, Analysieren und Verifizieren von Software, Spektrum Akademischer Verlag 2002 -- German book, covers many subjects, except for random, statistical, combinatorial, and model-based testing

General Information

Language
English
Levels
DS , MSC
Frequency
Yearly recurring

Examination

Type
session examination
Mode
oral 15 minutes

Course Components

Type Title Time & Place Hours
lecture Software Testing
  • Wed 10:15-12:00 (IFW A 32.1)
2 h weekly
exercise Software Testing
  • Fri 10:15-12:00 (IFW B 42)
2 h weekly

Offered In