Loop Analysis and Repair Nafi Diallo Computer Science NJIT Advisor: Dr. Ali Mili.

Slides:



Advertisements
Similar presentations
Omnibus: A clean language and supporting tool for integrating different assertion-based verification techniques Thomas Wilson, Savi Maharaj, Robert G.
Advertisements

BloomUnit Declarative testing for distributed programs Peter Alvaro UC Berkeley.
Verifying Executable Object-Oriented Specifications with Separation Logic Stephan van Staden, Cristiano Calcagno, Bertrand Meyer.
Technology of Test Case Generation Levi Lúcio University of Geneva Marko Samer Vienna University of Technology.
Testing and Quality Assurance
Chair of Software Engineering From Program slicing to Abstract Interpretation Dr. Manuel Oriol.
B. Sharma, S.D. Dhodapkar, S. Ramesh 1 Assertion Checking Environment (ACE) for Formal Verification of C Programs Babita Sharma, S.D.Dhodapkar RCnD, BARC,
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
1 Semantic Description of Programming languages. 2 Static versus Dynamic Semantics n Static Semantics represents legal forms of programs that cannot be.
An Integration of Program Analysis and Automated Theorem Proving Bill J. Ellis & Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
CSE115/ENGR160 Discrete Mathematics 04/12/11 Ming-Hsuan Yang UC Merced 1.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
1 Advanced Material The following slides contain advanced material and are optional.
Chair of Software Engineering Automatic Verification of Computer Programs.
Formal methods Basic concepts. Introduction  Just as models, formal methods is a complement to other specification methods.  Standard is model-based.
1 Detecting Logic Vulnerabilities in E- Commerce Applications Presenter: Liu Yin Slides Adapted from Fangqi Sun Computer Science Department College of.
Testing Processes of Web Applications Susan Cohen.
Query Processing Presented by Aung S. Win.
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
111 Testing Overview CS 4311 Frank Tsui, Orland Karam, and Barbara Bernal, Essential of Software Engineering, 3rd edition, Jones & Bartett Learning. Sections.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
1 Program Correctness CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 3 (Part 3): Mathematical Reasoning, Induction & Recursion  Recursive Algorithms (3.5)  Program Correctness (3.6)
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 4 (Part 3): Mathematical Reasoning, Induction.
FORMAL VERIFICATION OF ADVANCED SYNTHESIS OPTIMIZATIONS Anant Kumar Jain Pradish Mathews Mike Mahar.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
Software Reliability in Nuclear Systems Arsen Papisyan Anthony Gwyn.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
© Andrew IrelandDependable Systems Group Static Analysis and Program Proof Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University.
A Review of Software Testing - P David Coward Reprinted: Information and Software Technology; Vol. 30, No. 3 April 1988 Software Engineering: The Development.
Chapter 3 Part II Describing Syntax and Semantics.
COP4020 Programming Languages Introduction to Axiomatic Semantics Prof. Robert van Engelen.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
National Institute of Science & Technology WIRELESS LAN SECURITY Swagat Sourav [1] Wireless LAN Security Presented By SWAGAT SOURAV Roll # EE
13 Aug 2013 Program Verification. Proofs about Programs Why make you study logic? Why make you do proofs? Because we want to prove properties of programs.
m-Privacy for Collaborative Data Publishing
Properties Incompleteness Evaluation by Functional Verification IEEE TRANSACTIONS ON COMPUTERS, VOL. 56, NO. 4, APRIL
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Plan 1.Introduction a)What is a Program Fault? b)Deterministic/Non-Deterministic Programs 2.A Refinement Calculus 3.Relative Correctness for Non Deterministic.
Loop Invariants and Binary Search Chapter 4.4, 5.1.
Error Explanation with Distance Metrics Authors: Alex Groce, Sagar Chaki, Daniel Kroening, and Ofer Strichman International Journal on Software Tools for.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CS223: Software Engineering Lecture 25: Software Testing.
The interplay of mandatory role and set-comparison constraints Dr. Peter Bollen School of Business and Economics Maastricht University, the Netherlands.
A Review of Software Testing - P. David Coward
SDN Network Updates Minimum updates within a single switch
Chapter 4 (Part 3): Mathematical Reasoning, Induction & Recursion
Testing Tutorial 7.
CACTUS-Clustering Categorical Data Using Summaries
Verification and Testing
Verification and Validation Overview
Formal Methods in Software Engineering 1
P.S.V. Nataraj and Sachin Tharewal Systems & Control Engineering,
Lecture 5 Floyd-Hoare Style Verification
Test Case Purification for Improving Fault Localization
Verification and Validation
Software Verification and Validation
Software Verification and Validation
Software Verification and Validation
CSE 1020:Software Development
Gradual Verification Seamlessly and flexibly combine static and dynamic verification by drawing on the general principles from abstract interpretation.
Presentation transcript:

