Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Making Software More Reliable by Uncovering Hidden Dependencies

Paul G. Allen School via YouTube

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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

Reviews

Start your review of Making Software More Reliable by Uncovering Hidden Dependencies

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.