Debugging reinvented: asking and answering why and why not questions about program behavior

When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:International Conference on Software Engineering 2008 Ročník 2008; číslo 24
Hlavní autoři: Ko, Andrew J, Myers, Brad A
Médium: Journal Article
Jazyk:angličtina
Vydáno: 01.01.2008
ISBN:1605580791, 9781605580791
ISSN:0270-5257
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Abstract When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.
AbstractList When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of questions about code, speculating about the causes in the process. The Whyline is a new kind of debugging tool that avoids such speculation by instead enabling developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution. The tool then finds one or more possible explanations for the output in question, using a combination of static and dynamic slicing, precise call graphs, and new algorithms for determining potential sources of values and explanations for why a line of code was not reached. Evaluations of the tool on one task showed that novice programmers with the Whyline were twice as fast as expert programmers without it. The tool has the potential to simplify debugging in many software development contexts.
Author Ko, Andrew J
Myers, Brad A
Author_xml – sequence: 1
  givenname: Andrew
  surname: Ko
  middlename: J
  fullname: Ko, Andrew J
– sequence: 2
  givenname: Brad
  surname: Myers
  middlename: A
  fullname: Myers, Brad A
BookMark eNotjj1PwzAURS1RJNrCzJqJLcUvtmObDZVPqRILTAyV7TyngdSGOGnFv6cpDFdH9wxXd0YmIQYk5BLoAoCLa2ClokotRgKjJ2QGJRVCUalhQqa0kDQXhZBnZJbSB6W05FpPyfsd2qGum1BnHTZhh6HH6iYz6XNUJlSHpD12Y9tvfo5mZIh99j1g6psYUmZsHPrsq4t1Z7aZxY3ZNbE7J6fetAkv_jknbw_3r8unfPXy-Ly8XeWmEKrPVSWBVx4KV4Gh3hpQnDoohRPWK6s4k1ohMC-Yw8pqxzz3RjmpkAtwyObk6m_3cOD4ab1tksO2NQHjkNaM67JUkrJfaMFZzw
ContentType Journal Article
DBID 7SC
8FD
JQ2
L7M
L~C
L~D
DOI 10.1145/1368088.1368130
DatabaseName 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
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
GroupedDBID -~X
.4S
.DC
123
29O
5VS
6IF
6IH
6IK
6IL
6IM
6IN
7SC
8FD
8US
AAJGR
AAWTH
ADZIZ
AFFNX
ALMA_UNASSIGNED_HOLDINGS
APO
ARCSS
AVWKF
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CHZPO
EDO
FEDTE
I-F
I07
IPLJI
JQ2
L7M
L~C
L~D
M43
OCL
RIE
RIL
RNS
ID FETCH-LOGICAL-a258t-8d714df12cd1a0fba1840c165c5bf8b843798e13f53cedb9c3f4fa8c78e451ce3
ISBN 1605580791
9781605580791
ISICitedReferencesCount 143
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000266158500031&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 0270-5257
IngestDate Wed Oct 01 13:17:20 EDT 2025
IsPeerReviewed false
IsScholarly true
Issue 24
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a258t-8d714df12cd1a0fba1840c165c5bf8b843798e13f53cedb9c3f4fa8c78e451ce3
Notes SourceType-Scholarly Journals-2
ObjectType-Feature-2
ObjectType-Conference Paper-1
content type line 23
SourceType-Conference Papers & Proceedings-1
ObjectType-Article-3
PQID 34966870
PQPubID 23500
ParticipantIDs proquest_miscellaneous_34966870
PublicationCentury 2000
PublicationDate 2008-01-01
PublicationDateYYYYMMDD 2008-01-01
PublicationDate_xml – month: 01
  year: 2008
  text: 2008-01-01
  day: 01
PublicationDecade 2000
PublicationTitle International Conference on Software Engineering 2008
PublicationYear 2008
SSID ssj0006499
ssj0001138901
Score 2.3684015
Snippet When software developers want to understand the reason for a program's behavior, they must translate their questions about the behavior into a series of...
SourceID proquest
SourceType Aggregation Database
Title Debugging reinvented: asking and answering why and why not questions about program behavior
URI https://www.proquest.com/docview/34966870
Volume 2008
WOSCitedRecordID wos000266158500031&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVIEE
  databaseName: IEEE/IET Electronic Library (IEL) (UW System Shared)
  isbn: 1605580791
  customDbUrl:
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0006499
  issn: 0270-5257
  databaseCode: RIE
  dateStart: 19880101
  isFulltext: true
  titleUrlDefault: https://ieeexplore.ieee.org/
  providerName: IEEE
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LTxsxELYgcOBCX6ACffhQ9YIs1vuyt7eqCqoESis1SJF6iLyOTaNKG5oH4ecz4_V6l3IADlx2EyvaOJlPY49n5vsI-RQJG6dJnDAuhWWpziSThRGMx5EoVKR0ltdiE2IwkKNR8dMXZC6cnICoKnlzU1w9q6lhDIyNrbNPMHd4KAzAazA6XMHscH2U4cGDrC6d9NDcTF1JuXE6zmrxt2lIhOVp7SgIj9d_av4lvFcz7LFE1g0sn6krln35Vujm7-5l7x4mtq2DmH_4Bd59jUVlHb5DZC8MhbNns7acsk1NNRIUx5ji98eszZGE7BxJuMiUQ4yUSTA273izWEQMqVe7rjd8bw2yupv6vlNPkf-CJ6gSIrEuT3Kfy7lDnz34MT69OD8fD_uj4eerfwyVxTAD72VWNslWDMFRVPf4tedwmKntlAXlqdMcDdPFZsDwczxHWHjvuaJggif_Te_e0u72K8OXZNcHGvRrDZBXZMNUr8mLRsSDep_-hvwOeKEtXr7QGi0UsEEDWiigxI3gHdBCA1qoQwv1aKENWvbIxWl_-O0784obTMWZXDI5ETydWB7rCVeRLRXG_5rnmc5KK0uJ5JXS8MRmiTaTstCJTa2SWkiTZlybZJ_0qlll3hKa57ZQWigNe9S05IXisDnlmJSPyxIecEA-Nn_QGDwapqlUZWarxRglDHJYRg4f_MQR2Wnh9470lvOVeU-29fVyuph_cHa-BWu_Zyk
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%3Ajournal&rft.genre=article&rft.atitle=Debugging+reinvented%3A+asking+and+answering+why+and+why+not+questions+about+program+behavior&rft.jtitle=International+Conference+on+Software+Engineering+2008&rft.au=Ko%2C+Andrew+J&rft.au=Myers%2C+Brad+A&rft.date=2008-01-01&rft.isbn=1605580791&rft.issn=0270-5257&rft.volume=2008&rft.issue=24&rft_id=info:doi/10.1145%2F1368088.1368130&rft.externalDBID=NO_FULL_TEXT
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