Please use this identifier to cite or link to this item: https://doi.org/10.1145/2491411.2491430
DC FieldValue
dc.titleRegression tests to expose change interaction errors
dc.contributor.authorBöhme, M.
dc.contributor.authorOliveira, B.C.D.S.
dc.contributor.authorRoychoudhury, A.
dc.date.accessioned2014-07-04T03:14:56Z
dc.date.available2014-07-04T03:14:56Z
dc.date.issued2013
dc.identifier.citationBöhme, M.,Oliveira, B.C.D.S.,Roychoudhury, A. (2013). Regression tests to expose change interaction errors. 2013 9th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013 - Proceedings : 334-344. ScholarBank@NUS Repository. <a href="https://doi.org/10.1145/2491411.2491430" target="_blank">https://doi.org/10.1145/2491411.2491430</a>
dc.identifier.isbn9781450322379
dc.identifier.urihttp://scholarbank.nus.edu.sg/handle/10635/78319
dc.description.abstractChanges often introduce program errors, and hence recent software testing literature has focused on generating tests which stress changes. In this paper, we argue that changes cannot be treated as isolated program artifacts which are stressed via testing. Instead, it is the complex dependency across multiple changes which introduce subtle errors. Furthermore, the complex dependence structures, that need to be exercised to expose such errors, ensure that they remain undiscovered even in well tested and deployed software. We motivate our work based on a well tested and stable project - GNU Coreutils - where we found that one third of the regressions take more than two (2) years to be fixed, and that two thirds of such long-standing regressions are introduced due to change interactions for the utilities we investigated. To combat change interaction errors, we first define a notion of change interaction where several program changes are found to affect the result of a program statement via program dependencies. Based on this notion, we propose a change sequence graph (CSG) to summarize the control-flow and dependencies across changes. The CSG is then used as a guide during program path exploration via symbolic execution - thereby efficiently producing test cases which witness change interaction errors. Our experimental infrastructure was deployed on various utilities of GNU Coreutils, which have been distributed with Linux for almost twenty years. Apart from finding five (5) previously unknown errors in the utilities, we found that only one in five generated test cases exercises a sequence that is critical to exposing a change-interaction error, while being an order of magnitude more likely to expose an error. On the other hand, stressing changes in isolation only exposed half of the change interaction errors. These results demonstrate the importance and difficulty of change dependence-aware regression testing.
dc.description.urihttp://libproxy1.nus.edu.sg/login?url=http://dx.doi.org/10.1145/2491411.2491430
dc.sourceScopus
dc.subjectGraph-based search
dc.subjectTest generation
dc.typeConference Paper
dc.contributor.departmentCOMPUTER SCIENCE
dc.description.doi10.1145/2491411.2491430
dc.description.sourcetitle2013 9th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013 - Proceedings
dc.description.page334-344
dc.identifier.isiutNOT_IN_WOS
Appears in Collections:Staff Publications

Show simple item record
Files in This Item:
There are no files associated with this item.

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.