软件测试架构实践与精准测试——浅析风险与测试

1、什么是风险


在讲解基于风险的测试设计之前,我们先要了解一个概念:什么是风险。即可能存在的问题或有可能发生的事件。也就是说:在某一特定的环境下,在某一特定的时间内,某种损失产生的不可预料的后果。风险是潜在的,只有具备了一定条件才可能发生,但是也不一定成为现实,还需要达到一定的触发条件,风险才能真正产生,如图7-1所示,图中的低头族们正在全神贯注地玩手机、Pad时,没有注意周围的环境变化让自己掉进马路边的窨井里面,或者是被天上的不名物砸伤自己,这就是风险。这些情况都是我们无法预知的,但是这些情况一旦发生,就变成了事件或现实。

软件测试架构实践与精准测试——浅析风险与测试

风险一旦变成现实,就会给人们造成各种损失。有了风险,我们就会考虑风险的影响程度是多少,是否造成较大的损失等。为了减少和避免这种损失,人们开始设法避免、减轻和转移风险。

产生风险的因素多种多样,只要风险因素具备并达到触发风险的条件,风险就会产生。由于风险是无形的,它不以人的主观意志为转移,为了减少和避免风险,就必须及时发现并减少或消除可能导致的风险的因素。完全避免风险是不可能的,那么,风险具有哪些特性呢?

接下来将介绍风险具备的的4种特性:不确定性、有害性、客观性和无形性。

●不确定性:一定发生的事件不是风险,不会发生的事件也不是风险。风险是潜在的,只有具备了一定条件才可能发生,这样的条件是转化条件,风险也不一定演变为现实。只有具备了另外一些条件,风险才会真正发生,这样的条件较触发条件。

●有害性:如果风险变成了现实,就会给人们造成了各种损失。不带来负面后果或影响的事件不是风险。风险的有害性提醒人们必须设法避免、减轻和转移风险。

●客观性:风险的产生取决于产生风险的各种因素。也就是说,不管是否意识到风险,只要产生风险的各种因素出现了,风险就会产生,它不以人的主观意志为转移。

●无形性:风险不像一般的物质实体,能确切地进行描绘和刻画。分析风险,一般是从定性和定量两个方面结合进行分析。分析中需要用到概率等概念进行界定、估计和测算。虽然风险的无形性增加了识别和把握风险的难度,但是只要认真查清产生风险的内外因素,恰当地应用定量的方法和手段,标志和度量风险还是可能的。

2、风险与测试的关系

上面的内容说明风险是无处不在的,那么在产品测试过程中也不可避免的存在着各种各样的风险。为了更顺利地完成测试测试之前要对测试过程中的风险进行评估,分析出风险带来的危害并给出预防措施和解决方案。当然,在避免了一种风险时,另一种风险可能会随之产生。在测试过程中,其风险和测试(例如测试工作量)之间的关系类似于线性的关系,体现的测试的思想是:测试任何内容,都将会降低测试对象的风险。如图7-2所示。也就是,在测试过程中,我们测试的越全面,风险就越小。


软件测试架构实践与精准测试——浅析风险与测试

但是,在实际的软件测试过程中,二八法则可能更符合风险和测试之间的关系:测试对象80%的风险来自于20%的功能。因此,风险和测试之间的关系应该更类似图7-3所示的曲线。

软件测试架构实践与精准测试——浅析风险与测试

从图7-3可以看出,测试人员应该采取一个更加合理的优化测试工作量分配的测试策略,从而减少风险。但是,不管测试人员人员开展多少测试工作,也不可能完全消除测试对象中的风险。因此,测试对象的发布,需要评估利益相关者可以接受的风险程度。

假如将测试作为投资,图7-3所示的测试策略可以理解为:在达到可接受的风险程度的前提下,应该寻求最小的测试工作量。也就是说,测试人员需要首先关注的是图中的阴影区域。这就是基于风险的测试的核心思想。

将图7-2和7-3合并之后,基于风险的测试的优势将更加明确的显示出来:假如测试人员基于风险进行测试优先级的划分,并将测试工作量首先放在高风险和高优先级的区域,那么覆盖测试对象50%的风险需要付出的工作量要少得多,如图7-4所示。

软件测试架构实践与精准测试——浅析风险与测试

●作者李龙,山东织雀信息科技有限公司负责人,织雀教育首席讲师,中国民主同盟盟员,北京人文大学云测学院院长、高工,国内软件测试“川模型”的提出者,全国大学生软件测试大赛评审委员会专家,致力于软件测试人才培养


分享到:


相關文章: