Lecture slides can be downloaded from the Resources page. The order or delivery date of lectures on this page may change during the semester.
Recordings of the lectures will be available through LMS although personal attendance at lectures and workshops is recommended. Please note that recordings sometimes fail.
Note that materials presented during class sessions do not define the whole unit. Attending class sessions and reviewing the material covered comprises about one-third of the effort required for this unit. The remainder of your time should be spent reading the recommended reading, and attempting exercises and assignment tasks.
The schedule below gives recommended readings for each topic: either chapters from the recommended texts, or extracts. Your understanding of the lecture and workshop material will be greatly enhanced if you work through these readings prior to attending. References to “Ammann & Offutt” are to Ammann, P., & Offutt, J., Introduction to software testing, 2nd edn (Cambridge University Press, 2016). References to “Pressman” are to Pressman, R.S., & Maxim, B.R., Software engineering: A practitioner’s approach, 8th edn (McGraw-Hill, 2015), but earlier and later editions should have equivalent sections. The readings may be added to or modified as the semester progresses.
The UWA library has copies of all the recommended textbooks (some online). You can access the library's holdings of the recommended texts via the Unit Readings site here.
Extracts referred to are likewise available via the Unit Readings site, here.
Week |
Lecture Tue 2-4pm CSSE Rm 1.24 |
Workshop Wed 10-11am CSSE Rm 2.01 |
Reading | Assessment |
---|---|---|---|---|
1
24 Feb |
Unit info, testing and QA concepts | No workshop | - Amman & Offutt, ch 1 - Pressman, ch 8 (“Understanding Requirements”), ch 19 (“Quality concepts”) - Bruegge and Dutoit, Object-Oriented Software Engineering Using UML, Patterns, and Java (3rd edn), ch 11 “Testing” (extract available here) |
|
2
2 Mar |
Introduction to testing | Introduction to testing | - Pressman, ch 14 (“Component-level design”), ch 22 (“Software Testing Strategies”), ch 28 (“Formal modeling and verification”) - Horstmann, Object-Oriented Design and Patterns (2nd edn), ch 3 “Guidelines for Class Design” (extract available here) - Barnes and Kölling, Objects First With Java: A Practical Introduction Using BlueJ (5th edn), ch 7 “Well-behaved objects” (extract available here) |
|
3
9 Mar |
Test automation | Test case selection | - Amman & Offutt, ch 3 - Pressman, ch 23 (“Testing conventional applications”) |
Workshop exercise 1 |
4
16 Mar |
Input space partitioning Graph testing |
PROSH – no workshop scheduled | - Amman & Offutt, chs 6-7 - Pressman, ch 23 (“Testing conventional applications”) |
|
5
23 Mar |
Logic testing Mutation testing Property-based testing |
Graph-based testing | - Amman & Offutt, chs 8-9 - Beginner’s Guide to Fuzzing - Hypothesis Quick Start Guide - QuickTheories README |
|
6
30 Mar |
Quality assurance, software reviews, performance testing | Property-based testing and mutation testing | - Pressman, ch 20 (“Review techniques”), ch 22 (“Software testing strategies”) | Workshop exercise 2 |
6 Apr |
no class – non-teaching week | |||
13 Apr |
no class – study break | |||
7
20 Apr |
Systems and standards, risk management | Software reviews | - Amman & Offutt, chs 10-12 - Pressman ch 19 (“Quality concepts”), ch 21 (“Software quality assurance”) |
|
8
27 Apr |
Risk management, software metrics | Systems and standards | - Pressman, ch 30 (“product metrics”), ch 32 (“process and project metrics”), ch 35 (“Risk management”) | |
9
4 May |
Formal methods & program verification | Risk management and QA strategies | - Pressman, ch 28 (“Formal modeling and verification”) | Workshop exercise 3 |
10
11 May |
Formal specifications | Simple specifications | - Dafny language tutorial | |
11
18 May |
Specifications in Alloy | Specifications in Alloy | - Alloy Analyzer tutorial | |
12
25 May |
revision | no workshop | Project due |