Lecture sylabus PV260

Week 3 - Basic Principles of Testing. Testing Techniques. Test cases and risk analysis. (B. Rossi)

Lecturer: Bruno Rossi, FI MU
Activity sheet: enter your lecture activity here (till 14:30 the same day)

Abstract of the lecture: In this lecture we will discuss software testing from several points of views: firstly, the principles that should be taken into account when defining tests. After some terminology, we will look at several testing levels and techniques that can be applied. We will then see a way that can be useful to evaluate the quality of test: Mutation Testing. At the end, we will look at the suggestion from the software testing standards to include risk analysis in the testing process.

Content

  • Introduction
    • reminder about software testing and terminology
  • Basic principles of testing
    • Sensitivity: better to fail every time than sometimes
    • Redundancy: making intentions explicit
    • Restrictions: making the problem easier
    • Partition: divide and conquer
    • Visibility: making information accessible
    • Feedback: applying lessons from experience in process and techniques
  • Testing Levels
    • characteristics of requirements & test cases
    • functional vs structural testing
    • steps: from specifications to test cases
  • Evaluating the Quality of Software Tests
    • Mutation Testing
  • Software Testing Risk Analysis
    • what is risk-based testing
    • ISO/IEC/IEEE 29119 & Test Plans

Lecture Material


From the Sli.do session:


Useful Links:

  • http://ix.cs.uoregon.edu/~michal/book/ - additional slides from M. Pezzè and M. Young, Software Testing And Analysis: Process, Principles And Techniques. Hoboken, N.J.: John Wiley & Sons Inc, 2007. (in particular chapters 10,11,14,15,21 could be interesting for parts that were not covered during lecture);
  • http://www.whyprogramsfail.com/slides.php - slides about fault-based testing
  • https://www.fuzzingbook.org/ - The Fuzzing Book Tools and Techniques for Generating Software Tests
  • https://arxiv.org/pdf/2102.11378.pdf - Practical Mutation Testing at Scale (experience from Google)
  • http://softwaretestingstandard.org - ISO/IEC/IEEE 29119 Software Testing Standard
  • http://pitest.org - PiTest, Mutation Testing in Java
  • http://fitnesse.org - Fitnesse, framework for acceptance testing