Dynamically fighting bugs : prevention, detection and elimination

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009.

Bibliographic Details
Main Author: Artzi, Shay
Other Authors: Michael D. Ernst.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2010
Subjects:
Online Access:http://hdl.handle.net/1721.1/53190
_version_ 1826190806319366144
author Artzi, Shay
author2 Michael D. Ernst.
author_facet Michael D. Ernst.
Artzi, Shay
author_sort Artzi, Shay
collection MIT
description Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009.
first_indexed 2024-09-23T08:45:58Z
format Thesis
id mit-1721.1/53190
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T08:45:58Z
publishDate 2010
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/531902019-04-10T07:23:35Z Dynamically fighting bugs : prevention, detection and elimination Artzi, Shay Michael D. Ernst. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009. Cataloged from PDF version of thesis. Includes bibliographical references (p. 147-160). This dissertation presents three test-generation techniques that are used to improve software quality. Each of our techniques targets bugs that are found by different stake-holders: developers, testers, and maintainers. We implemented and evaluated our techniques on real code. We present the design of each tool and conduct experimental evaluation of the tools with available alternatives. Developers need to prevent regression errors when they create new functionality. This dissertation presents a technique that helps developers prevent regression errors in object-oriented programs by automatically generating unit-level regression tests. Our technique generates regressions tests by using models created dynamically from example executions. In our evaluation, our technique created effective regression tests, and achieved good coverage even for programs with constrained APIs. Testers need to detect bugs in programs. This dissertation presents a technique that helps testers detect and localize bugs in web applications. Our technique automatically creates tests that expose failures by combining dynamic test generation with explicit state model checking. In our evaluation, our technique discovered hundreds of faults in real applications. Maintainers have to reproduce failing executions in order to eliminate bugs found in deployed programs. This dissertation presents a technique that helps maintainers eliminate bugs by generating tests that reproduce failing executions. Our technique automatically generates tests that reproduce the failed executions by monitoring methods and storing optimized states of method arguments. (cont.) In our evaluation, our technique reproduced failures with low overhead in real programs Analyses need to avoid unnecessary computations in order to scale. This dissertation presents a technique that helps our other techniques to scale by inferring the mutability classification of arguments. Our technique classifies mutability by combining both static analyses and a novel dynamic mutability analysis. In our evaluation, our technique efficiently and correctly classified most of the arguments for programs with more than hundred thousand lines of code. by Shay Artzi. Ph.D. 2010-03-25T15:12:32Z 2010-03-25T15:12:32Z 2009 2009 Thesis http://hdl.handle.net/1721.1/53190 525292171 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 160 p. application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Artzi, Shay
Dynamically fighting bugs : prevention, detection and elimination
title Dynamically fighting bugs : prevention, detection and elimination
title_full Dynamically fighting bugs : prevention, detection and elimination
title_fullStr Dynamically fighting bugs : prevention, detection and elimination
title_full_unstemmed Dynamically fighting bugs : prevention, detection and elimination
title_short Dynamically fighting bugs : prevention, detection and elimination
title_sort dynamically fighting bugs prevention detection and elimination
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/53190
work_keys_str_mv AT artzishay dynamicallyfightingbugspreventiondetectionandelimination