YoVDO

Making Software More Reliable by Uncovering Hidden Dependencies

Offered By: Paul G. Allen School via YouTube

Tags

Software Testing Courses

Course Description

Overview

Explore a comprehensive seminar on improving software reliability through uncovering hidden dependencies. Learn about innovative techniques for accelerating software testing, including VMVM and ElectricTest systems that detect dependencies between tests to reduce testing time. Discover Phosphor, a portable dynamic taint tracking system for the JVM, and Pebbles, a tool for specifying data-related test oracles. Delve into topics such as test suite minimization, regression test selection, isolating side effects, and safe test parallelization. Examine the challenges of dynamic data flow analysis, taint tracking, and their applications in data security testing. Gain insights into dependency analysis for debugging and runtime monitoring of deployed software, presented by Jonathan Bell, Assistant Professor at George Mason University.

Syllabus

Intro
Reliability and Testing • How do developers build reliable software?
Software Engineering & Systems
Program Dependencies Between variables?
Simplified Software Lifecycle
Testing Dominates Build Times
Test Suite Minimization
Regression Test Selection
Test Independence
Controlled Regression Testing Assumption
What should we do with dependent tests?
Isolating Tests
JUnit Test Execution
How do Tests Leak Data? Java is memory-managed, and object oriented We think in terms of object graphs
Isolating Side Effects Class A
Isolating Side Effects Class B
VMVM: Unit Test Virtualization
Performance Evaluation
Relative Overhead
Manifest Test Dependencies
Electric Test - Detecting Data Dependencies in Java • Tracks in-memory dependencies (JUMTI plugin)
Identifying Heap
Identifying External
Safe Test Parallelization
Safe Test Selection
Potential Speedup
Dynamic Data Flow Analysis: Taint Tracking
Phosphor: Instrumentation Strategy
Complications
Phosphor Doubles Stack Size
Non-Modifiable Classes (and Arrays)
Native Code
Macrobenchmarks Phosphor Relative Runtime Overhead (Hotspot 7)
Data Flow Analysis for Data Security Testing
What is an Email on Android?
Intuition: Thin Apps, Thick OS
Pebbles Architecture
Pebbles Applications Bread Crumbs: deletion auditing
Pebbles is Accurate
Dependency Analysis for Debugging and Behavioral Clones
Runtime Monitoring of Deployed Software


Taught by

Paul G. Allen School

Related Courses

Automated Visual Software Analytics
openHPI
JavaScript Testing
Udacity
Desarrollo de Aplicaciones Web: Prueba y Despliegue
University of New Mexico via Coursera
软件工程
Peking University via Coursera
Building R Packages
Johns Hopkins University via Coursera