Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2591062.2591104acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Shadow symbolic execution for better testing of evolving software

Published: 31 May 2014 Publication History

Abstract

In this idea paper, we propose a novel way for improving the testing of program changes via symbolic execution. At a high-level, our technique runs two different program versions in the same symbolic execution instance, with the old version effectively shadowing the new one. In this way, the technique can exploit precise dynamic value information to effectively drive execution toward the behaviour that has changed from one version to the next. We discuss the main challenges and opportunities of this approach in terms of pruning and prioritising path exploration, mapping elements across versions, and sharing common symbolic state between versions.

References

[1]
D. Babi´ c, L. Martignoni, S. McCamant, and D. Song. Statically-directed dynamic automated test generation. In ISSTA’11.
[2]
M. Böhme, B. C. d. S. Oliveira, and A. Roychoudhury. Partition-based regression verification. In ICSE’13.
[3]
M. Böhme, B. C. d. S. Oliveira, and A. Roychoudhury. Regression tests to expose change interaction errors. In ESEC/FSE’13.
[4]
C. Cadar and K. Sen. Symbolic execution for software testing: three decades later. CACM, 56(2):82–90, 2013.
[5]
E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In TACAS’04.
[6]
Coverity software. http://www.coverity.com.
[7]
M. d’Amorim, S. Lauterburg, and D. Marinov. Delta execution for efficient state-space exploration of object-oriented programs. In ISSTA’07.
[8]
Fortify software. http://www.fortify.com.
[9]
B. Godlin and O. Strichman. Regression verification. In DAC’09.
[10]
Z. Gu, E. T. Barr, D. J. Hamilton, and Z. Su. Has the bug really been fixed? In ICSE’10.
[11]
P. Hosek and C. Cadar. Safe software updates via multi-version execution. In ICSE’13.
[12]
C. H. P. Kim, S. Khurshid, and D. Batory. Shared execution for efficiently testing product lines. In ISSRE’12.
[13]
M. Kim and D. Notkin. Program element matching for multi-version program analyses. In MSR’06.
[14]
J. C. King. Symbolic execution and program testing. CACM, 19(7):385–394, 1976.
[15]
S. K. Lahiri, K. L. McMillan, R. Sharma, and C. Hawblitzel. Differential assertion checking. In ESEC/FSE’13.
[16]
K.-K. Ma, Y. P. Khoo, J. S. Foster, and M. Hicks. Directed symbolic execution. In SAS’11.
[17]
P. D. Marinescu and C. Cadar. High-coverage symbolic patch testing. In SPIN’12.
[18]
P. D. Marinescu and C. Cadar. KATCH: High-coverage testing of software patches. In ESEC/FSE’13.
[19]
M. Maurer and D. Brumley. TACHYON: Tandem execution for efficient live patch testing. In USENIX Security’12.
[20]
D. Notkin. Longitudinal program analysis. In PASTE’02.
[21]
S. Person, M. B. Dwyer, S. Elbaum, and C. S. Pˇ asˇ areanu. Differential symbolic execution. In FSE’08.
[22]
S. Person, G. Yang, N. Rungta, and S. Khurshid. Directed incremental symbolic execution. In PLDI’11.
[23]
R. Santelices, P. K. Chittimalli, T. Apiwattanapong, A. Orso, and M. J. Harrold. Test-suite augmentation for evolving software. In ASE’08.
[24]
K. Taneja, T. Xie, N. Tillmann, and J. de Halleux. eXpress: guided path exploration for efficient regression test generation. In ISSTA’11.
[25]
J. Tucek, W. Xiong, and Y. Zhou. Efficient online validation with delta execution. In ASPLOS’09.
[26]
W. Visser, C. S. Pasareanu, and S. Khurshid. Test input generation with Java PathFinder. In ISSTA’04.
[27]
Z. Xu and G. Rothermel. Directed test suite augmentation. In ASPEC’09.
[28]
Z. Yin, D. Yuan, Y. Zhou, S. Pasupathy, and L. Bairavasundaram. How do fixes become bugs? In ESEC/FSE’11.

Cited By

View all
  • (2024)ParDiff: Practical Static Differential Analysis of Network Protocol ParsersProceedings of the ACM on Programming Languages10.1145/36498548:OOPSLA1(1208-1234)Online publication date: 29-Apr-2024
  • (2023)Code-Level Functional Equivalence Checking of Annotative Software Product LinesProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608978(64-75)Online publication date: 28-Aug-2023
  • (2023)Binsec/Rel: Symbolic Binary Analyzer for Security with Applications to Constant-Time and Secret-ErasureACM Transactions on Privacy and Security10.1145/356303726:2(1-42)Online publication date: 14-Apr-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software Engineering
May 2014
741 pages
ISBN:9781450327688
DOI:10.1145/2591062
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 the author(s) 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 [email protected].

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 May 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Patch testing
  2. longitudinal program analysis

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 11 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)ParDiff: Practical Static Differential Analysis of Network Protocol ParsersProceedings of the ACM on Programming Languages10.1145/36498548:OOPSLA1(1208-1234)Online publication date: 29-Apr-2024
  • (2023)Code-Level Functional Equivalence Checking of Annotative Software Product LinesProceedings of the 27th ACM International Systems and Software Product Line Conference - Volume A10.1145/3579027.3608978(64-75)Online publication date: 28-Aug-2023
  • (2023)Binsec/Rel: Symbolic Binary Analyzer for Security with Applications to Constant-Time and Secret-ErasureACM Transactions on Privacy and Security10.1145/356303726:2(1-42)Online publication date: 14-Apr-2023
  • (2020)ARDiff: scaling program equivalence checking via iterative abstraction and refinement of common codeProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409757(13-24)Online publication date: 8-Nov-2020
  • (2020)Scaling client-specific equivalence checking via impact boundary searchProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416634(734-745)Online publication date: 21-Dec-2020
  • (2020)Binsec/Rel: Efficient Relational Symbolic Execution for Constant-Time at Binary-Level2020 IEEE Symposium on Security and Privacy (SP)10.1109/SP40000.2020.00074(1021-1038)Online publication date: May-2020
  • (2019)Advances in Symbolic Execution10.1016/bs.adcom.2018.10.002(225-287)Online publication date: 2019
  • (2018)Client-specific equivalence checkingProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238178(441-451)Online publication date: 3-Sep-2018
  • (2018)Shadow Symbolic Execution for Testing Software PatchesACM Transactions on Software Engineering and Methodology10.1145/320895227:3(1-32)Online publication date: 25-Sep-2018
  • (2017)Identifying test-suite-overfitted patches through test case generationProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3092703.3092718(226-236)Online publication date: 10-Jul-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media