首页> 外文OA文献 >Identifying Defects Related to the Order in which Messages are Received in Message-Passing Systems
【2h】

Identifying Defects Related to the Order in which Messages are Received in Message-Passing Systems

机译:识别与消息传递系统中接收消息的顺序有关的缺陷

摘要

Improving the quality of software artifacts and products is an essential activity for everyone working on the development of software. Testing is one approach to reveal defects and faults in software. In recent years, message-passing systems have grown to a significant degree due to the rise of distributed systems, embedded systems, and so forth. In message-passing systems, components communicate with each other through sending and receiving messages. This message-passing mechanism introduces new opportunities for testing programs due to the fact that the time a message is delivered is not guaranteed, so the order in which messages are delivered is also not guaranteed. This non-determinism introduces interleaving and parallelization and subsequently a new source of software defects like race conditions. In this thesis, we have explained a new approach to testing a given component for identifying software faults related to the order in which messages are received by that component. We reorder messages coming to a certain component and deliver them in a different distinct ordering each time. We have three different methods for achieving message reordering: Blocking, Buffering, and Adaptive Buffering. We evaluate the effectiveness of our new testing methods using four metrics: Ordering Coverage, Coverage Rate, Slowdown Overhead, and Memory Overhead. We have implemented our Reordering Framework on QNX Neutrino 6.5.0 and compared our reordering methods with each other and with the naive random case using our experiments. We have also showed that our testing approach applies to real programs and can reveal real bugs in software.
机译:对于开发软件的每个人来说,提高软件工件和产品的质量是一项必不可少的活动。测试是一种揭示软件缺陷和故障的方法。近年来,由于分布式系统,嵌入式系统等的兴起,消息传递系统已经有了很大的发展。在消息传递系统中,组件通过发送和接收消息相互通信。由于不能保证传递消息的时间,因此这种消息传递机制为测试程序引入了新的机会,因此也不能保证传递消息的顺序。这种不确定性引入了交织和并行化,随后引入了新的软件缺陷源,例如竞争条件。在本文中,我们解释了一种测试给定组件的新方法,用于识别与该组件接收消息的顺序有关的软件故障。我们对到达某个组件的消息进行重新排序,并每次都以不同的不同顺序传递它们。我们使用三种不同的方法来实现消息的重新排序:阻塞,缓冲和自适应缓冲。我们使用四个指标评估新测试方法的有效性:订购覆盖率,覆盖率,降低的开销和内存开销。我们已经在QNX Neutrino 6.5.0上实现了我们的重排序框架,并使用我们的实验将我们的重排序方法彼此之间以及与天真的随机案例进行了比较。我们还表明,我们的测试方法适用于真实程序,并且可以揭示软件中的真实错误。

著录项

  • 作者

    Irannejad Milad;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种 en
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号