Spring 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. Experience with Java will be helpful for programming assignments.
This course is in Beta. CS 5154 is a brand new course. Everything might change. Nothing is certain.
5/9/2021: Project Phase 2 is assigned.
5/3/2021: Homework 4 is assigned.
4/13/2021: Homework 3 is assigned.
4/6/2021: Project Phase 1 assigned.
3/22/2021: Homework 2 is assigned on CMS.
3/17/2021: Spring 0.2 is assigned on CMS.
3/8/2021: Homework 1 is assigned on CMS.
3/1/2021: Sprint 0.1 is assigned on CMS.
2/8/2021: Homework 0 is assigned on CMS.
2/4/2021: Ed Discussions for the class is set up.
2/4/2021: The website is up!
This course involves occasional homework and a semester-long project. The homework offers a chance for students to reinforce understanding of material from class. Homework may include written components, programming exercises, or assigned readings. The project has small student groups testing a 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 | 50% |
|
Course Project | 40% |
| Class participation and other subjective factors | 10% | Demonstrated engagement with the material is the defining characteristic for this element of your final grade. Lecture attendance offers one obvious opportunity, so attend and participate by asking questions. Extra-credit assignments may be offered from time to time as well. |
Date | Topic | Notes | Homework/Reading |
---|---|---|---|
2/8 | Introduction |
slides | Homework 0 is assigned |
2/10 | Testing Concepts |
slides | |
2/15 | Testing Concepts (contd), Test Automation |
slides-1, slides-2 | |
2/17 | Test Automation (contd) |
slides, code | |
2/22 | Criteria-Based Test Design |
slides | |
2/24 | Hands-on Demo: Maven |
slides, code | |
3/1 | Input Space Partitioning |
slides (ISP), slides (project) | Sprint 0.1 is assigned, Optional reading on ISP |
3/3 | In-class Exercise on ISP |
slides | |
3/8 | In-class Exercise on ISP (contd) |
slides | Homework 1 is assigned |
3/15 | Graph-based Coverage Criteria |
slides | |
3/17 | Applying Graph-based Coverage Criteria |
slides | Sprint 0.2 is assigned |
3/22 | Applying Graph-based Coverage Criteria (contd) |
slides | Homework 2 is assigned |
3/24 | Logic Coverage |
slides | |
3/29 | Applying Logic Coverage |
slides | |
3/31 | Syntax-based Testing |
slides | |
4/5 | Mutation Testing |
slides | |
4/7 | Mutation Testing (contd) |
slides, code | Project Phase 1 assigned on 4/6 |
4/12 | Project Clinic |
||
4/14 | Automatic Test Generation |
slides | Homework 3 assigned on 4/13 |
4/19 | Automatic Test Generation (contd) |
slides, code | Optional Reading |
4/21 | Flaky Tests (Guest Lecture by August Shi) |
slides | Optional Reading |
4/28 | Introduction to Runtime Verification |
slides | |
5/3 | Introduction to Runtime Verification (contd) |
slides | |
5/5 | Regression Test Selection |
slides | |
5/10 | Test Suite Reduction, Test Case Prioritization |
slides | |
5/12 | Bug Adocacy |
slides | Optional Reading |