{"title":"支持Lisp程序中的回归测试","authors":"R. Waters","doi":"10.1145/121983.121988","DOIUrl":null,"url":null,"abstract":"How often have you made a change in a system to fix a bug or add a feature and been totally sure that the change did not affect anything else, only to discover weeks or months later tha t the change broke something? In my personal experience, the single most valuable software maintenance tool is a regression tester, which maintains a suite of tests for a system and can run them automatical ly when the system is changed. The term \"regression testing\" is used, because each version of the system being tested is compared with the previous version to make sure that the new version has not regressed by losing any of the tested capabilities. The more comprehensive the test suite is, the more valuable this comparison becomes. Creating a comprehensive test suite for a system requires significant effort, and running a test suite can require significant amounts of computer time. However, given a comprehensive test suite, regression testing detects an impressive number of bugs with remarkably little human effort. The KT regression tester presented here supports the regression testing of systems wri t ten in Common Lisp. In addition to being a valuable tool, RT is an interesting example of the power of Lisp. The unified nature of the Lisp programming environment and the fact that Lisp programs can be manipulated as da ta allows RT to be implemented in two pages of code. Merely implement ing a batch-mode regression tester using an Algol-like language in a typical programming environment would require much more code. Implement ing a highly interactive system like RT would be a major undertaking. U s e r ' s M a n u a l for RT","PeriodicalId":262740,"journal":{"name":"ACM SIGPLAN Lisp Pointers","volume":"115 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Supporting the regression testing in Lisp programs\",\"authors\":\"R. Waters\",\"doi\":\"10.1145/121983.121988\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"How often have you made a change in a system to fix a bug or add a feature and been totally sure that the change did not affect anything else, only to discover weeks or months later tha t the change broke something? In my personal experience, the single most valuable software maintenance tool is a regression tester, which maintains a suite of tests for a system and can run them automatical ly when the system is changed. The term \\\"regression testing\\\" is used, because each version of the system being tested is compared with the previous version to make sure that the new version has not regressed by losing any of the tested capabilities. The more comprehensive the test suite is, the more valuable this comparison becomes. Creating a comprehensive test suite for a system requires significant effort, and running a test suite can require significant amounts of computer time. However, given a comprehensive test suite, regression testing detects an impressive number of bugs with remarkably little human effort. The KT regression tester presented here supports the regression testing of systems wri t ten in Common Lisp. In addition to being a valuable tool, RT is an interesting example of the power of Lisp. The unified nature of the Lisp programming environment and the fact that Lisp programs can be manipulated as da ta allows RT to be implemented in two pages of code. Merely implement ing a batch-mode regression tester using an Algol-like language in a typical programming environment would require much more code. Implement ing a highly interactive system like RT would be a major undertaking. U s e r ' s M a n u a l for RT\",\"PeriodicalId\":262740,\"journal\":{\"name\":\"ACM SIGPLAN Lisp Pointers\",\"volume\":\"115 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1991-04-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM SIGPLAN Lisp Pointers\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/121983.121988\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGPLAN Lisp Pointers","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/121983.121988","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6
摘要
你是否经常为了修复一个bug或添加一个特性而对系统进行更改,并且完全确定这些更改不会影响到其他任何东西,只是在几周或几个月后才发现这些更改破坏了某些东西?在我个人的经验中,最有价值的软件维护工具是回归测试器,它为系统维护一套测试,并可以在系统更改时自动运行它们。之所以使用术语“回归测试”,是因为要将被测试的系统的每个版本与以前的版本进行比较,以确保新版本没有因失去任何被测试的功能而退化。测试套件越全面,这种比较就越有价值。为系统创建一个全面的测试套件需要大量的工作,并且运行一个测试套件需要大量的计算机时间。然而,给定一个全面的测试套件,回归测试只需要很少的人力就能检测到数量惊人的错误。这里介绍的KT回归测试器支持用Common Lisp编写的系统的回归测试。RT除了是一种有价值的工具之外,还是展示Lisp强大功能的一个有趣的例子。Lisp编程环境的统一特性以及Lisp程序可以作为数据操作的事实允许RT在两页代码中实现。仅仅在典型的编程环境中使用类似algol的语言实现批处理模式回归测试器就需要更多的代码。实现像RT这样高度交互的系统将是一项重大任务。U = r = M, U = l = RT
Supporting the regression testing in Lisp programs
How often have you made a change in a system to fix a bug or add a feature and been totally sure that the change did not affect anything else, only to discover weeks or months later tha t the change broke something? In my personal experience, the single most valuable software maintenance tool is a regression tester, which maintains a suite of tests for a system and can run them automatical ly when the system is changed. The term "regression testing" is used, because each version of the system being tested is compared with the previous version to make sure that the new version has not regressed by losing any of the tested capabilities. The more comprehensive the test suite is, the more valuable this comparison becomes. Creating a comprehensive test suite for a system requires significant effort, and running a test suite can require significant amounts of computer time. However, given a comprehensive test suite, regression testing detects an impressive number of bugs with remarkably little human effort. The KT regression tester presented here supports the regression testing of systems wri t ten in Common Lisp. In addition to being a valuable tool, RT is an interesting example of the power of Lisp. The unified nature of the Lisp programming environment and the fact that Lisp programs can be manipulated as da ta allows RT to be implemented in two pages of code. Merely implement ing a batch-mode regression tester using an Algol-like language in a typical programming environment would require much more code. Implement ing a highly interactive system like RT would be a major undertaking. U s e r ' s M a n u a l for RT