发布时间:2025-10-17 11:25:04    次浏览
啄木鸟软件测试培训网:www.3testing.com本文来自:51Testing软件测试网采编6.6.6组合使用各种缺陷分析截至目前,我们已经介绍了5种缺陷分析技术。每一种缺陷分析技术,都能够从某些方面来对产品质量进行评估,总结见表6-16。 但是我们进行缺陷分析,并不满足只对产品质量的某一个方面进行评估,这就需要我们组合使用这些缺陷分析技术。图6-26是一个在产品中组合使用缺陷分析技术示意图。 这套组合策略隐含了一个条件,就是缺陷分析应该在测试项目中持续地活动,每个版本、每个测试层次,在产品发布时,都需要进行缺陷分析。在本书的第8章中,我们还将为大家详细叙述如何使用缺陷组合分析技术来进行产品质量评估。6.7 风险分析技术我们将风险分析技术用在保证测试策略的顺利进行和基于风险来加强或降低测试投入上,涉及的主要技术为风险识别、风险评估、风险应对和老功能分析。6.7.1 风险分析此处我们讨论的风险分析的对象是测试策略,目标是提前识别那些可能会阻塞测试策略顺利进行的问题,包括风险识别和风险评估两个部分。1. 风险识别我们可以根据测试策略的内容,逐一分析哪些问题可能会对测试策略的开展带来阻碍,并进行风险识别,具体的方法如图6-27所示。 Step3中不能满足的那些条件,就是我们寻觅的风险点。为了更好地说明问题,我们来看一个具体的例子。举例:对测试设计进行风险识别对测试设计活动进行风险识别:Step1:首先分析测试设计需要关注哪些内容。例如:· 需要对某个重要的特性进行深入的测试,需要能够通过路径分析法来对开发人员的设计流程进行全面的覆盖,不遗漏基本的流程。· 需要能够通过功能交互分析对功能间的相互作用进行深入的测试。· 需要能够进行压力、稳定性和性能方面的测试。Step2:分析上述内容都能够保质保量顺利地进行,需要哪些条件。例如:· 条件1:开发能够提供相关的设计材料(如相关的概要设计文档),并且能够保证材料的内容是正确的。· 条件2:有条件或者有机制能够保证开发人员和测试人员之间的有效沟通。· 条件3:测试人员对产品的使用场景、多个特性都有一定的理解,能够进行全面的功能交互分析。· 条件4:测试人员能够理解并掌握压力、稳定性和性能方面的,有能力结合测试方法和产品实现来进行测试设计。 Step3:逐一分析这些条件是否能够满足。假如条件1和条件4可能无法满足,那么识别出来的风险点就是:· 风险1:开发可能会缺失重要的设计文档,或者一些设计文档更新不及时。· 风险2:测试人员对压力、稳定性和性能方面的测试方法掌握不足,可能会出现测试设计遗漏。需要特别说明的是,虽然此处我们进行风险分析的对象是测试策略,围绕测试活动能否正常展开,但并不等于我们只在测试内部识别风险点——我们依然要从整个项目的角度来进行风险识别。我们可以使用表6-17风险识别清单,来帮助我们进行风险识别。表6-17 风险识别清单 2. 风险评估机会成本告诉我们,要想用有限的资源获得最大的收益,就需要我们优先处理最可能会发生、影响(如损失)最大的事件。这就需要我们对识别出来的风险点进行评估,确定风险优先级,然后优先处理高风险的问题。简言之,风险评估的目标就是确定风险优先级。1)风险优先级正交表我们可以从两个方面来进行风险评估,确定风险优先级,即风险发生频率和风险影响程度,如图6-28所示。 具体操作时,我们可以使用正交表(表6-18)来确定风险优先级。例如,某风险的风险发生频率为“中”,风险影响程度为“高”,根据“正交表”,对应的风险优先级就是“中高”。 接下来的问题是,我们该如何判定风险发生频率和风险影响程度是“高”“中”还是“低”呢?参考“风险识别清单”中的分类,我对其中部分的风险发生频率和风险影响程度进行了分析,供读者参考。2)需求类的风险需求类的风险主要表现在如下两点:· 需求的质量不高,不足以支撑后续开发和测试。· 开发和测试未能正确理解需求。上述风险一旦成了问题,可能导致返工或者需求变更,对设计、编码和测试都会有较大的影响,而且风险发生的概率也会比较高。因此,对需求类的风险,建议将它的风险的影响程度和风险发生频率设置为“高”,重点关注。3)设计类的风险设计类的风险主要集中在设计的正确性和全面性上。这些风险一旦成了问题,就是产品缺陷。换句话说,它们的风险发生频率总是很高的。并且比较麻烦的是,很多时候,一个风险最后会向系统引入很多缺陷。对测试而言,会增加测试的工作量,影响测试进度,影响产品质量。我们如何判断设计类的风险的风险影响程度呢?我们假设这些风险最后成了缺陷,对这些由风险引入的缺陷,我们评估一下:· 测试容易发现这些缺陷吗?· 开发修复这些缺陷的改动大吗?影响的功能模块多吗?· 测试容易验证这个缺陷吗?回归测试的工作量大吗?· 如果这个缺陷逃逸到了用户处,对用户的影响大吗?一般来说,测试难于发现的缺陷,风险的影响程度更高;基础的、底层的、共用的设计,风险的影响程度更高;需要特殊测试工具或复杂测试环境才能验证的,风险的影响程度更高;在用户处发生概率高、会对用户的业务造成严重影响的问题,风险的影响程度更高。4)流程类的风险由于大家都要遵循流程,所以流程类风险的风险发生频率往往很高,建议至少为中级。从风险影响程度的角度来说,会影响到团队合作,或是涉及规范性方面的风险,风险的影响程度更高,建议至少为中级。5)历史类的风险“历史总是会被一次次地重演”,历史类的风险也是一样的——历史上曾经发生过的问题,再次成为问题的风险依然很大。所以历史类的风险,风险发生的概率应该总是高的。历史类风险的风险影响程度,可以参考历史的风险影响程度来确定。6.7.2 风险应对在风险管理中,风险应对主要分为如下4种:· 回避风险:指主动避开损失发生的可能性。· 转移风险:指通过某种安排,将自己面临的风险全部或部分转移给其他一方。· 减轻风险:指采取预防措施,以降低损失发生的可能性和影响程度。· 接受风险:指自己理性或非理性地主动承担风险。下面是一个使用上述4种不同的方式进行风险应对的例子:“风险应对”举例:新需求在开发过程中不断被增加· “回避风险”的做法:置之不理。· “转移风险”的做法:将新需求外包。· “减轻风险”的做法:寻求额外资源或裁剪其他优先级低的需求。· “接受风险”的做法:将新需求加入项目范围,通过加班来完成新需求。对测试来说,可以结合风险和当前项目的实际情况,来选择合适的风险应对方案。此外,我也总结了一些项目中常见的风险和应对这些风险比较通用的思路,供读者参考(表6-19)。 我的淘宝课:https://item.taobao.com/item.htm?spm=2013.1.0.0.QQT3Eyid=534580861824buyerDetail=true顾翔凡言:安全测试将越来越越受到企业重视,并对测试人员要求越来越高。啄木鸟软件测试培训中心,主打五门课:初级:1,你也想成为软件测试工程师吗~软件测试基础教程中级:2,软件测试工程师必须掌握的技能~软件测试设计方法实战。高级:3,让你的程序跑得更快~软件性能测试4,让你找出更多的bug~探索式软件测试5,让用户迷上你的产品~用户体验式测试