Lecture sylabus PV260

Week 2 - Basic Principles of Testing. Requirements and test cases. Test plans and risk analysis. (B. Rossi)

Lecturer: Bruno Rossi, FI MU
Activity sheet: enter your lecture activity  

Abstract of the lecture: In this lecture we will discuss software testing from the point of view of principles that should be taken into account when defining tests. After some terminology, we will look at a way that can be useful to evaluate the quality of test: Mutation Testing. We will then look at requirements and test cases, and how to deal with test plans, testing risk analysis and acceptance testing.

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
  • Evaluating the Quality of Software Tests
    • Mutation Testing
  • From Requirements to Test Cases
    • characteristics of requirements & test cases
    • functional vs structural testing
    • steps: from specifications to test cases
  • Software Testing Risk Analysis
    • what is risk-based testing
    • ISO/IEC/IEEE 29119 & Test Plans
    • Acceptance Testing

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