Self-testable components: from pragmatic tests to design-for-testability methodology

Yves Le Traon, D. Deveaux, J. Jézéquel
{"title":"Self-testable components: from pragmatic tests to design-for-testability methodology","authors":"Yves Le Traon, D. Deveaux, J. Jézéquel","doi":"10.1109/TOOLS.1999.779003","DOIUrl":null,"url":null,"abstract":"Testing is a key aspect of software development, because of its cost and impact on final product reliability. Classical views on testing and their associated testing models, based on the waterfall model, are not well-suited to an OO development process. The standardization of semi-formal modeling methods, such as UML, reveals this trend: testing can no longer be separated from specification/design/code stages. A test approach integrated with the OO process must be defined with an associated testing philosophy. The approach presented in the paper aims at providing a consistent framework for building trust into components. By measuring the quality of test cases, we seek to build trust in a component passing those test cases. We present a pragmatic approach for linking design and test of classes, seen as basic unit test components. Components are self-testable by enhancing them with embedded test sequences and test oracles. Self-testable components serve as building blocks for performing systematic integration and non-regression testing. The main contribution presented in the paper consists of using component self-tests to systematically exercise main system structural dependencies. This approach has been implemented in the Eiffel, Java, Perl and C++ languages. Since it is simpler, due to the direct support for Design-by-Contract(TM) in the language, the Eiffel implementation is detailed.","PeriodicalId":434404,"journal":{"name":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"45","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TOOLS.1999.779003","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 45

Abstract

Testing is a key aspect of software development, because of its cost and impact on final product reliability. Classical views on testing and their associated testing models, based on the waterfall model, are not well-suited to an OO development process. The standardization of semi-formal modeling methods, such as UML, reveals this trend: testing can no longer be separated from specification/design/code stages. A test approach integrated with the OO process must be defined with an associated testing philosophy. The approach presented in the paper aims at providing a consistent framework for building trust into components. By measuring the quality of test cases, we seek to build trust in a component passing those test cases. We present a pragmatic approach for linking design and test of classes, seen as basic unit test components. Components are self-testable by enhancing them with embedded test sequences and test oracles. Self-testable components serve as building blocks for performing systematic integration and non-regression testing. The main contribution presented in the paper consists of using component self-tests to systematically exercise main system structural dependencies. This approach has been implemented in the Eiffel, Java, Perl and C++ languages. Since it is simpler, due to the direct support for Design-by-Contract(TM) in the language, the Eiffel implementation is detailed.
自测试组件:从实用测试到为可测试性而设计的方法
测试是软件开发的一个关键方面,因为它的成本和对最终产品可靠性的影响。基于瀑布模型的关于测试及其相关测试模型的经典观点并不适合于OO开发过程。半形式化建模方法(如UML)的标准化揭示了这种趋势:测试不再能够与规范/设计/代码阶段分离。与OO过程集成的测试方法必须与相关的测试哲学一起定义。本文提出的方法旨在为在组件中建立信任提供一致的框架。通过度量测试用例的质量,我们寻求在通过那些测试用例的组件中建立信任。我们提出了一种实用的方法来链接类的设计和测试,这些类被看作是基本的单元测试组件。通过使用嵌入式测试序列和测试oracle增强组件,组件是可自我测试的。自测试组件作为执行系统集成和非回归测试的构建块。本文提出的主要贡献包括使用组件自测试来系统地行使主要系统结构依赖关系。这种方法已经在Eiffel、Java、Perl和c++语言中实现。由于在该语言中直接支持契约式设计(TM),因此它更简单,因此详细介绍了Eiffel的实现。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信