Loop Analysis and Repair Nafi Diallo Computer Science NJIT Advisor: Dr. Ali Mili

Outline 1. Introduction 2. Progress 3. Prospects 4. Conclusion Introduction Research Progress Proposed work Conclusion Loop Analysis and Repair- RAMICS 20152

Loop Analysis and Repair Loop Analysis – Convergence Termination + Absence of Abort – Correctness/Incorrectness Loop Repair – Diagnose/Remove Faults – Verification Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Definition Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Definition Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Invariant Relation Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Invariant Relations and Invariant Assertions All invariant assertions stem from invariant relations Only a subset of invariant relations can be derived from invariant assertions Invariant Relation Invariant Assertion Inductive Invariant Relation Invariant Assertion Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion R is an invariant relation ν is a vector A is an invariant assertion

Convergence: Integrating Abort freedom with Termination Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Abort-Freedom Invariant Relations Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Termination: Example Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Termination: Example Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Correctness/Incorrectness Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Algorithm for Verifying Loop Correctness 13 S = S and Termination(w) [CumR = L] More-inv- relation(w)? yes R=get-inv-relation(w) Loop w, Space S, Specification spec Necessary(R,spec) ? Correct OR Incorrect OR Undecided INPUT OUTPUT No yes [CumR=CumR∩R] sufficient(CumR,spec) ? yes No Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Relative Correctness Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Relative Correctness Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Impact of Relative Correctness on Testing Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Absolute Correctness and Relative Correctness Loop Analysis and Repair- RAMICS Culminates 1. Introduction 2. Progress 3. Prospects 4. Conclusion

A Formal Definition of fault Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Loop Repair Mutation Testing consists of : – Generating Mutants – Testing Mutants against some sample test data Selecting mutants that pass Rejecting mutants that fail – We argue Selecting mutants that pass is wrong: a mutant may pass the test but still not be more-correct. Rejecting mutants that fail is also wrong: a mutant may fail and still be more-correct. Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Proving Relative Correctness Traditionally: – static verification techniques applicable only to correct programs; – dynamic testing techniques used to expose/ diagnose faults in incorrect programs. Using relative correctness: – We remove a fault from a program, check a set of conditions statically and locally, and conclude that the new program is more-correct than the old, all Without testing (and its attending uncertainties), Without remorse (final determination: no going back to question wisdom of fault removal). Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

A Framework for Monotonic Fault Removal Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Proving Relative Correctness Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Illustration Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion Specification Invariant Relations

Illustration Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion Compute constraints

Deployment FxLoop Analyzer (C++ based) Client-server application Thin client Server(HTTP) has 2 components – CCA compiler – Invariant relation generator using semantic matching Databases of recognizers based on application domain Computing termination condition – Traditional sense – In combination with Abort-freedom Correctness verification Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Analytical Research To further explore the implications and applications of relative correctness, To derive techniques for proving relative correctness by static analysis of the source code. Loop Analysis and Repair- RAMICS Introduction 2. Progress 3. Prospects 4. Conclusion

Thank you! Loop Analysis and Repair- RAMICS