首页> 外文OA文献 >Prioritizing Program Elements: A Pre-testing EffortudTo Improve Software Quality
【2h】

Prioritizing Program Elements: A Pre-testing EffortudTo Improve Software Quality

机译:优先考虑程序元素:预测试功能改善软件质量

摘要

Test effort prioritization is a powerful technique that enables the tester to effectively utilize the test resources by streamlining the test effort. The distribution of test effort is important to test organization. We address prioritization-based testing strategies in order to do the best possible job with limited test resources. Our proposed techniques give benefit to the tester, when applied in the case of looming deadlines and limited resources. Some parts of a system are more critical and sensitive to bugs than others, and thus should be tested thoroughly. The rationale behind this thesis is to estimate the criticality of various parts within a system and prioritize the parts for testing according to their estimated criticality. We propose several prioritization techniques at different phases of Software Development Life Cycle (SDLC). Different chapters of the thesis aim at setting test priority based on various factors of the system. The purpose is to identify and focus on the critical and strategic areas and detect the important defects as early as possible, before the product release. Focusing on the critical and strategic areas helps to improve the reliability of the system within the available resources. We present code-based and architecture-based techniques to prioritize the testing tasks. In these techniques, we analyze the criticality of a component within a system using a combination of its internal and external factors. We have conducted a set of experiments on the case studies and observed that the proposed techniques areudefficient and address the challenge of prioritization. We propose a novel idea of calculating the influence of a component, where in-fluence refers to the contribution or usage of the component at every execution step. This influence value serves as a metric in test effort prioritization. We first calculate the influence through static analysis of the source code and then, refine our workudby calculating it through dynamic analysis. We have experimentally proved that decreasing the reliability of an element with high influence value drastically increasesudthe failure rate of the system, which is not true in case of an element with low influence value. We estimate the criticality of a component within a system by consideringudits both internal and external factors such as influence value, average execution time, structural complexity, severity and business value. We prioritize the componentsudfor testing according to their estimated criticality. We have compared our approach with a related approach, in which the components were prioritized on the basis of their structural complexity only. From the experimental results, we observed that our approach helps to reduce the failure rate at the operational environment. The consequence of the observed failures were also low compared to the related approach. Priority should be established by order of importance or urgency. As the importance of a component may vary at different points of the testing phase, we propose a multi cycle-based test effort prioritization approach, in which we assign different priorities to the same component at different test cycles. Test effort prioritization at the initial phase of SDLC has a greater impact than that made at a later phase. As the analysis and design stage is critical compared to other stages, detecting and correcting errors at this stage is less costly compared to later stages of SDLC. Designing metrics at this stage help the test manager in decision making for allocating resources. We propose a technique to estimate the criticality of a use case at the design level. The criticality is computed on the basis of complexity and business value. We evaluated the complexity of a use case analytically through a set of data collected at the design level. We experimentally observed that assigning test effort to various use cases according to their estimated criticality improves the reliability of a system under test. Test effort prioritization based on risk is a powerful technique for streamlining the test effort. The tester can exploit the relationship between risk and testingudeffort. We proposed a technique to estimate the risk associated with various states at the component level and risk associated with use case scenarios at the systemudlevel. The estimated risks are used for enhancing the resource allocation decision. An intermediate graph called Inter-Component State-Dependence graph (ISDG) isudintroduced for getting the complexity for a state of a component, which is used for risk estimation. We empirically evaluated the estimated risks. We assigned test priority to the components / scenarios within a system according to their estimated risks. We performed an experimental comparative analysis and observed that the testing team guided by our technique achieved high test efficiency compared to a related approach.
机译:测试选拔优先级排序是一项强大的技术,可以使测试人员通过简化测试选拔来有效地利用测试资源。测试结果的分布对测试组织很重要。我们处理基于优先级的测试策略,以便在有限的测试资源下尽最大可能。当在迫在眉睫的期限和有限的资源中应用时,我们提出的技术将使测试人员受益。系统的某些部分比其他部分更重要且对错误更敏感,因此应进行全面测试。本文的理论基础是估计系统中各个部分的关键性,并根据估计出的关键性对测试的优先级进行排序。我们在软件开发生命周期(SDLC)的不同阶段提出了几种优先化技术。本文的不同章节旨在根据系统的各种因素设置测试优先级。目的是在产品发布之前,尽早识别并关注关键和战略领域,并尽早发现重要缺陷。关注关键和战略领域有助于在可用资源范围内提高系统的可靠性。我们提出了基于代码和基于体系结构的技术来对测试任务进行优先级排序。在这些技术中,我们使用内部和外部因素的组合来分析系统中组件的重要性。我们对案例研究进行了一系列实验,发现所提出的技术是有效的,并且可以解决优先级排序的难题。我们提出了一种计算组件影响的新颖想法,其中影响指的是每个执行步骤中组件的贡献或使用。此影响值可作为测试评估优先级的度量。我们首先通过对源代码的静态分析来计算影响,然后通过动态分析来对工作进行优化。我们已经通过实验证明,降低具有高影响力值的元件的可靠性会大大增加/降低系统的故障率,而对于具有低影响力值的元件而言,情况并非如此。我们通过考虑内部和外部因素(例如影响值,平均执行时间,结构复杂性,严重性和业务价值)来评估系统中组件的关键性。我们根据估计的关键程度确定测试的优先级。我们将我们的方法与相关方法进行了比较,在相关方法中,仅根据组件的结构复杂性对其进行了优先排序。从实验结果来看,我们观察到我们的方法有助于降低操作环境下的故障率。与相关方法相比,观察到的故障的后果也很低。应按重要性或紧迫性顺序确定优先级。由于组件的重要性可能会在测试阶段的不同时刻发生变化,因此我们提出了一种基于多周期的测试筛选优先级排序方法,在该方法中,我们在不同的测试周期为同一组件分配了不同的优先级。 SDLC初始阶段的测试选择优先级比随后阶段的测试优先级更大。由于分析和设计阶段与其他阶段相比至关重要,因此与SDLC的后续阶段相比,在此阶段检测和纠正错误的成本较低。在此阶段设计度量标准可以帮助测试经理做出分配资源的决策。我们提出了一种在设计级别上评估用例关键性的技术。关键程度是根据复杂性和业务价值计算的。我们通过在设计级别收集的一组数据来分析评估用例的复杂性。我们通过实验观察到,根据估计的关键程度将测试分配给各种用例可以提高被测系统的可靠性。基于风险的测试方法优先级排序是简化测试方法的强大技术。测试人员可以利用风险与测试之间的关系。我们提出了一种在组件级别估计与各种状态相关的风险以及在系统 ud级别估计与用例场景相关的风险的技术。估计的风险用于增强资源分配决策。引入了称为组件间状态依赖图(ISDG)的中间图,以获取组件状态的复杂度,该状态图用于风险估计。我们根据经验评估了估计的风险。我们根据估计的风险为系统中的组件/场景分配了测试优先级。我们进行了实验比较分析,发现与相关方法相比,在我们的技术指导下的测试团队实现了较高的测试效率。

著录项

  • 作者

    Ray Mitrabinda;

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

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号