首页 / 软件开发 / 数据结构与算法 / 软件测试中的黑天鹅(三) 测试的平均斯坦与极端斯坦
软件测试中的黑天鹅(三) 测试的平均斯坦与极端斯坦2013-11-30 infoq 邰晓梅1. 突破性与非突破性《黑天鹅》里谈到了突破性与非突破性的概念。这世界上有些职业的 收入是不具突破性的,比如面包师、咨询师、按摩师、牙医等等,其收入受到既定时间内所服务的客人的数量 的限制,这种工作在很大程度上是可以预测的,面包师必须为每一位客户烤出新面包,不论他出售的面包单价 有多贵,其收入总是受到限制的。而另外一些职业如录音师、电影演员、作家、投机师等等,他们只 需花费单次的投入而不必过多劳动就有可能使得收入后面增加几个零,《哈利·波特》的作者不必每次有读者 想读这本书的时候就得为其重写一遍,这种职业属于收入具有突破性的职业。仔细想想,就会发现, 突破性的工作往往是那些更擅长运用和组织创造性思维和创新技术的工作,而不那么具有突破性的部分往往可 以被剥离出去,交给那些按照计件取酬、或按时取酬的人去做。测试是否是具有突破性的工作?这个 不能一概而论,测试的范畴太大了,包含了太多的内容,我们在后面的部分会持续讨论这个话题。2. 平均斯坦与极端斯坦这种突破性与非突破性的差异与另外两个概念有关:平均斯坦与极端斯坦。人的身高、体重等物理属性是不具有突破性的,体现的是一种叫做“平均斯坦(Mediocristan)”的 现象。拿《黑天鹅》里的例子为例:假如从普通人群里随机挑选1000人并排站着,然后把你能想到的最重的人 加入样本,假设他的体重是平均体重的5倍,在总体重中也不过占了0.5%而已,假设你挑选了10000人,他的体 重所占比例几乎可以忽略不计。“在理想的平均斯坦,特定事物的单独影响很小,只有群体影响才大。”实际 上,对于平均斯坦而言,“当样本量足够大时,任何个例都不会对整体产生重大影响。”而人的收入 是具有突破性的,体现的是一种叫做“极端斯坦(Extremistan)”的现象。假如考虑的是这1000个人的收入 ,如果把比尔·盖茨放入样本,那么他的资产占总资产的比例是多少?可能所有其他1000人资产总和也不过是 比尔·盖茨的资产的零头。在极端斯坦,个体对整体产生的作用是具有突破性的,可以产生不成比例的影响。 值得注意的是,“极端斯坦能够制造黑天鹅现象”。对软件测试而言,由于黑天鹅的影响巨大,我们 需要时刻注意区分,哪些是极端斯坦的问题,哪些是平均斯坦的问题,并利用我们收集到的信息,帮助判断如 何避免黑天鹅现象的发生、或者是促成黑天鹅现象的发生。3. 测试里的平均斯坦关键字:平 均斯坦,大数定律,N的平方根定律假如你是一名测试经理,每天有无数的数据涌入你的大脑,你需要 学会如何判断和使用这些数据,来帮助你更好的管理你的测试项目。假如你需要为一个新的测试项目 制定一个测试计划,你需要先做测试估计,这个项目需要投入多少测试人月?大概能执行多少个手工测试用例 ?测试计划、测试设计、测试执行的时间大概各占多少?等等。有一种做法是参考这个产品的各历史版本的产 品规模和测试投入情况,从而估算出当前版本的测试投入。当你这么做的时候,你要知道:你面对的是一个平均斯坦的问题;也许某个历史版本的数据显得异常突出(偏大或偏小),但你不必特别在意,甚至估算的时候会忽略掉这 些畸点数据;你估算的准确程度受所选择的历史样本数据量的影响,如果你只有一个历史版本可供参考,你估算的偏差 可能会很大;你关心的是这些数据总体上对你要做的决策的参考价值,而不是在追求一个绝对准确的估计值,因为你知 道,不论你多么努力,都不可能制定一个绝对准确的测试计划。类似的平均斯坦的例子有,如果你想了解你的测试团队平均生产力,比如“日执行用例数”、“日设计用 例数”、“日提交问题单数”等等,你不妨观察一段时间,记录数据,算个平均值。当然,你这么做是因为你 此时更关注集体事件、平均事件、常规事件和已预测到的事件对你的影响,并且容许有一定的误差存在。Gerald M. Weinberg在《An Introduction to General Systems Thinking》里谈到的“大数定律”与 平均斯坦有关。19世纪的物理学家希望研究瓶子里空气分子的运动,他们没有办法搞明白每一个分子的运动情 况,因为分子的数量实在是太大了,而不得不假设他们所感兴趣的观察特性是大量分子的一些平均特性,而不 是其中任何个体的特性。由于分子的数量特别大,他们的研究也满足所谓的“大数定律”:观测样本的数目越 多,观测值越接近于预测的平均值。而Schr.dinger更是给出了预测准确程度的“N的平方根定律”: