CS 6704 - Special Topics in Software Engineering
Automated Testing and Debugging for Emerging Applications.
Course Information
Instructor: Muhammad Ali Gulzar
Office: 4106 Gilbert Place
Lecture : MW 4:00 PM - 5:15 PM in McBryde Hall 329
Office Hours: Mondays 1:00 PM - 2:00 PM in 4106 Gilbert Place.
Course Description
The type of software we write today has dramatically changed in the last decade, from sequential Java applications to data-intensive applications integrated with ML/AI components. The prevalence of these emerging applications was mainly because of platforms such as Apache Spark, TensorFlow, and SparkML, which have almost removed the development and deployment barrier. However, frameworks once used by domain experts are now being leveraged by data scientists, business analysts, and researchers. This shift in user demographics calls for immediate advancements in developing, debugging, and testing practices for emerging applications. This class will discuss several aspects of these emerging applications’ and the corresponding advances made by the software testing and debugging research community. By the end of the seminar, students will be well-versed in:
- Emerging Applications: Big Data, ML/AI Apps in TensorFlow, and Databases-backed Applications
- Program analysis
- Current state-of-the-art in debugging, fault-isolation, and explanation
- Advanced methods for Testing and Debugging traditional softwares
- Recent advancements in testing and debugging research for emerging applications
- Performance debugging and optimization
Course Schedule
Week | Lecture | Topic | Description | Reading | Milestones | Optional Reading |
---|---|---|---|---|---|---|
1 | Aug 21 | Introduction + Testing Basic | Why Testing? Terminology, Program Analysis | |||
Aug 23 | Testing Fundamentals | Test Adequacy, Coverage, Efficacy | ||||
2 | Aug 28 | Traditional Testing | Unit Test Generation | Pacheco et al | ||
Aug 30 | Automated Testing | Symbolic Execution | JavaPath Finder | |||
3 | Sep 4 | Labor Day |
||||
Sep 6 | Automated Testing | Mutation-based Testing | FairFuzz | Project Ideas Released | ||
Sep 11 | No Class : Automated Software Engineering (ASE '23) |
|||||
Sep 13 | No Class : Automated Software Engineering (ASE '23) |
|||||
5 | Sep 18 | Automated Testing | Grammar-based Fuzzing | Zest | Finalize Course Project Topic | |
Sep 20 | New Testing Techs | Metamorphic | Segura et al | Submit Project Proposals | ||
6 | Sep 25 | New Testing Techs | Differential | Yang et al | ||
Sep 27 | Test Evolution | Regression | Gligoric et al | |||
7 | Oct 2 | Testing in Emerging Domains | Big Data | BigTest | Sedge | |
Oct 4 | Testing in Emerging Domains | Database Testing | Rigger et al | |||
8 | Oct 9 | Testing in Emerging Domains | ML/AI | DeepXplore | ||
Oct 11 | Testing in Emerging Domains | ML/AI | DeepTest | |||
9 | Oct 16 | Traditional Debugging | Delta Debugging | Delta Debugging | ||
Oct 18 | Traditional Debugging | Spectra-based Fault Localization | Tarantula | |||
10 | Oct 23 | Traditional Debugging | Program Slicing | Head et al | Midpoint Project Meetings | |
Oct 25 | Traditional Debugging | Tracing | Penumbra | |||
Oct 30 | No Class: : Dagstuhl Seminar on DBMS Testing |
|||||
Nov 1 | No Class: : Dagstuhl Seminar on DBMS Testing |
|||||
12 | Nov 6 | Interactive Debugging | Feedback Debugging | Lin et al | Veriolite | |
Nov 8 | Automated Debugging | Mutation-based Debugging | Li at al | |||
13 | Nov 13 | Automated Debugging | Slicing/Tracing/Tainting | Carbin et al | ||
Nov 15 | Automated Debugging | Debugging via ML | DeepFL | |||
Nov 20 | Thanksgiving Break |
|||||
Nov 22 | Thanksgiving Break |
|||||
15 | Nov 27 | Debugging in Emerging Domains | Data | Titian | OptDebug | |
Nov 29 | Debugging in Emerging Domains | AI | Lamp | Mode | ||
16 | Dec 4 | Project Presentations | ||||
Dec 6 | Project Presentations |
Grading Policy
- 60% — Course Project: Semester long with a full conference style paper report.
- 25% — Paper Presentation + Demo + Paper Review Report: Frequency is based on class enrollment count
- 10% — In-class discussions
- 05% — Pop Quizzes (5x 1%)
This course requires familiarity with graduate-level software engineering curricula. This is a project-intensive course. The final project grade will be assessed according to standard reviewing practices in tier-1 SE workshops, e.g., MSR, ICPC, and CAIN.
Accommodation statement
Virginia Tech welcomes students with disabilities into the University’s educational programs. The University promotes efforts to provide equal access and a culture of inclusion without altering the essential elements of coursework. If you anticipate or experience academic barriers that may be due to disability, including but not limited to ADHD, chronic or temporary medical conditions, deaf or hard of hearing, learning disability, mental health, or vision impairment, please contact the Services for Students with Disabilities (SSD) office (540-231-3788, ssd@vt.edu, or visit www.ssd.vt.eduLinks to an external site.). If you have an SSD accommodation letter, please meet with me privately during office hours as early in the semester as possible to deliver your letter and discuss your accommodations. You must give me a reasonable notice to implement your accommodations, especially for a waiver to participate in class.