Tracking down software bugs using automatic anomaly detection
This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DI...
Saved in:
Published in | Proceedings - International Conference on Software Engineering pp. 291 - 301 |
---|---|
Main Authors | , |
Format | Conference Proceeding Journal Article |
Language | English |
Published |
New York, NY, USA
ACM
01.01.2002
|
Series | ACM Conferences |
Subjects | |
Online Access | Get full text |
ISBN | 158113472X 9781581134728 |
ISSN | 0270-5257 |
DOI | 10.1145/581339.581377 |
Cover
Abstract | This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DIDUCE hypothesizes the strictest invariants at the beginning, and gradually relaxes the hypothesis as violations are detected to allow for new behavior. The violations reported help users to catch software bugs as soon as they occur. They also give programmers new visibility into the behavior of the programs such as identifying rare corner cases in the program logic or even locating hidden errors that corrupt the program's results.We implemented the DIDUCE system for Java programs and applied it to four programs of significant size and complexity. DIDUCE succeeded in identifying the root causes of programming errors in each of the programs quickly and automatically. In particular, DIDUCE is effective in isolating a timing-dependent bug in a released JSSE (Java Secure Socket Extension) library, which would have taken an experienced programmer days to find. Our experience suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains. |
---|---|
AbstractList | This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DIDUCE hypothesizes the strictest invariants at the beginning, and gradually relaxes the hypothesis as violations are detected to allow for new behavior. The violations reported help users to catch software bugs as soon as they occur. They also give programmers new visibility into the behavior of the programs such as identifying rare corner cases in the program logic or even locating hidden errors that corrupt the program's results.We implemented the DIDUCE system for Java programs and applied it to four programs of significant size and complexity. DIDUCE succeeded in identifying the root causes of programming errors in each of the programs quickly and automatically. In particular, DIDUCE is effective in isolating a timing-dependent bug in a released JSSE (Java Secure Socket Extension) library, which would have taken an experienced programmer days to find. Our experience suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains. |
Author | Hangal, Sudheendra Lam, Monica S. |
Author_xml | – sequence: 1 givenname: Sudheendra surname: Hangal fullname: Hangal, Sudheendra organization: Sun Microsystems India Pvt. Ltd. Divyasree Chambers, Shantinagar Bangalore – sequence: 2 givenname: Monica S. surname: Lam fullname: Lam, Monica S. organization: Stanford University, Stanford, CA |
BackLink | http://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&idt=16076172$$DView record in Pascal Francis |
BookMark | eNqFkL1rwzAQxQVNoUmasbuXdqpbnWRZ9tChhH5BoEsK3cRZloIb20otm5D_vgoOdMwt78H9uI83I5PWtYaQG6APAIl4FBlwnj8cRcoLMoPggCeSfU_IlDJJY8GEvCIL739oqIQnAviUPK071Nuq3USl27eRd7bfY2eiYtj4aPDHBg69a7CvdIRtMPUhKk1vdF-59ppcWqy9WZx0Tr5eX9bL93j1-faxfF7FyIH3MZgUkVpesiS30oqiKBOqqWDhxDTT1uSInIEu0Qid0SCQQ5oDRyazJDN8Tu7GubvO_Q7G96qpvDZ1ja1xg1ccUgGCwlmQSZmHv0UAb08geo217bDVlVe7rmqwOyhIqUxBssDdjxzqRhXObb0Cqo6RqzFyNUauiq4y9n__GZz_AZZ-gIM |
ContentType | Conference Proceeding Journal Article |
Copyright | 2002 ACM 2004 INIST-CNRS |
Copyright_xml | – notice: 2002 ACM – notice: 2004 INIST-CNRS |
DBID | IQODW 7SC 8FD JQ2 L7M L~C L~D |
DOI | 10.1145/581339.581377 |
DatabaseName | Pascal-Francis Computer and Information Systems Abstracts Technology Research Database ProQuest Computer Science Collection Advanced Technologies Database with Aerospace Computer and Information Systems Abstracts Academic Computer and Information Systems Abstracts Professional |
DatabaseTitle | Computer and Information Systems Abstracts Technology Research Database Computer and Information Systems Abstracts – Academic Advanced Technologies Database with Aerospace ProQuest Computer Science Collection Computer and Information Systems Abstracts Professional |
DatabaseTitleList | Computer and Information Systems Abstracts Computer and Information Systems Abstracts |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Applied Sciences Computer Science |
EndPage | 301 |
ExternalDocumentID | 16076172 |
Genre | Conference Paper |
GroupedDBID | 6IE 6IF 6IH 6IK 6IL 6IN AAJGR AAVQY ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IERZE OCL RIB RIC RIE RIL RIO -~X .4S .DC 123 23M 29O 5VS 6IM 8US AAWTH ABLEC ADZIZ AFFNX ARCSS AVWKF CHZPO EDO FEDTE I-F I07 IJVOP IPLJI IQODW M43 RIG RNS XOL 7SC 8FD JQ2 L7M L~C L~D ADFMO LHSKQ |
ID | FETCH-LOGICAL-a313t-1e6aa0f3d249f7f5bbd40c05211368cfe9aa321cdae5c80dae1916913a27848e3 |
ISBN | 158113472X 9781581134728 |
ISSN | 0270-5257 |
IngestDate | Fri Jul 11 16:47:17 EDT 2025 Fri Sep 05 09:09:58 EDT 2025 Wed Apr 02 07:25:04 EDT 2025 Wed Jan 31 06:47:05 EST 2024 Wed Jan 31 06:46:06 EST 2024 |
IsPeerReviewed | false |
IsScholarly | true |
Keywords | JAVA language Debugging program User assistance Checking program Localization Timed system Program complexity Program behavior Defect detection |
Language | English |
License | Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org CC BY 4.0 |
LinkModel | OpenURL |
MeetingName | ICSE02: International Conference on Software Engineering |
MergedId | FETCHMERGED-LOGICAL-a313t-1e6aa0f3d249f7f5bbd40c05211368cfe9aa321cdae5c80dae1916913a27848e3 |
Notes | SourceType-Scholarly Journals-2 ObjectType-Feature-2 ObjectType-Conference Paper-1 content type line 23 SourceType-Conference Papers & Proceedings-1 ObjectType-Article-3 content type line 25 |
PQID | 27795135 |
PQPubID | 23500 |
PageCount | 11 |
ParticipantIDs | proquest_miscellaneous_31651501 acm_books_10_1145_581339_581377_brief proquest_miscellaneous_27795135 pascalfrancis_primary_16076172 acm_books_10_1145_581339_581377 |
PublicationCentury | 2000 |
PublicationDate | 2002-01-01 |
PublicationDateYYYYMMDD | 2002-01-01 |
PublicationDate_xml | – month: 01 year: 2002 text: 2002-01-01 day: 01 |
PublicationDecade | 2000 |
PublicationPlace | New York, NY, USA |
PublicationPlace_xml | – name: New York, NY, USA – name: New York NY |
PublicationSeriesTitle | ACM Conferences |
PublicationTitle | Proceedings - International Conference on Software Engineering |
PublicationYear | 2002 |
Publisher | ACM |
Publisher_xml | – name: ACM |
SSID | ssj0000434513 ssj0006499 |
Score | 2.239079 |
Snippet | This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By... |
SourceID | proquest pascalfrancis acm |
SourceType | Aggregation Database Index Database Publisher |
StartPage | 291 |
SubjectTerms | Applied sciences Computer science; control theory; systems Exact sciences and technology Software Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging Software engineering |
Title | Tracking down software bugs using automatic anomaly detection |
URI | https://www.proquest.com/docview/27795135 https://www.proquest.com/docview/31651501 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1Lb9QwELZoT9xAFLFAWx_gtEqJ47z2iCpQhQAhtZV6sxzHpgfIok0iBL-eb-w8utuiCi6J13LiaL7Z8czYM8PYK2gBRleOInosDBSZmEibJI-czHUiKilz509bfM7PLtMPV9nVWKt8iC7pqhPz-864kv9BFX3AlaJk_wHZ6aXoQBv44gqEcd1Rfu9cZ75Mne241Z-k3fWOl2-O6aONgXOI3Z902utGIsItttloQ97zZQ3zfNmOo6sec_Ter6D7bj3meUXj269lbTt_oKuZxVnz1RcSgFyqr2Ep15tJ-n8MHEiyxOjl-UkQa5RuuQVffLrxudseiWTHI_F2yA_tjVSRlYKiVX3N9ElKhgJdw4Irw7O3ZXlKaS_wvATydCuKPbZXlCJE6U2etDiVaSggOU82JPMaf5djdtU0e7P1QtJJzHc6EKtb_CdcKGZya132ysbFI3Yw04DPGD9mD2zzhE0IcUKIjwhxQoh7hPiEEB8Q4hNCB-zy_buL07NoqIERaSlkFwmbax07WcNMdoXLqqpOY0MR10LmpXF2pbVMhKm1zUwZ4wYDPF8JqWlHubTyKdtv1o19xjgUMYjnVWFhEqCVaJGKEmuMzVYwuutiwY5BC0X83aoQr56pQC0VqLVgr-8ZoSqwi1uwoy16qh8hc4qibIakMmOqkcAK4oz2qHRj132rkqKAzi-zv4-QIocOHovn937uC_ZwZs-XbL_b9PYQKmRXHXkO-gMuEWtK |
linkProvider | IEEE |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+24th+International+Conference+on+Software+Engineering&rft.atitle=Tracking+down+software+bugs+using+automatic+anomaly+detection&rft.au=Hangal%2C+Sudheendra&rft.au=Lam%2C+Monica+S.&rft.series=ACM+Conferences&rft.date=2002-01-01&rft.pub=ACM&rft.isbn=158113472X&rft.spage=291&rft.epage=301&rft_id=info:doi/10.1145%2F581339.581377 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon |