不对所有可能性进行软件测试的原因

发表于:2012-9-27 14:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:宋锐译    来源:51Testing软件测试网采编

  2、测试最多只是采样

  由于我们无法测试所有的可能性,所以任何实际的测试集都是某种程度的样本--以某种方式代表整个可能测试集合的一个部分或者片段。我们理所当然地希望它是一个良好的代表,但这就会带来一个问题:“对谁而言是良好的?”本质上,采样也是一个心理过程,而且也是一个感性过程。令某人满意的样本也许会让另一个人觉得一点儿也不满意。

  那么我们如何决定采哪些样?我们如何知道是否获取了足够大的样本来充分代表所有情况?我们如何知道是否获得了合适的样本?

  当我和同事Elisabeth Hendrickson思考这一问题的时候,刚好在新墨西哥州的佩科斯峡谷遇到了一场暴雨。我住处门廊外面挂了一个雨量计,它通过上端的一个小开口来对雨水进行采样。当时的雨是散得很开的大

  雨滴,每隔几秒钟就会落下一阵。这个雨量计也许在西雅图是比较合适的,因为它在连绵几个小时的细雨中可以工作得很好。但是当佩科斯的暴雨在下了十分钟后停下来时,雨量计的底部完全是干的,与下了雨的事实完全不符。

  但是Elizabeth和我是亲眼看着下的雨,实际上,我们都被淋透了。我们马上认识到这个雨量计在暴雨持续的那几分钟内没能对隔着几英寸落下的巨大雨滴进行充分的采样。Elizabeth看着我还在滴水的胡子说:“作为雨量计而言,你比走廊上的那个更好。”

  请注意情况也可能刚好相反。如果刚才那些巨大的雨滴中有一两滴刚好落进了那个小开口,雨量计也许就会表示降雨量达到了四分之一英寸,而这同样是不准确的。我们在测试中经常会看到相同的现象:我们取少量的样本--到处尝试一下--然后对整个产品中问题的密度做出过低或者过高的报告。

  3、信息的成本可能超过无知的成本

  不可能进行穷举测试导致我们要在两个难以达到的,但是同样吸引人的目标之间进行取舍:

  1)我们希望测试能够覆盖所有令人感兴趣的条件。

  2)我们希望将测试集减小到可以管理、可以承受的程度。

  要理解第一个目标的含义,不妨考虑一下有多少次测试人员并不是在寻找某种类型的缺陷,却碰巧发现了这种致命缺陷。他们发现这个缺陷的原因只是运气好(如果他们不想知道这个缺陷的话,就是运气不好),而不是由于他们正在执行一组精心设计的用于发现这个特定问题的测试。缺陷就这样出现了,就像是葡萄干麦片中出现一只蚂蚁。但这完全只是运气吗?有没有某种心理学方法可以帮助确定如何才能发现更多的这种令人吃惊的缺陷?我相信拓展我们对测试的看法可以提供部分答案。

  4、我们也许可以用较少的测试获取更多的信息

  最近,很多和我交谈过的人都很关注前述的第二个目标,也就是将测试集减小到可以管理、可以承受的程度。他们被要求或者被命令要在测试队伍更小而责任更大的条件下生存甚至是发展。

  有人给我讲过一个比较极端的情况:有名测试人员向顾问寻求建议,如何处理一个左右为难的局面:“我们的测试团队刚刚从30人减小到了3人,而且还要'确保'这个产品。我如何确定该测试哪些东西?”

  有一种观点认为测试人员不能“确保”任何事,所以他们根本就不应该进行尝试。但是这样的观点无法说服任何一名正在艰难的经济条件下努力保持公司运行的管理人员。那么该怎么办?无可否认,减小后的团队无法完成更大的团队本来可以完成的所有事,但是可以在他们可能进行的测试中加以选择,可以找出让有限的资源得到最佳利用的那些测试。

  顾问给出的建议提供了很好的基础:“首先,要认识到任何测试集都是一种采样方法。然后,无论你有多少资源,都要尽可能选择那些具有最强代表性的测试集。”

  5、测试自助餐

  想象一下你站在一张长长的桌子前,桌子上摆满了用例、边界条件、兼容性测试、交互测试、权限矩阵等,手上拿着一个盘子。测试自助餐允许就餐者在点餐桌前走两三个来回,所以你知道自己必须做出明智的选择。你该怎么做?

  如果你曾经看到过其他人在真正的自助餐中面对这样的场景,就会知道不同个性的人会用不同的方法来解决这个问题。有些人会对餐厅领班或者服务员抱怨盘子太小,并在整个就餐过程中发牢骚,让其他人也没了食欲。有些人则会转身愤怒地走开,因为他们认为不应该限制他们吃的食物量。

  有些人则会从食物队列的开头开始,用他们最先遇到的两道喜欢的菜装满盘子。这样做明智吗?在餐馆中也许是明智的,但在使用有限的资源进行测试时恐怕不是。

  在面对无法完成的测试任务集时(实际上这是测试中总会遇到的情况),从头开始进行,看看在分配的时间内测试能够进行到哪一步的做法可能是很有诱惑力的。另一种做法则是从整个特性集中选择那些简单的、可以很快完成的测试。两种方法对测试人员而言都是很方便的,但它们是否为测试提供了足够的食物?

  要进行良好的测试,测试人员就必须注意到有限的测试、资源和时间带来的限制。测试人员还必须注意自己的个性,也就是他们选择自助餐的方式。

  经理们也需要注意这些限制和倾向。无论你有多喜欢“穷举”测试的奢华,都不要期望测试人员能够对测试加以“穷举”。你必须接受让自己的食欲以某种受控的方式得到满足。

  小结

  本质上,任何特定的候选产品上可以进行的测试数目都是无限的。经理们和测试人员必须尽力了解采样给测试过程带来的风险,而不是要求执行“所有的”测试。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号