CS 6704 - Advanced Topics in Software Engineering

Automated Testing and Debugging for Emerging Applications.


Course Information

Instructor: Muhammad Ali Gulzar
Office: 2224 Knowledgeworks II Lecture : TR 3:30 PM - 4:45 PM in-person at PAM 3004
Office Hours: MW 2 PM - 3 PM in St# 2224 KWII


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 FPGA based heterogeneous 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 Optional Reading
1 Aug 24 Introduction + Testing Basic Terminology and Program Analysis
Aug 26 Testing Fundamentals Test Adequacy, Coverage, Efficacy
2 Aug 31 Traditional Testing Unit Test Generation Pacheco et al
Sep 2 Automated Testing Symbolic Execution JavaPath Finder
3 Sep 7 Automated Testing Mutation-based Testing FairFuzz
Sep 9 Automated Testing Grammer-based Fuzzing Zest
4 Sep 14 New Testing Techs Metamorphic Segura et al
Sep 16 New Testing Techs Differential Yang et al
5 Sep 21 Test Evolution Regression Rothermal et al
Sep 23 Testing in Emerging Domains Big Data BigTest Database Test Generation , Sedge
6 Sep 28 Testing in Emerging Domains Big Data BigFuzz
Sep 30 Testing in Emerging Domains ML/AI DeepXplore
7 Oct 5 Testing in Emerging Domains ML/AI DeepTest
Oct 7 Testing in Emerging Domains Heterogenous HeteroFuzz
8 Oct 12 Traditional Debugging Delta Debugging Delta Debugging
Oct 14 Traditional Debugging Spectra-based Fault Localization Tarantula
9 Oct 19 Traditional Debugging Program Slicing Head et al
Oct 21 Traditional Debugging Tracing Penumbra
10 Oct 26 Interactive Debugging Whyline Ko et al Whyline, Whyline 09
Oct 28 Interactive Debugging Feedback Debugging Lin et al
11 Nov 2 Automated Debugging Advanced DD HDD
Nov 4 Automated Debugging Slicing/Tracing/Tainting Carbin et al
12 Nov 9 Automated Debugging Debugging via ML DeepFL
Nov 11 Debugging in Emerging Domains Data Titian
13 Nov 16 Debugging in Emerging Domains Big Data BigDebug
Nov 18 Debugging in Emerging Domains BigData BigSift
14 Nov 23 & 25 Thanksgiving Break
15 Nov 30 Debugging in Emerging Domains AI Lamp Mode
Dec 2 Project Presentations
16 Dec 7 Project Presentations


Grading Policy

Course Project
Paper Presentations
Discussions
Quizzes


  • 50% — Course Project: Semester long with a full conference style paper report.
  • 30% — Paper Presentation and Discussions: Frequency is based on class enrollment count
  • 15% — Questions/Discussion/Insights (1 per reading): Submitted via Canvas Discussion feature.
  • 05% — Pop Quizzes (5x 1%)

This course requires familiarity with graduate level software engineering curriculum.


VT’s Syllabus Statement

Virginia Tech is committed to protecting the health and safety of all members of its community. By participating in this class, all students agree to abide by the Virginia Tech Wellness principles and the guidance stated in the Fall 2021 plans. To adhere to these, you must do the following in this class:

  • Wear a mask at all times while in class.
  • Wear a mask during all other activities conducted for the class in public indoor areas.
  • Isolate yourself from campus if you test positive for COVID or begin to feel symptoms that might be related to COVID see.
  • Be respectful of the well-being of others by practicing appropriate personal hygiene and by providing appropriate physical distance when feasible.

Masks may be reusable or homemade cloth masks, dust masks, or surgical masks and should fit close to the face to provide thorough filtration of breathed air. Face shields that are open around the sides do not satisfy this requirement and are currently not accepted as a viable alternative by the university see.

If a student feels that they cannot wear a mask for health concerns and must use an alternative form of face covering such as a face shield, they should contact Services for Students with Disabilities to request an accommodation. No exceptions for masks will be provided unless there is an official accommodation notice provided by SSD to the instructor.

These requirements will not be waived. The instructor has the authority to terminate the class session early if the health and safety requirements are not maintained. Students who fail to follow the requirements will be reported to the Office of Student Conduct.

If a student will miss significant class activities because of the need to self-isolate, then the Dean of Students Office should be contacted for an official absence verification. Prolonged absences may be difficult to make-up. Students should consult with their advisor about possible options if too much course work is missed to feasibly make-up. As pandemic conditions continue to evolve through the semester, these requirements may need to change. The guidance posted by the university at VT Ready should represent the most up-to-date requirements of the university and should be checked periodically for changes.