Concurrent software testing in practice: a catalog of tools

S. Melo, S. Souza, Rodolfo A. Silva, P. L. D. Souza
{"title":"Concurrent software testing in practice: a catalog of tools","authors":"S. Melo, S. Souza, Rodolfo A. Silva, P. L. D. Souza","doi":"10.1145/2804322.2804328","DOIUrl":null,"url":null,"abstract":"The testing of concurrent programs is very complex due to the non-determinism present in those programs. They must be subjected to a systematic testing process that assists in the identification of defects and guarantees quality. Although testing tools have been proposed to support the concurrent program testing, to the best of our knowledge, no study that concentrates all testing tools to be used as a catalog for testers is available in the literature. This paper proposes a new classification for a set of testing tools for concurrent programs, regarding attributes, such as testing technique supported, programming language, and paradigm of development. The purpose is to provide a useful categorization guide that helps testing practitioners and researchers in the selection of testing tools for concurrent programs. A systematic mapping was conducted so that studies on testing tools for concurrent programs could be identified. As a main result, we provide a catalog with 116 testing tools appropriately selected and classified, among which the following techniques were identified: functional testing, structural testing, mutation testing, model based testing, data race and deadlock detection, deterministic testing and symbolic execution. The programming languages with higher support were Java and C/C++. Although a large number of tools have been categorized, most of them are academic and only few are available on a commercial scale. The classification proposed here can contribute to the state-of-the-art of testing tools for concurrent programs and also provides information for the exchange of knowledge between academy and industry.","PeriodicalId":223135,"journal":{"name":"Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 6th International Workshop on Automating Test Case Design, Selection and Evaluation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2804322.2804328","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 7

Abstract

The testing of concurrent programs is very complex due to the non-determinism present in those programs. They must be subjected to a systematic testing process that assists in the identification of defects and guarantees quality. Although testing tools have been proposed to support the concurrent program testing, to the best of our knowledge, no study that concentrates all testing tools to be used as a catalog for testers is available in the literature. This paper proposes a new classification for a set of testing tools for concurrent programs, regarding attributes, such as testing technique supported, programming language, and paradigm of development. The purpose is to provide a useful categorization guide that helps testing practitioners and researchers in the selection of testing tools for concurrent programs. A systematic mapping was conducted so that studies on testing tools for concurrent programs could be identified. As a main result, we provide a catalog with 116 testing tools appropriately selected and classified, among which the following techniques were identified: functional testing, structural testing, mutation testing, model based testing, data race and deadlock detection, deterministic testing and symbolic execution. The programming languages with higher support were Java and C/C++. Although a large number of tools have been categorized, most of them are academic and only few are available on a commercial scale. The classification proposed here can contribute to the state-of-the-art of testing tools for concurrent programs and also provides information for the exchange of knowledge between academy and industry.
并行软件测试的实践:工具目录
由于并发程序中存在的不确定性,并发程序的测试非常复杂。它们必须经过系统的测试过程,以帮助识别缺陷并保证质量。尽管测试工具已经被提议支持并发程序测试,但据我们所知,在文献中没有集中所有测试工具作为测试人员目录的研究。本文从支持的测试技术、编程语言和开发范式等方面对并发程序测试工具进行了分类。目的是提供一个有用的分类指南,帮助测试从业者和研究人员选择并发程序的测试工具。进行了系统的映射,以便对并发程序的测试工具进行研究。作为主要结果,我们提供了一个包含116种适当选择和分类的测试工具的目录,其中确定了以下技术:功能测试,结构测试,突变测试,基于模型的测试,数据竞争和死锁检测,确定性测试和符号执行。支持度较高的编程语言是Java和C/ c++。尽管已经分类了大量的工具,但其中大多数都是学术性的,只有少数可以用于商业规模。这里提出的分类有助于并发程序测试工具的发展,也为学术界和工业界之间的知识交流提供了信息。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信
小红书