Skip to main content
Top

2017 | OriginalPaper | Chapter

Validating Converted Java Code via Symbolic Execution

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

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.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
1.
go back to reference Terekhov, A., Verhoef, C.: Realities of language conversion. IEEE Softw. 17(6), 111 (2000)CrossRef Terekhov, A., Verhoef, C.: Realities of language conversion. IEEE Softw. 17(6), 111 (2000)CrossRef
2.
go back to reference Sneed, H.: Migrating from COBOL to Java – a report from the field. In: IEEE Proceedings of 26th ICSM, p. 122. Computer Society Press, Temesvar, September 2010 Sneed, H.: Migrating from COBOL to Java – a report from the field. In: IEEE Proceedings of 26th ICSM, p. 122. Computer Society Press, Temesvar, September 2010
3.
go back to reference Yang, H., Zedan, H.: Abstraction – a key notion for reverse engineering in a system reengineering approach. J. Softw. Maint. 12(4), 197 (2000)CrossRef Yang, H., Zedan, H.: Abstraction – a key notion for reverse engineering in a system reengineering approach. J. Softw. Maint. 12(4), 197 (2000)CrossRef
4.
go back to reference Sneed, H.: Encapsulating legacy software for reuse in client-server systems. In: IEEE 3rd WCRE, p. 104. Computer Society Press, Monterey (1996) Sneed, H.: Encapsulating legacy software for reuse in client-server systems. In: IEEE 3rd WCRE, p. 104. Computer Society Press, Monterey (1996)
5.
go back to reference Meyer, B.: Object-oriented Software Construction, p. 12. Prentice-Hall International, Hertfordshire (1988) Meyer, B.: Object-oriented Software Construction, p. 12. Prentice-Hall International, Hertfordshire (1988)
6.
go back to reference Sneed, H.: Transforming procedural program structures to object-oriented class structures. In: IEEE Proceedings of 18th ICSM, p. 286. Computer Society Press, Montreal, October 2001 Sneed, H.: Transforming procedural program structures to object-oriented class structures. In: IEEE Proceedings of 18th ICSM, p. 286. Computer Society Press, Montreal, October 2001
7.
go back to reference Sellink, A., Sneed, H., Verhoef, C.: Restructuring of COBOL/CICS legacy systems. Sci. Comput. Program. 45(2–3), 193 (2002)CrossRefMATH Sellink, A., Sneed, H., Verhoef, C.: Restructuring of COBOL/CICS legacy systems. Sci. Comput. Program. 45(2–3), 193 (2002)CrossRefMATH
8.
go back to reference Ruhl, M., Gunn, M.: Software reengineering – a case study and lessons learned, pp. 500–193. NIST Special Publication, September 1991 Ruhl, M., Gunn, M.: Software reengineering – a case study and lessons learned, pp. 500–193. NIST Special Publication, September 1991
9.
go back to reference Veerman, N.: Revitalizing modifiability of legacy assets. J. Softw. Maint. Evol. 16, 219 (2004)CrossRef Veerman, N.: Revitalizing modifiability of legacy assets. J. Softw. Maint. Evol. 16, 219 (2004)CrossRef
10.
11.
go back to reference Broy, M.: Zur spezifikation von programmen für die textverarbeitung. In: Wossido, P. (ed.) Textverarbeitung und Informatik. Informatik Fachberichte, vol. 30, p. 75. Springer, Heidelberg (1980)CrossRef Broy, M.: Zur spezifikation von programmen für die textverarbeitung. In: Wossido, P. (ed.) Textverarbeitung und Informatik. Informatik Fachberichte, vol. 30, p. 75. Springer, Heidelberg (1980)CrossRef
12.
go back to reference Lano, K., Breuer, P., Haughton, H.: Reverse engineering of COBOL via formal methods. J. Softw. Maint. 5(1), 13 (1993)CrossRef Lano, K., Breuer, P., Haughton, H.: Reverse engineering of COBOL via formal methods. J. Softw. Maint. 5(1), 13 (1993)CrossRef
13.
go back to reference Howden, W.: Symbolic testing with the DISSECT symbolic evaluation system. IEEE Trans. 1(4), 266 (1977)MATH Howden, W.: Symbolic testing with the DISSECT symbolic evaluation system. IEEE Trans. 1(4), 266 (1977)MATH
14.
go back to reference Howden, W.: Functional program testing. IEEE Trans. 6(3), 162 (1980) Howden, W.: Functional program testing. IEEE Trans. 6(3), 162 (1980)
15.
go back to reference Rich, C., Waters, R.C.: The programmer's apprentice: a research overview. IEEE Comput. Mag. 21(11), 10–25 (1988)CrossRef Rich, C., Waters, R.C.: The programmer's apprentice: a research overview. IEEE Comput. Mag. 21(11), 10–25 (1988)CrossRef
16.
go back to reference Swartout, V., Balzer, R.: On the inevitable intertwining of specification and implementation. Commun. ACM 25(7), 438–440 (1982)CrossRef Swartout, V., Balzer, R.: On the inevitable intertwining of specification and implementation. Commun. ACM 25(7), 438–440 (1982)CrossRef
17.
go back to reference Basili, V., Selby, R.: Comparing the effectiveness of software testing strategies. IEEE Trans. 13(12), 1278 (1987) Basili, V., Selby, R.: Comparing the effectiveness of software testing strategies. IEEE Trans. 13(12), 1278 (1987)
18.
go back to reference El-Fakih, K., Yevtushenko, N., Bochmann, G.: FSM-based incremental conformance testing methods. IEEE Trans. 30(7), 425 (2004) El-Fakih, K., Yevtushenko, N., Bochmann, G.: FSM-based incremental conformance testing methods. IEEE Trans. 30(7), 425 (2004)
19.
go back to reference Sneed, H.: Validating functional equivalence of reengineered programs via control path, result and data flow comparison. Softw. Test. Verif. Reliab. 4(1), 33 (1994)CrossRef Sneed, H.: Validating functional equivalence of reengineered programs via control path, result and data flow comparison. Softw. Test. Verif. Reliab. 4(1), 33 (1994)CrossRef
20.
go back to reference Sneed, H.: Risks involved in reengineering projects. In: IEEE Proceedings of 6th WCRE, p. 204. Computer Society Press, Atlanta, October 1999 Sneed, H.: Risks involved in reengineering projects. In: IEEE Proceedings of 6th WCRE, p. 204. Computer Society Press, Atlanta, October 1999
21.
go back to reference Leung, N., White, L.: Insights into regression testing. In: IEEE Proceedings of 5th ICSM, p. 60. Computer Society Press, Miami, November 1989 Leung, N., White, L.: Insights into regression testing. In: IEEE Proceedings of 5th ICSM, p. 60. Computer Society Press, Miami, November 1989
22.
go back to reference Weyuker, E.: The cost of data flow testing – an empirical study. IEEE Trans. 16(2), 121 (1990)MathSciNet Weyuker, E.: The cost of data flow testing – an empirical study. IEEE Trans. 16(2), 121 (1990)MathSciNet
23.
go back to reference Korel, B., Laski, J.: Dynamic slicing of computer programs. J. Syst. Softw. 13(3), 187 (1990)CrossRefMATH Korel, B., Laski, J.: Dynamic slicing of computer programs. J. Syst. Softw. 13(3), 187 (1990)CrossRefMATH
24.
go back to reference Stevens, S.: Intelligent interactive video simulation of a code inspection. Commun. ACM 32(7), 832 (1989)CrossRef Stevens, S.: Intelligent interactive video simulation of a code inspection. Commun. ACM 32(7), 832 (1989)CrossRef
25.
go back to reference Cimitile, A., Fasolino, A.: Reuse reengineering and validation via concept assignment. In: IEEE Proceedings of 9th ICSM, p. 216. Computer Society Press, Montreal, September 1993 Cimitile, A., Fasolino, A.: Reuse reengineering and validation via concept assignment. In: IEEE Proceedings of 9th ICSM, p. 216. Computer Society Press, Montreal, September 1993
26.
27.
go back to reference Peters, D., Parnas, D.: Using test oracles generated from program documentation. IEEE Trans. 24(3), 161 (1998) Peters, D., Parnas, D.: Using test oracles generated from program documentation. IEEE Trans. 24(3), 161 (1998)
28.
go back to reference Sneed, H.: Source animation as a means of program comprehension for object-oriented systems. In: Proceedings of 8th IEEE International Workshop on Program Comprehension, p. 179. Computer Society Press, Limerick, June 2000 Sneed, H.: Source animation as a means of program comprehension for object-oriented systems. In: Proceedings of 8th IEEE International Workshop on Program Comprehension, p. 179. Computer Society Press, Limerick, June 2000
29.
go back to reference Cornelissen, B., Zaidman, A., van Deursen, A.: A controlled experiment for program comprehension through trace visualization. IEEE Trans. 37(3), 341 (2011) Cornelissen, B., Zaidman, A., van Deursen, A.: A controlled experiment for program comprehension through trace visualization. IEEE Trans. 37(3), 341 (2011)
30.
go back to reference Gilb, T., Graham, D.: Software Inspection Techniques. Addison-Wesley, Wokingham (1993) Gilb, T., Graham, D.: Software Inspection Techniques. Addison-Wesley, Wokingham (1993)
31.
go back to reference Verhoef, C.: Towards automated modification of legacy assets. Ann. Softw. Eng. 9, 315 (2000)CrossRef Verhoef, C.: Towards automated modification of legacy assets. Ann. Softw. Eng. 9, 315 (2000)CrossRef
32.
Metadata
Title
Validating Converted Java Code via Symbolic Execution
Authors
Harry M. Sneed
Chris Verhoef
Copyright Year
2017
DOI
https://doi.org/10.1007/978-3-319-49421-0_6

Premium Partner