James Whittaker的软件测试戒律(二)

摘录自《探索式软件测试》(注:作者模仿了圣经十诫的语气和内容编写了软件测试戒律)

1.汝应用大量输入反复锤炼汝之应用程序

2.汝应贪图汝之邻居的应用程序

3.汝应亲自寻找睿智的预言家

4.汝不应崇拜无法重现的失效

5.汝应尊重汝的模型和自动化测试

6.汝应利用开发人员的过错与他们作对

7.汝应醉心于谋杀应用程序(庆祝蓝屏吧)

8.汝应保持安息日(指产品发布时刻)的圣洁

9.汝应贪图开发人员的源代码

以下内容主要来自《探索式软件测试》,本人根据自己的理解对部分内容稍作了修改

3.汝应亲自寻找睿智的预言家

我们都知道,测试至少存在两个部分。首先我们使用输入数据,然后对结果进行检查。我们将数据输入到软件中,然后测试该软件是否按照既定的方式回应这些输入。如果我们无法对结果进行验证,测试就无法有效进行。

关于所谓睿智的预言家,我们有兴趣的是“应用某些测试后,该应用程序是否按照既定的方式运行?”。这就需要我们的预言家(也就是测试的基准)清楚的了解在给定特定的输入和环境条件组合的情况下,程序应有的行为。(博主的理解:即要事先知道你要执行的测试会有怎样的预期结果,博主更愿意把这个预言家叫做预期结果。如果不知道预期结果,你也就无法判断程序返回的结果是不是正确。)

将测试基准进行自动化是一件很困难的事,但是很值得去最求,因为这不仅仅可以创建一个很有价值的测试工具,其本身也是一个启迪智慧的追求过程。即通过自动化的活动,你得到了一个更加聪明的测试者。无论你最终能否成功地将测试基准自动化,强迫自己像它一样思考,常常比你可能选择做的其他任何事情更有工作效率。

4.汝不应崇拜无法重现的失效

我们都曾遇到这种情况,不是吗?你遇到一个缺陷,通常是很好的缺陷,但是却无法重现。缺陷越好,你的感觉越不好。我曾经见过许多优秀的测试人员,花了数小时甚至数天的时间试图重现一个他们只见过一次的缺陷。

为了重现这样一个缺陷的尝试通常是英勇的,但是没有合适的工具,这些尝试只能是浪费时间。而我看到的情况是时间被白白浪费了,而测试人员却没有意识到这点。我曾经看到一个测试人员花了一整天的时间试图记起一个崩溃缺陷的重现步骤,但是没有成功。我更愿意那个测试人员把他的时间用在其它更好的地方。和其它任何一个测试人员一样,我完全理解那种挫败的感觉,但是最求一个这样的缺陷的结果往往是无法充分利用时间。

这条戒律的教育意义是双重的。第一、尽你最大努力注意并记住(或记录下来)对软件采取的测试步骤,同时记住应用程序的响应。第二、考虑使用调试器之类能追踪动作和软件状态的工具。这将去除重现缺陷时不少猜测成分,并防止优秀的测试人员违背这条戒律。

博主理解:纵观全文,这条戒律的教育意义应该是有三重的,最后一条作者在前面提到了,但并没有在最后的归纳中写下

1、努力记录步骤和结果

2、尽量使用工具辅助

3、如果重现太困难,不要在它上面浪费太多时间,将你的时间投入到其它更有效率的测试中。这样对项目总体是更好的选择。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-02 12:25:33

James Whittaker的软件测试戒律(二)的相关文章

James Whittaker的软件測试戒律(二)

摘录自<探索式软件測试>(注:作者模仿了圣经十诫的语气和内容编写了软件測试戒律) 1.汝应用大量输入重复锤炼汝之应用程序 2.汝应贪图汝之邻居的应用程序 3.汝应亲自寻找睿智的预言家 4.汝不应崇拜无法重现的失效 5.汝应尊重汝的模型和自己主动化測试 6.汝应利用开发者的过错与他们作对 7.汝应醉心于谋杀应用程序(庆祝蓝屏吧) 8.汝应保持安息日(指产品公布时刻)的圣洁 9.汝应贪图开发者的源码 下面内容主要来自<探索式软件測试>.本人依据自己的理解对部分内容稍作了改动 3.汝应亲

【转载】James Whittaker:经营成功的测试职业生涯

转注:这篇文章出自 James A. Whittaker ,但未找到原始出处/译者.如果有知道原始出处的朋友,可在评论这留言. 你是如何开始做测试工作的?  1989年,我在田纳西大学读研究生的时候,完成了从软件开发人员到软件测试人员的转型.而这一转型并非出于我自己的选择.我命运的改变发生在一个早晨,我的教授质问我为什么缺席那么多开发会议.我解释说因为会议被安排在星期六早上,很不方便. 而怍为一个生平第一次离开家的新入校的研究生,这个时间段有些麻烦.十分有意思的是,等待我的惩罚并不是一纸解聘通知

软件测试作业二——找出程序中的错误

一.软件程序中的错误 软件程序中的错误有三种:faults(故障), errors(错误), failures(失败). 软件故障(faults):软件中的静态缺陷. 软件错误(errors):不正确的内部状态,该状态是某个故障的表现. 软件失败(failures):与需求或其他期望行为的描述有关的,外部的,不正确的行为. 二.分析下列程序 程序一: public int findLast (int[] x,int y){ //Effects:If x==null throw NullPoint

软件测试(二)PICT的使用 组合测试方法(两两组合测试,可遍历组合测试)

一.两两组合测试 # # 两两组合测试 # PLATFORH: x86, ia64, amd64 CPUS: Single, Dual, QUad PAHL: 120MB, 1GB, 4GB, 64GB HDD: SCSI, IDE OS: NT4, Win2k, Winxp, Win2k3 IE: 4.0, 5.0, 5.5, 6.0 (如图输入) 得到结果(两两组合的结果): PLATFORH CPUS PAHL HDD OS IE amd64 Single 4GB SCSI Win2k 4

软件测试实验二——使用Selenium

In this Experiment, I used RunWith(Parameterized.class) to finish the task. Problems I met in this lab: 1. Install Selenium IDE in FireFox and add Selenium to my java project. Solution: (1)Selenium IDE:   (2) Selenium WebDriver: Download:http://www.s

软件测试(二)之 Failure, Error &amp; Fault

知识回顾 软件测试中的错误主要分为三种:Failure, Error 和 Fault. 下面就分析一下它们的不同: Fault的定义:可能导致系统或功能失效的异常条件(Abnormal condition that can cause an element or an item to fail.),可译为“故障”. Error的定义:计算.观察或测量值或条件,与真实.规定或理论上正确的值或条件之间的差异(Discrepancy between a computed, observed or me

软件测试实验二

2, (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示.(单词之间用空格隔开,如“Hello World My First Unit Test”): (2)编写单元测试进行测试: (3)用ElcEmma查看代码覆盖率,要求覆盖达到100%. import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.Collec

Software Testing Lab2 (软件测试实验二) —— Selenium安装及入门

Download and install Firefox browser If you are the user of WINDOWS, there is a link available for you. Download and install selenium&firebug There is the way that how I finish this step. Open Firefox, click the buttom like picture. Then, search sele

软件测试作业二

(1)findLast public int findLast (int[] x, int y) { //Effects: If x==null throw NullPointerException // else return the index of the last element // in x that equals y. // If no such element exists, return -1 for (int i=x.length-1; i > 0; i--) { if (x