Fall 2021
Software testing is widely used for detecting flaws in software. Systematic and organized approaches to testing will be discussed, including test adequacy criteria, manual and automatic generation of test inputs, regression testing, debugging, and at least one dynamic analysis for detecting known classes of errors. Students will learn how to design and automate the execution of high-quality software tests. Students will also learn how to generate test suites that meet coverage and other adequacy criteria.
Prerequisites. Graduate standing (Ph.D, MS, or MEng) in CS, or CS majors who have taken CS 3110 or CS 4120, or permission of instructor required. Knowlegde of Java, Git, and GitHub is required (and assumed).
11/11/2021: Quiz 3.
11/4/2021: Homework 3 is assigned.
10/28/2021: Homework 2 is assigned.
10/19/2021: Prelim.
10/5/2021: Reading 3 is assigned.
9/30/2021: Quiz 2.
9/28/2021: Homework 1 is assigned.
9/21/2021: Reading 2 is assigned.
9/16/2021: Quiz 1.
9/7/2021: Homework 0 is assigned.
8/31/2021: Reading 1 is assigned.
8/25/2021: The website is up!
This course involves assigned readings, homework, quizzes, in-class labs, a prelim, and a final exam. Homework may include written components or programming exercises. Homework will be completed in small student groups. Also, homework may involve testing non-trivial open-source software and applying techniques and tools learned in class to that software.
Final course grades will be based on the following.
Activity | Grade | Details |
---|---|---|
Homeworks | 35% |
|
Readings | 10% |
|
Quizzes | 10% |
|
Labs | 5% |
|
Prelim | 20% |
|
Final Exam | 20% |
|
Date | Topic | Notes | Assignments/Resources |
---|---|---|---|
8/26 | Introduction |
slides, scribbles | |
8/31 | Foundations |
slides, scribbles | Reading 1 assigned |
9/2 | Foundations (contd), Test Automation Demo |
slides, code | JUnit 4, JUnit 4 Assert |
9/7 | Test Automation Framework |
slides, code | Homework 0 assigned |
9/9 | In-class Lab |
||
9/14 | Lab Review |
||
9/16 | Intro to Input Space Partitioning (ISP) |
slides | Quiz 1 |
9/21 | Implementing Input Space Partitioning |
slides | Reading 2 assigned |
9/23 | Coverage Criteria and ISP |
slides | |
9/28 | Coverage Criteria and ISP (2) |
slides, scribbles, code | Homework 1 assigned |
9/30 | Graph-Based Testing |
slides | Quiz 2 |
10/5 | Graph-Based Testing (2) |
slides, scribbles | |
10/7 | Loops in Graph-Based Testing |
slides, scribbles | |
10/14 | Graph-Based Coverage and Source Code |
slides, scribbles | |
10/19 | Prelim Review |
Prelim | |
10/21 | Logic Coverage |
slides | |
10/26 | Logic Coverage (2) |
slides | |
10/28 | Active Clause Coverage Criteria |
slides, scribbles | Homework 2 assigned |
11/1 | Applying Logic Coverage to Source Code |
slides | |
11/4 | Mutation Testing |
slides | Homework 3 assigned |
11/9 | Mutation Testing Demo |
slides, notes | |
11/11 | Mutation Testing Wrap-up |
slides, notes | Quiz 3 |
11/16 | Guided Random Test Generation |
slides | |
11/18 | Randooop Demo |
slides, code | Homework 4 assigned |
11/23 | Regression Testing |
slides | |
11/30 | Regression Test Selection |
slides | |
12/2 | Regression Test Selection (2) |
slides | Quiz 4 |
12/7 | Wrapping up |