Learning outcomes

At the end of this course, students will be able to:

  • Diagnose the quality of a software and its tests;
  • Define and write a test suite that satisfies a given set of coverage criteria;
  • Establish an action plan to improve the quality of a software based on a given diagnosis.

Content

The course aims to introduce the different aspects of a software verification and validation. In particular, it covers the various aspects of code review (software inspection and code review, metrics, code smells and antipatterns, etc.), as well as the fundamentals of software testing (unit testing, integration testing, coverage criteria, implementation in a development process).

Assessment method

The evaluation consists of an exam during which the student is put in context and must carry out a quality diagnosis, establish an action plan to improve quality and design a test suite to detect a series of faults for a given application.

Sources, references and any support material

  • Tian, Jeff. Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement. Wiley-IEEE Computer Society Press, 2005.
  • Ammann, Paul, and Jeff Offutt. Introduction to software testing. Cambridge University Press, 2016.
  • Beecher, Karl. Bad Programming Practices 101: Become a Better Coder by Learning How (Not) to Program. Apress, 2018.
  • Aniche, Mauricio. Effective Software Testing: A Developer's Guide. Manning, 2022.

Language of instruction

Anglais