Building modern software systems needs not only programming skills but also engineering skills. Software development including requirement analysis, design, implementation, and testing shall be all carried out within a software engineering discipline. By the increasing presence of software in the everyday life, building a correct software system is getting more and more critical.
In this course we focus on testing software. The course is based on the text book: Introduction to Software Testing by Paul Ammann and Jeff Offutt.
It is explained that how we can design better tests based on coverage criteria. Graph coverage, logic coverage, and input space partitioning are covered in the course. We will not cover the syntax-based testing. In some discussions, we will use other references to get deeper in the subject and also introduce modeling languages, like Petri Nets.
Note: the course is NOT about test-driven development.
Note that the schedule maybe change during the semester, and if so, will be announced.
| L1 | 10.01 | Introduction to the course, Test book, chapter 1 Introduction |
| L2 | 12.01 | Intro (continued) |
| W1 | 13.01 | — |
Practical work/assignment: prepare the Background Report and a short talk (Due 19.01) + 1.1 ex. 2, 1.2. ex. 3 (Due 19.01)
| L3 | 17.01 | chapter 2 Graph Testing 2.1 overview, 2.2 graph coverage criteria: 2.2.1 structural coverage criteria |
| L4 | 19.01 | 2.2.2 data flow criteria, 2.2.3 subsumption relations |
| W2 | 20.01 | Student presentations – Solving the exercises of Chapter 1 |
Practical work/assignment: Test assignments 2.2.1 (Due 02.02)
| L5 | 24.01 | 2.3 graph coverage for source code (2.3.1 structural, 2.3.2 dataflow) |
| L6 | 26.01 | 2.4 graph coverage for design elements |
| W3 | 27.01 | Student presentations |
Practical work/assignment: 2.2.3 2.3 2.4 (Due 09.02)
| L7 | 31.01 | 2.5 Graph Coverage for Specifications |
| L8 | 02.02 | Extra on Graph Coverage for Specifications: Petri Nets |
| W4 | 03.02 | [Quiz 1, on 2.2.1] Solving exercises of 2.2.1 |
Practical work/assignment: 2.5 (Due 16.02)
| L9 | 07.02 | More on Petri Nets |
| L10 | 09.02 | 2.6 Graph Coverage for Use Cases – starting chapter 3 Logic Coverage |
| W5 | 10.02 | [Quiz 2, on 2.3] - solving exercises 2.2.3 2.3 2.4 |
Practical work/assignment: 2.6 - Petri Nets exercise (Due 23.02)
| L11 | 14.02 | Introducing a tool – by Arni |
| L12 | 16.02 | Chapter 3 Logic Coverage: 3.1 overview: logic predicates and clauses 3.2 logic expression coverage criteria |
| W6 | 17.02 | Solving exercises 2.5 |
Practical work/assignment: 3.1 (Due 02.03)
| L13 | 21.02 | Question/answer, preparing for the exam Chapter 3 (continued) |
| L14 | 23.02 | 3.2 (continued) |
| W7 | 24.02 | Solving exercises 2.6, Petri Nets |
Practical work/assignment: 3.2 part 1 3.2 part 2 (Due 09.03)
| L15 | 28.02 | Midterm Exam |
| L16 | 02.03 | 3.2 (continued) , 3.5 |
| W8 | 03.03 | solve Midterm questions |
Practical work/assignment: 3.5 (Due 16.03)
| L17 | 07.03 | chapter 4 Input Space Partitioning |
| L18 | 09.03 | 4 (continued) |
| W9 | 10.03 | [Quiz 3, on 2.4–2.5, 3] - solving exercises 3.1, 3.2 |
Practical work/assignment: 4 (Due 22.03)
| L19 | 14.03 | chapter 6 Practical Considerations |
| L20 | 16.03 | 6(continued) |
| W10 | 17.03 | [Quiz 4, on 4] - solving exercises 3.5 |
Practical work/assignment: TBA
| L21 | 21.03 | Advanced Topics (TBA) |
| L22 | 23.03 | TBA |
| W11 | 24.03 | Solving exercise 4 |
Practical work/assignment: TBA
| L23 | 28.03 | TBA |
| W12 | 30.04 | TBA |
| L24 | 31.04 | TBA |
In the second and third week of the course
Prepare a short text (1–5 pages) and a 10 minutes presentation explaining:
May be changed during the semester, and if so, will be announced.
| 1.1 | 2 | %1 |
| 1.2 | 3 | %1 |
| 2.2.1 | 4,5,6,7 | %2 |
| 2.2.3 | 1 Graphs II, IV | %2 |
| 2.3 | 1, 4, 7 | %2 |
| 2.4 | 3 | %1 |
| 2.5 | 1, 2 | %1 + (%1) |
| 2.6 | 1 | %1 |
| 3.2 | 1, 5, 9, 10 | %2 |
| 3.5 | 3 | %1 |
| 4.1 | 1, 2 | %1 |
| 4.2 | 4, 5 | %1 |