Sumario
Alcance del curso sobre Técnicas avanzadas para Testing Automatizado, dictado por el Dr Marcelo Frias en la RIO 2013.
Testing Automatizado, Curso
La RIO 2013 se desarrollará del 18 al 23 de Febrero de 2013, y estará compuesta por diversos cursos intensivos, uno de ellos será el correspondiente a “Técnicas Avanzadas para Testing Automatizado”.
Los cursos constan de 5 clases de 2,5 horas de duración, dictados de Lunes a Viernes. Los exámenes son opcionales(*) y son tomados durante la mañana del Sábado.
Será dado por el Dr. Marcelo Frias – Instituto Tecnológico de Buenos Aires (ITBA).
Desde el site se puede bajar un archivo comprimido que contiene los siguientes archivos:
Feedback-directed Random Test Generation
MuJava : An Automated Class Mutation System
Korat: Automated Testing Based on Java Predicates
Advanced Concepts: Parameterized
Tight Bounds + Incremental SAT = Better Test
Model Checking Programs
Bounded Lazy Initialization
TACO: Efficient SAT-Based Bounded Verification Using Symmetry Breaking and Tight Bounds
Les dejo a continuación, el contenido de la tabla de contenidos de cada uno de estos archivos,
Feedback-directed Random Test Generation
1.Introduction
2.Technique
2.1. Method Sequences
2.2. Extending sequences
2.3. Feedback-directed generation
2.4. Filtering
2.5. Repetition
3. Evaluation
3.1. Generating test inputs for containers
3.2. Checking API contracts
3.2.1. Feedback-directed random generation
3.2.2. Systematic Testing
3.2.3. Undirected Random Testing
4. Related Work
5. Conclusion
MuJava : An Automated Class Mutation System
1. Introduction
1.1. Mutation Execution Speed
2. Mutation Testing for OO Programs
2.1. Class Mutation Operators
2.2. Mutation Tools for OO Testing
2.3. Bytecode Translation
3. Overview of a Java OO Mutation System
3.1. Generating and Running Behavioral Mutants
3.2. Generating and Running Structural Mutants
3.3. The MuJava Tool
4. Experimental Performance Evaluation
4.1. Experimental Subjects and Numbers of Mutants
4.2. Experimental Procedure
4.3. Experimental Results
5. Related Work in Performance of Mutation
6. Conclusions and Future Work
Korat: Automated Testing Based on Java Predicates
1. Introduction
2. Examples
3. Test Case Generation
4. Testing Methods
5. Experimental Results
6. Related Work
7. Conclusions
Advanced Concepts: Parameterized
Unit Testing with Microsoft Pex
Understanding Whitebox Software Testing
Analysis Techniques
Specification Techniques
The Testing Problem
Whitebox Test Input Generation
Symbolic Execution
Dynamic Symbolic Execution
Example: How Pex Handles Program 1
Understanding Pex
Why Dynamic Symbolic Execution
Exercise 1: The Path Condition
Monitoring by Instrumentation
Symbolic State Representation
Exercise 2: Heap Constraints
Search Strategy
Exercise 3: Search Frontiers
Constraint Solving
Exercise 4: Constraint Solving
Implicit Branches
Exercise 5: Implicit Branches
Understanding Assumptions, Assertions, and Test-Case Failures
Assumptions and Assertions
When Does a Test Case Fail?
When Does Pex Emit a Test Case?
Exercise 6: Test Case Emission Filters
When Does Pex Stop?
How Does Pex Suggest Fixes for Errors?
Understanding Complex Objects, Explorables, Invariants, and Limitations
Complex Objects
Explorables
Invariants
Limitations
Resources and References
Tight Bounds + Incremental SAT = Better Test Generation under Rich Contracts
1. Introduction
2. Tight Bounds for improved SAT-Solving
3. Test Data Generation using incremental SAT-Solving
4. Incremental Test Input Generation For Black-box Criteria
5. Incremental Test Input Generation For White-Box Criteria
6. Evaluation
7. Related Work
Model Checking Programs
1. Introduction
2. Why Analyze Code?
3. Model Checking Java Programs
4. Integration with BANDERA
5. Related Work
6. Applications of JPF Tools
7. Conclusions and Future Work
Bounded Lazy Initialization
1. Introduction
2. Tight Field Bounds and Program Analysis
3. Lazy Initialization
4. Bounded Lazy Initialization
5. Evaluation
6. Related Work
7. Conclusions and Future Work
TACO: Efficient SAT-Based Bounded Verification Using Symmetry Breaking and Tight Bounds
1. Introduction
2. Translating JML to ALLOY
3. A new Predicate for Symmetry Breaking
4. Computing Tight Bounds
5. Experimental Results
6. Related Work
7. Conclusions and Further Work