In this paper, we introduce a methodology similar to the one known as CI/CD (Continuous Integration and Continuous Deployment), including several testing strategies for enhancing scientific computing legacy software. The methodology takes into account specific characteristics of scientific legacy software for introducing source code improvements as well as automated tests and/or aids for testing. The methodology is presented for Fortran legacy source code because most of the legacy scientific source code is made in Fortran, but many of the concepts could be extended to other source code programming languages. In terms of source code enhancements, the first ones focus on source code legibility as well as minor source code changes (e.g. pretty printing and identifying subprograms/functions parameters/arguments In, Out, or In/Out usage). In terms of testing, the strategies include fully automated, numerical difference error testing, and scientific researcher aids for manual testing.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Scientific Legacy Code Enhancement and Testing Strategies: Fortran Example

  • Ariel Fraidenraich,
  • Francesco Santone,
  • Adolfo E. Altenberg,
  • Fernando G. Tinetti

摘要

In this paper, we introduce a methodology similar to the one known as CI/CD (Continuous Integration and Continuous Deployment), including several testing strategies for enhancing scientific computing legacy software. The methodology takes into account specific characteristics of scientific legacy software for introducing source code improvements as well as automated tests and/or aids for testing. The methodology is presented for Fortran legacy source code because most of the legacy scientific source code is made in Fortran, but many of the concepts could be extended to other source code programming languages. In terms of source code enhancements, the first ones focus on source code legibility as well as minor source code changes (e.g. pretty printing and identifying subprograms/functions parameters/arguments In, Out, or In/Out usage). In terms of testing, the strategies include fully automated, numerical difference error testing, and scientific researcher aids for manual testing.