首页> 外文学位 >Coverage-based testing strategies and reliability modeling for fault-tolerant software systems.
【24h】

Coverage-based testing strategies and reliability modeling for fault-tolerant software systems.

机译:面向容错软件系统的基于覆盖率的测试策略和可靠性建模。

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

摘要

Software permeates our modern society, and its complexity and criticality is ever increasing. Thus the capability to tolerate software faults, particularly for critical applications, is evident. While fault-tolerant software is seen as a necessity, it also remains as a controversial technique and there is a lack of conclusive assessment about its effectiveness.; This thesis aims at providing a quantitative assessment scheme for a comprehensive evaluation of fault-tolerant software including reliability model comparisons and trade-off studies with software testing techniques. First of all, we propose a comprehensive procedure in assessing fault-tolerant software for software reliability engineering, which is composed of four tasks: modeling, experimentation, evaluation and economics. Our ultimate objective is to construct a systematic approach to predicting the achievable reliability based on the software architecture and testing evidences, through an investigation of testing and modeling techniques for fault-tolerant software.; Motivated by the lack of real-world project data for investigation on software testing and fault tolerance techniques together, we conduct a real-world project and engage multiple programming teams to independently develop program versions based on an industry-scale avionics application. Detailed experimentations are conducted to study the nature, source, type, detectability, and effect of faults uncovered in the program versions, and to learn the relationship among these faults and the correlation of their resulting failures. Coverage-based testing as well as mutation testing techniques are adopted to reproduce mutants with real faults, which facilitate the investigation on the effectiveness of data flow coverage, mutation coverage, and fault coverage for design diversity.; Then, based on the preliminary experimental data, further experimentation and detailed analyses on the correlations among these faults and the relation to their resulting failures are studied. The results are further applied to the current reliability modeling techniques for fault-tolerant software to examine their effectiveness and accuracy.; Furthermore, to investigate some "variants" as well as "invariants" of fault-tolerant software, we perform an empirical investigation on evaluating reliability features by a comprehensive comparison between two projects: our project and NASA 4-University project. Based on the same specification for program development, these two projects encounter some common as well as different features. The testing results of two comprehensive operational testing procedures involving hundreds of thousands test cases are collected and compared. Similar as well as dissimilar faults are observed and analyzed, indicating common problems related to the same application in both projects. The small number of coincident failures in the two projects, nevertheless, provide a supportive evidence for N-version programming, while the observed reliability improvement implies some trends in the software development in the past twenty years.; Next, we investigate the effect of code coverage on fault detection which is the underlying intuition of coverage-based testing strategies. From our experimental data, we find that code coverage is a moderate indicator for the capability of fault detection on the whole test set. But the effect of code coverage on fault detection varies under different testing profiles. The correlation between the two measures is high with exceptional test cases, but weak in normal testing. Moreover, our study shows that code coverage can be used as a good filter to reduce the size of the effective test set, although it is more evident for exceptional test cases.; Finally, we formulate the relationship between code coverage and fault detection. Although our two current models are in simple mathematical formats, they can predict the percentage of fault detected by the code coverage achieved for a certai
机译:软件渗透到我们的现代社会中,其复杂性和重要性不断增加。因此,特别是对于关键应用程序,可以容忍软件故障的能力显而易见。尽管容错软件被认为是必要的,但它仍然是一个有争议的技术,并且缺乏关于其有效性的结论性评估。本文旨在提供一种定量评估方案,以对容错软件进行全面评估,包括可靠性模型比较和采用软件测试技术的权衡研究。首先,我们提出了一个用于软件可靠性工程的容错软件评估的综合程序,该程序包括四个任务:建模,实验,评估和经济学。我们的最终目标是通过研究容错软件的测试和建模技术,构建一种基于软件体系结构和测试证据来预测可达到的可靠性的系统方法。由于缺乏用于研究软件测试和容错技术的实际项目数据,我们进行了一个实际项目,并邀请多个编程团队根据行业规模的航空电子应用程序独立开发程序版本。进行了详细的实验,以研究程序版本中发现的故障的性质,来源,类型,可检测性和影响,并了解这些故障之间的关系以及其导致的故障之间的关系。采用基于覆盖率的测试以及突变测试技术来重现具有真实故障的突变体,这有助于研究数据流覆盖率,突变覆盖率和故障覆盖率对设计多样性的有效性。然后,基于初步的实验数据,对这些故障之间的相关性及其与导致的故障之间的关系进行了进一步的实验和详细分析。结果进一步应用于当前的容错软件可靠性建模技术,以检验其有效性和准确性。此外,为了研究容错软件的一些“变量”和“变量”,我们通过对两个项目(我们的项目和NASA 4大学项目)进行全面比较,对评估可靠性特征进行了实证研究。基于相同的程序开发规范,这两个项目遇到一些共同点以及不同点。收集并比较了涉及数十万个测试案例的两个全面的操作测试程序的测试结果。观察和分析相似和不同的故障,表明在两个项目中与相同应用程序相关的常见问题。然而,这两个项目中少数同时发生的故障为N版本编程提供了支持性证据,而观察到的可靠性提高则暗示了过去二十年来软件开发的一些趋势。接下来,我们调查代码覆盖率对故障检测的影响,这是基于覆盖率的测试策略的基本直觉。从我们的实验数据中,我们发现代码覆盖率是整个测试集故障检测能力的中等指标。但是代码覆盖率对故障检测的影响在不同的测试配置文件下会有所不同。两种方法之间的相关性在例外测试案例中较高,而在正常测试中则较弱。此外,我们的研究表明,代码覆盖率可以用作减少有效测试集大小的良好过滤器,尽管在例外测试案例中更为明显。最后,我们制定了代码覆盖率与故障检测之间的关系。尽管我们当前的两个模型都采用简单的数学格式,但是它们可以预测通过针对特定计算机实现的代码覆盖率检测到的故障百分比

著录项

  • 作者

    Cai, Xia.;

  • 作者单位

    The Chinese University of Hong Kong (Hong Kong).;

  • 授予单位 The Chinese University of Hong Kong (Hong Kong).;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2006
  • 页码 181 p.
  • 总页数 181
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

  • 入库时间 2022-08-17 11:40:23

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号