Validating converted java code via symbolic execution

Harry M. Sneed*, C. Verhoef

*Corresponding author for this work

Research output: Chapter in Book / Report / Conference proceedingConference contributionAcademicpeer-review

Abstract

The testing approach described here has grown out of migration projects aimed at converting procedural programs in COBOL or PL/1 to object-oriented Java code. The code conversion itself is now automated but not completely. The human reengineer still has to make some adjustments to the automatically generated code and that can lead to errors. These may also be subtle errors in the automated transformation. Therefore, converted code must be tested to prove that it is functionally equivalent to the original code. Up until now converted programs have been tested manually and their results compared, but that is a very labor intensive approach. Besides, it only shows which results differ and not where the code differs. It can be extremely difficult to trace differences in the results back to differences in the code. Such regression testing drives up the costs of migration, causing users to disregard this alternative. If they have to spend so much on testing a conversion they might as well redevelop the software. This paper describes how converted code can be validated at a much lower cost by symbolically executing it and comparting the execution paths. The theory behind this approach is that no matter how statements are statically reordered, dynamically they must still execute in the same sequence to produce the same result.

Original languageEnglish
Title of host publicationSoftware Quality: Complexity and Challenges of Software Engineering in Emerging Technologies - 9th International Conference, SWQD 2017, Proceedings
PublisherSpringer/Verlag
Pages70-83
Number of pages14
Volume269
ISBN (Print)9783319494203
DOIs
Publication statusPublished - 2017
Event9th International Conference on Software Quality Days, SWQD 2017 - Vienna, Austria
Duration: 17 Jan 201720 Jan 2017

Publication series

NameLecture Notes in Business Information Processing
Volume269
ISSN (Print)18651348

Conference

Conference9th International Conference on Software Quality Days, SWQD 2017
CountryAustria
CityVienna
Period17/01/1720/01/17

Keywords

  • Code conversion
  • Dynamic comparison
  • Functional equivalence
  • Object-oriented migration
  • Source code animation
  • Symbolic execution
  • Verification paths

Fingerprint

Dive into the research topics of 'Validating converted java code via symbolic execution'. Together they form a unique fingerprint.

Cite this