Contract-driven data structure repair : a novel approach for error recovery

Software systems are now pervasive throughout our world. The reliability of these systems is an urgent necessity. A large degree of research effort on increasing software reliability is dedicated to requirements, architecture, design, implementation and testing---activities that are performed before...

Full description

Bibliographic Details
Main Author: Nokhbeh Zaeem, Razieh
Format: Others
Language:en
Published: 2014
Subjects:
Online Access:http://hdl.handle.net/2152/24967
id ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-24967
record_format oai_dc
spelling ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-249672015-09-20T17:23:48ZContract-driven data structure repair : a novel approach for error recoveryNokhbeh Zaeem, RaziehData structureRepairError recoveryRepair historyRepair abstractionAlloyDynamic programmingTest input generationContractsSoftware systems are now pervasive throughout our world. The reliability of these systems is an urgent necessity. A large degree of research effort on increasing software reliability is dedicated to requirements, architecture, design, implementation and testing---activities that are performed before system deployment. While such approaches have become substantially more advanced, software remains buggy and failures remain expensive. We take a radically different approach to reliability from previous approaches, namely contract-driven data structure repair for runtime error recovery, where erroneous executions of deployed software are corrected on-the-fly using rich behavioral contracts. Our key insight is to transform the software contract---which gives a high level description of the expected behavior---to an efficient implementation which repairs the erroneous data structures in the program state upon an error. To improve efficiency, scalability, and effectiveness of repair, in addition to rich behavioral contracts, we leverage the current erroneous state, dynamic behavior of the program, as well as repair history and abstraction. A core technical problem our approach to repair addresses is construction of structurally complex data that satisfy desired properties. We present a novel structure generation technique based on dynamic programming---a classic optimization approach---to utilize the recursive nature of the structures. We use our technique for constraint-based testing. It provides better scalability than previous work. We applied it to test widely-used web browsers and found some known and unknown bugs. Our use of dynamic programming in structure generation opens a new future direction to tackle the scalability problem of data structure repair. This research advances our ability to develop correct programs. For programs that already have contracts, error recovery using our approach can come at a low cost. The same contracts can be used for systematically testing code before deployment using existing as well as our new techniques. Thus, we enable a novel unification of software verification and error recovery.text2014-07-02T18:04:10Z2014-052014-06-25May 20142014-07-02T18:04:10ZThesisapplication/pdfhttp://hdl.handle.net/2152/24967en
collection NDLTD
language en
format Others
sources NDLTD
topic Data structure
Repair
Error recovery
Repair history
Repair abstraction
Alloy
Dynamic programming
Test input generation
Contracts
spellingShingle Data structure
Repair
Error recovery
Repair history
Repair abstraction
Alloy
Dynamic programming
Test input generation
Contracts
Nokhbeh Zaeem, Razieh
Contract-driven data structure repair : a novel approach for error recovery
description Software systems are now pervasive throughout our world. The reliability of these systems is an urgent necessity. A large degree of research effort on increasing software reliability is dedicated to requirements, architecture, design, implementation and testing---activities that are performed before system deployment. While such approaches have become substantially more advanced, software remains buggy and failures remain expensive. We take a radically different approach to reliability from previous approaches, namely contract-driven data structure repair for runtime error recovery, where erroneous executions of deployed software are corrected on-the-fly using rich behavioral contracts. Our key insight is to transform the software contract---which gives a high level description of the expected behavior---to an efficient implementation which repairs the erroneous data structures in the program state upon an error. To improve efficiency, scalability, and effectiveness of repair, in addition to rich behavioral contracts, we leverage the current erroneous state, dynamic behavior of the program, as well as repair history and abstraction. A core technical problem our approach to repair addresses is construction of structurally complex data that satisfy desired properties. We present a novel structure generation technique based on dynamic programming---a classic optimization approach---to utilize the recursive nature of the structures. We use our technique for constraint-based testing. It provides better scalability than previous work. We applied it to test widely-used web browsers and found some known and unknown bugs. Our use of dynamic programming in structure generation opens a new future direction to tackle the scalability problem of data structure repair. This research advances our ability to develop correct programs. For programs that already have contracts, error recovery using our approach can come at a low cost. The same contracts can be used for systematically testing code before deployment using existing as well as our new techniques. Thus, we enable a novel unification of software verification and error recovery. === text
author Nokhbeh Zaeem, Razieh
author_facet Nokhbeh Zaeem, Razieh
author_sort Nokhbeh Zaeem, Razieh
title Contract-driven data structure repair : a novel approach for error recovery
title_short Contract-driven data structure repair : a novel approach for error recovery
title_full Contract-driven data structure repair : a novel approach for error recovery
title_fullStr Contract-driven data structure repair : a novel approach for error recovery
title_full_unstemmed Contract-driven data structure repair : a novel approach for error recovery
title_sort contract-driven data structure repair : a novel approach for error recovery
publishDate 2014
url http://hdl.handle.net/2152/24967
work_keys_str_mv AT nokhbehzaeemrazieh contractdrivendatastructurerepairanovelapproachforerrorrecovery
_version_ 1716823822778236928