N. Wilde, R. Justice, Kristin Blackwell, W. E. Wong
{"title":"Dynamic analysis methods for the year 2000 problem","authors":"N. Wilde, R. Justice, Kristin Blackwell, W. E. Wong","doi":"10.1002/(SICI)1096-908X(199905/06)11:3%3C167::AID-SMR190%3E3.0.CO;2-N","DOIUrl":null,"url":null,"abstract":"Programmers working on the year 2000 problem need to locate and understand date sensitive code, that is, code whose execution depends on date inputs. This paper presents several dynamic analysis methods for addressing this problem. Date sensitive code can be located by running many test cases that are identical except for a change in one date value. An advanced test coverage tool can recover each test's execution count vector giving the number of times that each basic block was executed. Comparison of the vectors reveals the blocks whose execution is affected by the input date values. We present several methods of analysing the execution count data to locate date algorithms. One method identifies subdomains, that is, ranges of dates that are processed similarly. Another method involves graphical or Fourier analysis to identify common programming patterns such as leap-year computations. The last method exploits the 28-year regularity in dates to look for anomalies in processing. The methods are illustrated using Bellcore's ATAC testing tool on five C programs that use some of the date encodings that year 2000 maintainers may need to locate and understand. Copyright © 1999 John Wiley & Sons, Ltd.","PeriodicalId":383619,"journal":{"name":"J. Softw. Maintenance Res. Pract.","volume":"431 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"J. Softw. Maintenance Res. Pract.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1002/(SICI)1096-908X(199905/06)11:3%3C167::AID-SMR190%3E3.0.CO;2-N","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
2000年问题的动态分析方法
处理2000年问题的程序员需要定位和理解日期敏感代码,也就是说,其执行依赖于日期输入的代码。本文提出了解决这一问题的几种动态分析方法。可以通过运行许多相同的测试用例来定位日期敏感代码,除了一个日期值的更改。一个高级的测试覆盖工具可以恢复每个测试的执行计数向量,给出每个基本块被执行的次数。矢量的比较揭示了其执行受输入日期值影响的块。我们提出了几种分析执行计数数据来定位日期算法的方法。一种方法识别子域,即类似处理的日期范围。另一种方法涉及图形或傅立叶分析,以识别常见的编程模式,如闰年计算。最后一种方法利用28年的日期规律来寻找加工过程中的异常。使用Bellcore的ATAC测试工具对五个C程序进行了说明,这些程序使用了2000年维护者可能需要定位和理解的一些日期编码。版权所有©1999 John Wiley & Sons, Ltd
本文章由计算机程序翻译,如有差异,请以英文原文为准。