软件测试中的黑天鹅(二) 黑天鹅发生的前后

1.历史与三重迷雾

在“认识软件测试中黑天鹅”一文中,我描述了什么是软件测试中的黑天鹅及其特点,本文将 探讨测试中的黑天鹅发生之前、之后、以及正在发生之中的故事。 《黑天鹅》一书的作者Nassim指出“历史是模糊的。你 看到了结果,但看不到导致历史事件发生的幕后原因。”其实,测试何尝不是这样,假如把测试看成一个盒子,这个盒子也 是模糊的,你看不到盒子里面是什么,整个机制是如何运行的。 书中描述:“对待历史问题,人类思维会犯三个毛病,我 称之为三重迷雾。他们是:

假想的理解,也就是人们都以为自己知道在一个超出他们认知的更为复杂(或更具随机性)的世界中正在发生什么。

反省的偏差,也就是我们只能在事后评价事务,就像只能从后视镜里看东西(历史在历史书中比在经验现实中显得更加 清晰和有调理)。

高估事实性信息的价值,同时权威和饱学之士本身有缺陷,尤其是在他们进行分类的时候,也就是进行‘柏拉图化’的 时候。” 我很容易联想到,这三重迷雾分别对应测试中的黑天鹅发生之前、之后、以及黑天鹅形成之中的故事,即:发生 之前的“盲目预测”、发生之后的“假想解释”、以及黑天鹅形成之中的“柏拉图化”。

2.黑天鹅发生之前的“盲目预测”

“第一重迷雾就是我们以为我们生活的这个世界比它实际上更加可理解、可解 释、可预测”。打开收音机或电视机,你就会听到或看到,每天都有无数的人在信心满满地预测着各种各样的事情:股市的 走势、房价的走势、战争是否会爆发、疾病是否会流行……

正向Nassim指出的那样,“几乎所有关心事态发展的人 似乎都确信自己明白正在发生什么。每一天都发生着完全出乎他们预料的事情,但他们就是认识不到自己没有预测到这些事 。很多发生过的事情本来应该被认为是完全疯狂的,但在事情发生之后,看上去就没有那么疯狂。这种事后合理性在表面上 降低了事件的稀有性,并使事件看上去具有可理解性。”就拿我所生活的这座城市-上海来说,近来的许多事件都在证实着 这点:黄浦江上打捞出数千头病死猪、H7N9的流行,昨天突然看到一条“上海自来水中添加了XX”的微博更是令人触目惊心 ,我们内心都预测这些事情不应该发生,可是实际上却发生了。

这种黑天鹅发生之前的“盲目预测”让我想到软件 测试中版本发布之前的“测试评估(test evaluation)”。一个产品经过测试团队的集中测试后,发布到用户那里,谁能 准确预测是否会出现“黑天鹅”呢?在你的团队,在版本对外发布之前,是否需要测试团队填写一个关于产品质量的测试评 估表?下图是测试评估表的一个样例。

这里的特性指的是“测试特性(test feature)”。根据各团队上下文的不同,这个测试特性可能与开发特 性直接对应,也可能不与开发特性一一对应,每个测试特性对应一条到多条需求(用户需求或系统设计需求)。我最常看见 的质量评估说明是“XX特性基本功能正常。”有些人会在后面附上所发现的比较严重的bug。这样的描述显然并不令人满意 。

问题是:

每个特性质量的A/B/C/D的结论是否准确?所有特性的A/B/C/D的结论加一起又如何判别整个系统的质量?是否所有特性 的质量都是A或B,版本就可以对外发布,并且发布以后不会出现令人意想不到的“黑天鹅”现象?测试人员给出的A/B/C/D 有多大成分是基于一种feeling给出的?

对于任何一条需求,开发人员的任务就是实现它,无论是由一个项目组实现,还是多个项目组配合实现。但是,对于测 试人员,考虑的事情就复杂一些。我们除了要验证这条需求本身的功能实现是否正确,还要验证该需求和其它功能之间的交 互,还要考虑客户可能使用的各种场景(Scenario),包括各种组网场景、各种参数的配置等。如果把测试场景和测试特性 交互起来,测试就无穷无尽了,并且也没有必要在每一种测试场景下,都验证被测特性的基本功能、异常功能、与其它功能 的交互、非功能属性等各方面。如何设计更有效的、有限数目的用例尽量做到最大的测试覆盖,这属于另外一个话题,本文 不做探讨。

毫无疑问,尽管测试设计人员和测试执行人员精疲力尽的试图覆盖该特性的所有可能的场景,测试人员仍然只覆 盖了一小部分的场景下的该特性的部分测试用例,如果没有Fatal的遗留问题,是否该特性的质量就可以评价为A或B,并且 认为可以对外发布了呢?这种测试评估工作,与其说是让测试人员对被测对象的质量进行测试评价,不如说是让测试人员对 被测对象进行质量预测,因为测试人员所了解的只是部分信息,而不是全部。Nassim说“在这些错误的预测和盲目的希望中 ,有一些愿望的成分,但也有知识的问题。”我更愿意相信,测试人员对产品质量的预测主要是“知识的问题”,毕竟完整 测试是不可能的。 既然测试无法做到完整覆盖,不如在有限的时间和资源内,尽可能覆盖典型的场景,测试评估中针对已 经覆盖到的典型场景进行评估,具体地,James Bach和Michael Bolton在RST(Rapid Software Testing)课程里提出的三 步法可以供参考:

时间: 2024-09-12 11:05:42

软件测试中的黑天鹅(二) 黑天鹅发生的前后的相关文章

软件测试中的黑天鹅系列(一) 认识软件测试中的黑天鹅

