...
首页> 外文期刊>Information and software technology >Exception handling analysis and transformation using fault injection: Study of resilience against unanticipated exceptions
【24h】

Exception handling analysis and transformation using fault injection: Study of resilience against unanticipated exceptions

机译:使用故障注入的异常处理分析和转换:针对意外异常的恢复能力研究

获取原文
获取原文并翻译 | 示例
           

摘要

Context: In software, there are the error cases that are anticipated at specification and design time, those encountered at development and testing time, and those that were never anticipated before happening in production. Is it possible to learn from the anticipated errors during design to analyze and improve the resilience against the unanticipated ones in production? Objective: In this paper, we aim at analyzing and improving how software handles unanticipated exceptions. The first objective is to set up contracts about exception handling and a way to assess them automatically. The second one is to improve the resilience capabilities of software by transforming the source code. Method: We devise an algorithm, called short-circuit testing, which injects exceptions during test suite execution so as to simulate unanticipated errors. It is a kind of fault-injection techniques dedicated to exception-handling. This algorithm collects data that is used for verifying two formal contracts that capture two resilience properties w.r.t. exceptions: the source-independence and pure-resilience contracts. Then we propose a code modification technique, called "catch-stretching" which allows error-recovery code (of the form of catch blocks) to be more resilient. Results: Our evaluation is performed on 9 open-source software applications and consists in analyzing 241 catch blocks executed during test suite execution. Our results show that 101/214 of them (47%) expose resilience properties as defined by our exception contracts and that 84/214 of them (39%) can be transformed to be more resilient. Conclusion: Our work shows that it is possible to reason on software resilience by injecting exceptions during test suite execution. The collected information allows us to apply one source code transformation that improves the resilience against unanticipated exceptions. This works best if the test suite exercises the exceptional programming language constructs in many different scenarios.
机译:上下文:在软件中,存在在规格和设计时会预料到的错误情况,在开发和测试时会遇到的错误情况,以及在生产之前从未预料到的错误情况。是否可以从设计过程中的预期错误中学习,以分析和提高对生产中意外错误的抵御能力?目标:在本文中,我们旨在分析和改进软件如何处理意外的异常。第一个目标是建立有关异常处理的合同以及自动评估它们的方法。第二个是通过转换源代码来提高软件的弹性能力。方法:我们设计了一种称为短路测试的算法,该算法会在测试套件执行期间注入异常,以模拟意外错误。这是一种专用于异常处理的故障注入技术。该算法收集用于验证两个正式合同的数据,该合同捕获了两个具有弹性的属性。例外:来源独立和纯弹性合同。然后,我们提出了一种代码修改技术,称为“捕获扩展”,它使(捕获块形式的)错误恢复代码更具弹性。结果:我们的评估是在9个开源软件应用程序上执行的,包括对在测试套件执行期间执行的241个catch块进行分析。我们的结果表明,其中101/214(占47%)具有我们的例外合同所定义的弹性,而其中84/214(占39%)可以转变为更具弹性。结论:我们的工作表明,可以通过在测试套件执行期间注入异常来推断软件的弹性。收集到的信息使我们能够应用一种源代码转换,从而提高了对意外异常的适应性。如果测试套件在许多不同的情况下都采用了出色的编程语言构造,则效果最好。

著录项

  • 来源
    《Information and software technology》 |2015年第1期|66-76|共11页
  • 作者单位

    University of Lille & Inria, Laboratoire d'Informatique Fondamentale de Lille (LIFL), Campus Scientifique, 59655 Villeneuve d'Ascq Cedex, France;

    University of Lille & Inria, Laboratoire d'Informatique Fondamentale de Lille (LIFL), Campus Scientifique, 59655 Villeneuve d'Ascq Cedex, France;

    University of Lille & Inria, Laboratoire d'Informatique Fondamentale de Lille (LIFL), Campus Scientifique, 59655 Villeneuve d'Ascq Cedex, France;

  • 收录信息
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    Dynamic verification; Contract; Exception handling; Fault injection;

    机译:动态验证;合同;异常处理;故障注入;

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号