摘录自《探索式软件测试》(注:作者模仿了圣经十诫的语气和内容编写了软件测试戒律)
1.汝应用大量输入反复锤炼汝之应用程序
2.汝应贪图汝之邻居的应用程序
3.汝应亲自寻找睿智的预言家
4.汝不应崇拜无法重现的失效
5.汝应尊重汝的模型和自动化测试
6.汝应利用开发人员的过错与他们作对
7.汝应醉心于谋杀应用程序(庆祝蓝屏吧)
8.汝应保持安息日(指产品发布时刻)的圣洁
9.汝应贪图开发人员的源代码
以下内容主要来自《探索式软件测试》,本人根据自己的理解对部分内容稍作了修改
3.汝应亲自寻找睿智的预言家
我们都知道,测试至少存在两个部分。首先我们使用输入数据,然后对结果进行检查。我们将数据输入到软件中,然后测试该软件是否按照既定的方式回应这些输入。如果我们无法对结果进行验证,测试就无法有效进行。
关于所谓睿智的预言家,我们有兴趣的是“应用某些测试后,该应用程序是否按照既定的方式运行?”。这就需要我们的预言家(也就是测试的基准)清楚的了解在给定特定的输入和环境条件组合的情况下,程序应有的行为。(博主的理解:即要事先知道你要执行的测试会有怎样的预期结果,博主更愿意把这个预言家叫做预期结果。如果不知道预期结果,你也就无法判断程序返回的结果是不是正确。)
将测试基准进行自动化是一件很困难的事,但是很值得去最求,因为这不仅仅可以创建一个很有价值的测试工具,其本身也是一个启迪智慧的追求过程。即通过自动化的活动,你得到了一个更加聪明的测试者。无论你最终能否成功地将测试基准自动化,强迫自己像它一样思考,常常比你可能选择做的其他任何事情更有工作效率。
4.汝不应崇拜无法重现的失效
我们都曾遇到这种情况,不是吗?你遇到一个缺陷,通常是很好的缺陷,但是却无法重现。缺陷越好,你的感觉越不好。我曾经见过许多优秀的测试人员,花了数小时甚至数天的时间试图重现一个他们只见过一次的缺陷。
为了重现这样一个缺陷的尝试通常是英勇的,但是没有合适的工具,这些尝试只能是浪费时间。而我看到的情况是时间被白白浪费了,而测试人员却没有意识到这点。我曾经看到一个测试人员花了一整天的时间试图记起一个崩溃缺陷的重现步骤,但是没有成功。我更愿意那个测试人员把他的时间用在其它更好的地方。和其它任何一个测试人员一样,我完全理解那种挫败的感觉,但是最求一个这样的缺陷的结果往往是无法充分利用时间。
这条戒律的教育意义是双重的。第一、尽你最大努力注意并记住(或记录下来)对软件采取的测试步骤,同时记住应用程序的响应。第二、考虑使用调试器之类能追踪动作和软件状态的工具。这将去除重现缺陷时不少猜测成分,并防止优秀的测试人员违背这条戒律。
博主理解:纵观全文,这条戒律的教育意义应该是有三重的,最后一条作者在前面提到了,但并没有在最后的归纳中写下
1、努力记录步骤和结果
2、尽量使用工具辅助
3、如果重现太困难,不要在它上面浪费太多时间,将你的时间投入到其它更有效率的测试中。这样对项目总体是更好的选择。