1. 软件测试中的"黑天鹅" 几年前,我带领的一个测试小组遗漏了一个严重的bug到网上,当用户反馈这个bug后, 我们对它进行了深入的分析和重现,最终所有人一致认为,这个bug能够发生实在是机缘巧合,因为它需要多个条件同时发 生才有可能触发,比如"XX算法开关必须打开.XX算法开关又必须关闭.XX参数必须取某个特定值.用户的使用环境必须是 XX个场景.硬件必须是使用XX接口板.软件必须是XX版本.XX的带宽恰巧又不够...",在用户那里,这些条件有一条不 满足,就不

移动端微信中canvas会偶尔出现黑屏

问题描述 移动端微信中canvas会偶尔出现黑屏 在小米手机和魅族手机出现过 其它安卓手机也有可能会出现 但都不是必现 解决方案 微信浏览器被阉割过的,兼容性肯定没有原生的webkit浏览器好,还有你的canvas做了什么操作?

深度揭密SSD中的原片/白片/黑片:莫贪小便宜

   硬盘,拿来存储数据,存储单元绝对是核心元件.在固态硬盘内部,NAND即闪存颗粒是一种非易失性存储器,即断电后仍能保存数据,被大范围运用.它几乎占据了整个SSD制造成本的70%以上,不夸张地说,选SSD实际是在选择闪存颗粒. 先跟大家梳理一下SLC.MLC及TLC三种闪存差异: 根据闪存颗粒中单元存储密度的差异,闪存又分为SLC.MLC及TLC三种类型,SLC单层式存储,存储密度最低.写入数据时电压变化区间小,寿命最长,稳定性最好,多数应用高端企业级产品. MLC闪存,多层式存储,双层存储电

黑天黑地黑国际,黑帽大会这 20 个黑客演讲依然很燃

  雷锋网编者按:黑帽安全技术大会(Black Hat Conference)创办于 1997 年,被公认为世界信息安全行业的最高盛会,也是最具技术性的信息安全会议.值此 20 周年纪念日之际,雷锋网和你一起回顾黑帽大会上那些难忘的演讲和演示吧. 一.2000 年:全面披露和开源 黑帽大会举办多年后,才迎来第一个 High 翻全场的演讲嘉宾--Network Flight Recorder 公司 CEO Marcus Ranum.Ranum 将自己演讲的悬念留到了最后一刻,超过 1000 名观众

热播剧引争议,故事“黑”精神不“黑”

孔二狗的原著拥趸甚多,很多人都已经成为该剧忠实观众,就连没看过原著的观众也被这种题材和"网络自制剧"等标签吸引过去,这种前所未见的电视剧题材让观众们很过瘾,但不少人也有疑惑这种暴力题材也让播出了?昨日,记者也采访了相关业内人士. 打架粗口引来质疑 孔二狗的小说<东北往事>讲述了上世纪八十年代,东北某市几个青年打着除恶扬善的旗号,演出了一场残酷的故事,以及团伙触目惊心的发展历程. 网络剧集一直打着"忠实于原著"旗号,不过读过原著的读者都会发现,很明显由于题

网络自制剧故事“黑”精神不“黑”

孔二狗的原著拥趸甚多,很多人都已经成为该剧忠实观众,就连没看过原著的观众也被这种题材和"网络自制剧"等标签吸引过去,这种前所未见的电视剧题材让观众们很过瘾,但不少人也有疑惑这种暴力题材也让播出了?昨日,记者也采访了相关业内人士. 打架粗口引来质疑 孔二狗的小说<东北往事>讲述了上世纪八十年代,东北某市几个青年打着除恶扬善的旗号,演出了一场残酷的故事,以及团伙触目惊心的发展历程. 网络剧集一直打着"忠实于原著"旗号,不过读过原著的读者都会发现,很明显由于题

故事“黑”精神不“黑”

孔二狗的原著拥趸甚多,很多人都已经成为该剧忠实观众,就连没看过原著的观众也被这种题材和"网络自制剧"等标签吸引过去,这种前所未见的电视剧题材让观众们很过瘾,但不少人也有疑惑这种暴力题材也让播出了?昨日,记者也采访了相关业内人士. 打架粗口引来质疑 孔二狗的小说<东北往事>讲述了上世纪八十年代,东北某市几个青年打着除恶扬善的旗号,演出了一场残酷的故事,以及团伙触目惊心的发展历程. 网络剧集一直打着"忠实于原著"旗号,不过读过原著的读者都会发现,很明显由于题

网络水军叫嚣“想黑谁就黑谁”

本报记者张庆申 近日,山东省青岛市的一家网店店主很郁闷.因为业绩出众,遭到同行嫉妒并被持续恶评,她的网店的好评率受到严重影响. "我是被'网络打手'给黑了."她告诉<法制日报>记者. 记者调查发现,在这名网店店主所称的"网络打手"背后,是一支庞大的"网络水军".在这支"队伍"里,队员们通过发帖,在网上充当"网络推手"或者"网络打手",其行规就是"拿人钱财替人发帖&q

三角形问题-软件测试中的黑盒测试是怎样测试啊?

问题描述 软件测试中的黑盒测试是怎样测试啊? 三角形问题用黑盒测试方法进行测试,要求使用边界值测试.等价类测试.决策表测试.因果图测试法分别进行测试? 解决方案 等价类划分法 三角形ABC 三边 且 都为正数 且A+B大于C,,,, 有效等价类 和无效等价类 边界值同理,是在等价类的基础上,选取一些有代表性的边界数值进行测试 解决方案二: 等价类划分法 三角形ABC 三边 且 都为正数 且A+B大于C,,,, 有效等价类 和无效等价类 边界值同理,是在等价类的基础上,选取一些有代表性的边界数值进