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. Working knowledge of Java, Git, and GitHub is required (and assumed).
News
-
9/13/2022: Quiz 1.
-
9/8/2022: Homework 0 is assigned.
-
8/25/2022: Reading 1 is assigned.
-
8/21/2022: The website is up!
Assessment
This course involves assigned readings, homework, quizzes, in-class participation, 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 |
Homework |
30% |
- There will be up to six homework assignments.
- Students will have at least one week to complete each homework.
- Homework will require students to work in groups. Rationale: software engineers work in teams and this course offers a chance to practice teamwork.
- Students may self-organize into groups. Students who cannot find groups on their own will be randomly assigned to groups.
- All students in a group will receive the same score on their submission. But, the instructor will take any reported lack of participation into consideration when deciding final course grades.
- Homework must be submitted by the due date. Lateness will be penalized: each additional day of lateness will decrease the grade for that homework by 30%.
|
Readings |
5% |
- Students will be required to read parts of the required textbook or articles on software testing.
- Students will work individually on some readings. Other readings may require students to work in groups.
- Each reading will be accompanied by questions that the students will answer and submit.
- Students will have at least one week to complete each reading and answer the questions.
- Readings will be graded on submission. Failure to submit by the due date will result in zero points for that reading.
|
Quizzes |
15% |
- There will be quizzes in class.
- Quizzes will take place roughly every two to three weeks and will be announced in advance.
- Quizzes will test knowledge of material from the readings and from recent lectures.
|
In-class participation |
5% |
- There will be graded in-class activities.
- In-class participation activities will NOT be announced in advance.
- Students may miss one in-class participation activity without penalty.
|
Prelim 1 |
20% |
|
Prelim 2 or Final Exam |
25% |
|
Tentative Schedule
Date |
Topic |
Notes |
Homework/Reading |
8/23 |
Introduction |
slides, scribbles |
|
8/25 |
Foundations |
slides |
Reading 1 assigned |
8/30 |
Foundations (contd) |
slides |
|
9/1 |
Test Automation Demo |
slides, code |
|
9/6 |
Test Automation Framework |
slides, code |
JUnit 4, JUnit 4 Assert |
9/8 |
Test Automation Framework (contd) |
slides, code |
JUnit 4, JUnit 4 Assert |
9/13 |
Quiz 1, More on Test Automation |
slides, code |
|
9/15 |
Input Space Partitioning (ISP) |
slides |
|
9/20 |
Implementing ISP |
slides |
|
9/22 |
Implementing ISP (2) |
slides |
|
9/27 |
Coverage Criteria and ISP |
slides |
|
9/29 |
Quiz 2 and in-class discussion |
|
|
10/4 |
ISP Wrap-Up |
slides |
|
10/6 |
Prelim 1 |
|
|
10/8 |
No Class: Fall Break |
|
|
10/13 |
Graph-Based Testing |
slides |
|
10/18 |
Loops in Graph-Based Testing |
slides |
|
10/20 |
Loops in Graph-Based Testing (2) |
slides |
|
10/25 |
Graph-Based Coverage and Source Code |
slides |
|
10/27 |
Quiz 3, Logic Coverage |
slides, code |
|
10/31 |
Logic Coverage (2) |
slides |
|
11/3 |
Active Clause Criteria |
slides |
|
11/8 |
Applying Logic Coverage to Source Code |
slides |
|
11/10 |
Mutation Testing |
slides |
|
11/15 |
Prelim 2 |
|
|
11/17 |
Mutation Testing (2) |
slides, notes |
|
11/22 |
Regression Testing |
slides |
|
Course Resources
Course Administration
- We are using Canvas or CMS as course management systems.
- Announcements will be posted on this web page, Canvas, or CMS. Check the news section regularly for updates.
- Send all questions, complaints, and requests to the course email: cs5154-staff@cornell.edu
- We will make our best effort to respond to all messages sent to the course email within 24 hours, including on weekends. Plan ahead: don't leave your questions till just before submissions are due.
Required Textbook
The following textbook is required for this course:
Introduction to Software Testing by Paul Ammann and Jeff Offutt.
Print copies are on reserve in the Olin library.
Digital or print (new or used) copies may also be purchased via the Cornell Bookstore.
Special COVID-19-related information for Fall 22
Everyone is expected to abide by the university public health requirements at all times. See
this page for the latest information.
Other Resources
- Readings may be assigned from free, publicly available articles that will be linked in the schedule section. Do NOT pay for articles that are assigned in this course.
- Homework programming assignments will be in Java. Instructions for installing Java and associated software can be found here.
- If you need to brush up on your Java skills, invest some time in studying the following resources:
- Projects and homework will involve running tests on your code and applying cutting-edge tools on open-source projects. In both cases you will use Maven as a build system. Brief introductions to Maven can be found here and here.
General Resources
Academic Integrity
Students are expected to know and abide by Cornell's policies on academic integrity, including:
Academic integrity violations will be prosecuted aggressively. If you are not sure what constitutes an academic integrity violation, please ask.
Special Needs and Wellness
We provide accommodations for disabilities. Students with disabilities can contact
Student Disability Services at 607-254-4545 or the instructor for a confidential discussion of their individual needs.
If you experience personal or academic stress or need to talk to someone who can help, contact the instructor or: