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

Course Project
Paper Presentations + Demos + Paper Review Report
In Class Discussions

  • 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.