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