首页> 外文OA文献 >Efficient branch and node testing
【2h】

Efficient branch and node testing

机译:高效的分支和节点测试

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Software testing evaluates the correctness of a program’s implementation through a test suite. The quality of a test case or suite is assessed with a coverage metric indicating what percentage of a program’s structure was exercised (covered) during execution. Coverage of every execution path is impossible due to infeasible paths and loops that result in an exponential or infinite number of paths. Instead, metrics such as the number of statements (nodes) or control-flow branches covered are used.ududNode and branch coverage require instrumentation probes to be present during program runtime. Traditionally, probes were statically inserted during compilation. These static probes remain even after coverage is recorded, incurring unnecessary overhead, reducing the number of tests that can be run, or requiring large amounts of memoryududIn this dissertation, I present three novel techniques for improving branch and node coverage performance for the Java runtime. First, Demand-driven Structural Testing (DDST) uses dynamic insertion and removal of probes so they can be removed after recording coverage, avoiding the unnecessary overhead of static instrumentation. DDST is built on a new framework for developing and researching coverage techniques, Jazz. DDST for node coverage averages 19.7% faster than statically-inserted instrumentation on an industry-standard benchmark suite, SPECjvm98.ududDue to DDST’s higher-cost probes, no single branch coverage technique performs best on all programs or methods. To address this, I developed Hybrid Structural Testing (HST). HST combines different test techniques, including static and DDST, into one run. HST uses a cost model for analysis, reducing the cost of branch coverage testing an average of 48% versus Static and 56% versus DDST on SPECjvm98.ududHST never chooses certain techniques due to expensive analysis. I developed a third technique, Test Plan Caching (TPC), that exploits the inherent repetition in testing over a suite. TPC saves analysis results to avoid recomputation. Combined with HST, TPC produces a mix of techniques that record coverage quickly and efficiently.ududMy three techniques reduce the average cost of branch coverage by 51.6–90.8% over previous approaches on SPECjvm98, allowing twice as many test cases in a given time budget.
机译:软件测试通过测试套件评估程序实施的正确性。使用覆盖率指标评估测试用例或套件的质量,该覆盖率指标指示在执行过程中执行(覆盖)程序结构的百分比。由于不可行的路径和循环会导致指数或无限数量的路径,因此无法覆盖每个执行路径。而是使用诸如所覆盖的语句(节点)数或控制流分支数之类的度量。 ud udNode和分支覆盖率要求在程序运行时出现检测探针。传统上,探针是在编译过程中静态插入的。这些静态探针即使在记录了覆盖范围之后仍会保留,从而导致不必要的开销,减少了可以运行的测试数量或需要大量的内存 ud ud。在本文中,我提出了三种新颖的技术来提高分支和节点的覆盖性能。 Java运行时。首先,需求驱动的结构测试(DDST)使用动态插入和移除探针,以便在记录覆盖范围后可以将其移除,从而避免了静态仪器的不必要开销。 DDST建立在开发和研究覆盖技术的新框架Jazz的基础上。 DDST的节点覆盖率平均比行业标准基准测试套件SPECjvm98上的静态插入仪器快19.7%。 ud ud由于DDST的成本较高,所以没有一种分支覆盖技术在所有程序或方法中都能表现最佳。为了解决这个问题,我开发了混合结构测试(HST)。 HST将一项测试(包括静态测试和DDST测试)结合在一起。 HST使用成本模型进行分析,从而在SPECjvm98上将分支机构覆盖测试的成本与静态测试相比平均降低了48%,与DDST相比平均降低了56%。 ud udHST由于昂贵的分析而从未选择某些技术。我开发了第三种技术,即测试计划缓存(TPC),该技术在套件测试中利用了固有的重复性。 TPC保存分析结果以避免重新计算。 TPC与HST结合使用,产生了多种技术组合,可以快速而有效地记录覆盖范围。 ud ud与SPECjvm98上的先前方法相比,我的三种技术使分支覆盖范围的平均成本降低了51.6–90.8%,从而在给定的测试用例中可以实现两倍的测试用例时间预算。

著录项

  • 作者

    Misurda Jonathan;

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

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号