Download presentation
Presentation is loading. Please wait.
Published byRobert Wiggins Modified over 8 years ago
1
Ongoing projects in the Program Analysis Group Marcelo d’Amorim Informatics Center, Federal University of Pernambuco (UFPE) Belo Horizonte, MG-Brazil, UFMG, 2010
2
Our approach is to explore best of each verification technique. Our goal is to find errors in software as opposed to prove their correctness. http://pan.cin.ufpe.br
3
Student members Elton is a first year MS student interested in automated debugging * MS=Master Student, URI=Undergraduate Research Initiation.
4
Student members Mateus Borges and Matheus Souza are URI students interested in constraint solving for automated testing * MS=Master Student, URI=Undergraduate Research Initiation.
5
Active projects Improved precision for lightweight debugging Elton Alves (MS) Improved solving of complex constraints Mateus Borges and Matheus Souza (URI) Other projects…
6
Goal of this talk is to present our areas of interest and approach
7
Improved precision for lightweight debugging People involved: Elton Alves (UFPE) Milos Gligoric, and Vilas Jagananth (University of Illinois)
8
Context and Problem Context Debugging is important. Manual debugging is time-consuming. Lightweight debugging (LD) has been proposed to complement precise but more expensive automated debuggers (e.g., DD) Problem Lightweight debugging can be rather imprecise Precision measured with number of statements the user needs to inspect.
9
Quick outlook: TARANTULA* Identify which statements contribute more to failures These statements appear relatively more in failing runs than in passing * J. Jones et al. Empirical Evaluation of test information to assist fault localization. ICSE 2002.
10
Quick outlook: TARANTULA Identify which statements contribute more to failures These statements appear relatively more in failing runs than in passing Precision of debugging measured with the position of * in this rank
11
Observation Two approaches to improve precision of LD Use evolution information Discard statements covered but unrelated to bug Filter changed code (lossy)
12
Observation Two approaches to improve precision of LD Use evolution information Discard statements covered but unrelated to bug Dynamic slice the code (sound) Filter changed code (lossy)
13
Quick outlook: Dynamic Slicing* Identify which statements influence the evaluation of variables at specific points * Agrawal and Horgan. Dynamic Progam Slicing. PLDI 1990. class Foo { int x,y,z;.. void method bar() { if (x > y) { y = 20; z = 10; } @Test void test() { Foo foo = new Foo(10,5); foo.bar(); assert(foo.z > 10); } class Foo {.. void method bar() { if (x > y) { y = 20; z = 10; }
14
Proposal Change-aware forward slicing computation A statement is related if it appears in the slice. It is relevant if it is related and depends on changed code. Number of lines Approach: Modify Forward Dynamic Slicing A set is relevant only if it depends on a modified location Set union can ignore irrelevant sets! covered (baseline) > related > relevant
15
Improved solving of complex constraints People involved: Mateus Borges and Matheus Souza (UFPE) Corina Pasareanu (NASA/CMU)
16
Context and Problem Context Symbolic execution (SE) Problem Execution engine foo($x) Solver foo(10) foo(0) foo(int x) { x = x + 1; if (x > 10) { // PC: $x + 1 > 10 } else { // PC: $x + 1 <= 10 } PC: $x + 1 > 10 PC: $x + 1 <= 10
17
Context and Problem Context Symbolic execution (SE) Problem Execution engine foo($x) Solver foo(?) foo(double x) { x = x + 1; if (x > Math.pow(Math.sin(x),2)){ // PC: $x + 1>($x + 1)^2 } else { // PC: $x + 1<=($x + 1)^2 } PC: $x + 1 > sin($x + 1)^2 PC: $x + 1 <= sin($x + 1)^2
18
Context and Problem Context Symbolic execution (SE) Problem Inability to deal with complex constraints! Execution engine foo($x) Solver foo(?) foo(double x) { x = x + 1; if (x > Math.pow(Math.sin(x),2)){ // PC: $x + 1>($x + 1)^2 } else { // PC: $x + 1<=($x + 1)^2 } PC: $x + 1 > sin($x + 1)^2 PC: $x + 1 <= sin($x + 1)^2 constraints are non-linear and use mathematical functions!
19
Proposal Use heuristic search to find solutions to path constraints Path constraint: AND [b1,…, bn] Fitness function: weighted sum of clause scores Score measures distance to satisfaction. Range is 0.0..1.0. Status Particle Swarm Optimization search performed best Compared CORAL with CVC3, Choco, and Yices Two case studies from NASA Integrated with NASA’s Symbolic PathFinder
20
Future Projects Improved Delta Execution for Analysis of Variation Improved Maintenance of Product Line Models
21
New Recife ~1.5 million people ~77F (25C) avg. temp. Intl. airport with flights to major cities Old Recife
22
Informatics Center (CIn) on Federal University of Pernambuco (UFPE) http://pan.cin.ufpe.br
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.