《软件测试》第五章 阅读心得
上一篇 / 下一篇 2007-08-13 22:49:32 / 个人分类:读书笔记
这章标题是:Testing the Software with Blinders On。带上眼罩去测试软件,不是让你瞎测哦。主要讲的内容就是黑盒测试的技术。
4~*_f {1I&b0~N)w_&\0动态黑盒测试(Dynamic Black-Box Testing)51Testing软件测试网+v_$T(_7PN
51Testing软件测试网`jh7t#_8nx}&S也有叫行为测试(behavīoral Testing),功能测试(Functional Testing)。现在可能国内很多单位就真的是一个瞎子来测试软件,不是说那个测试人员是瞎子,是老板让他们变成了瞎子,为什么呢?因为可能大多数都缺少文档,我们需要的是软件的需求文档-Requirements Document(需求文档) or Product Specification(产品说明书)。
y3~%{iX(H F(}0'_Td V.?$z!B0测试用例(Test Case)。51Testing软件测试网RM c0Ywrj'a!A
51Testing软件测试网H qu7]hUZTest cases are the specific inputs that you'll try and the procedures that you'll follow when you test the software.我的理解,测试用例就是一组根据相应文档而设计出来的操作步骤,输入数据和输出结果,是对软件产品的进行测试的执行过程。51Testing软件测试网uU\/^!c SJ1H
{[(U-Lc)\ryUE0这章还提到了一个概念--Exploratory Testing(探索性测试)。51Testing软件测试网2B;m)W0qKN/OH
51Testing软件测试网6]V}RD他的定义是:simultaneously learning the software, designing tests, and executing those tests.意思是同时进行对软件的学习,设计测试用例和执行测试用例这3种活动。说句实话我觉得这个瞎测没有什么区别。不过我以前看过这个Exploratory Testing(探索性测试)的资料,是一个讲Rapid Testing的PDF上看到的,我记得对于Exploratory Testing有一个很关键的步骤,就是把在测试活动过程中开发出来的测试用例记录下来,以便以后做回归测试。还有对测试用例进行维护。我觉得这个把测试用例写下来是很重要的,在这种瞎测的过程中,大家的思维肯定是很随机的,或许明天上班我们对同样的软件进行测试就有完全不同的方法,对于有用的正确的方法应该记录下来。
S_@UPI#ga,oy@bG051Testing软件测试网{/iROhxYC\6XTest-to-Pass and Test to Fail
b%W$C)pDq$e ^+r-Mb0Dlw){t b0这个英文里面也叫Positive Testing and Negative Testing.正向测试和反向测试。前者是证明软件是能正常工作的,后者主要是为了证明软件在接受到一些预期不到的输入的时候能够有一个合理的相应。例如我们在计算器里面输入英文字母不会让系统死机。一般来说我们应该先执行Positive Testing然后再执行Negative Testing。不过这里在实际操作中会遇到有一个问题,这两种测试用例都是对同样的测试对象进行测试,如果先执行Positive Testing然后再执行Negative Testing的话就有可能增加了测试的时间,我估计大多数时候这两种测试都是同时进行的吧,呵呵。51Testing软件测试网$g(I v_ s
51Testing软件测试网E`d0SobJ#fu-]qEquivalence Partitioning
&|f8bu(c A}0"C:KQQs!q)]0等价类划分,也叫Equivalence Classing。等价类划分可以在测试质量得到保证的同时大大减少测试用例的数量。等价类的定义是:An equivalence class or equivalence partition is a set of test cases that tests the same thing or reveals the same bug.例如可以把输入分为有效输入和无效输入,在有无效输入里面也可以有好几种细分。总之我觉得想等价类划分是一个不断细化的过程,并不是粗略地分为有效无效就万事大吉了。书中最后说到一个有趣的事情。A final point about equivalence partitioning is that it can be subjective.It's science but it's also art.如果说一样东西即时科学又是艺术,就证明他不是科学的,呵呵……跟个人能力有很大关系啊。51Testing软件测试网Tv)f'rT eS
51Testing软件测试网0j)z6U@ @p'J LI%d(\DData Testing
;c:d-c2QO#a'L0`+g/k MFVuA0这个我以前真的没听说过,而且网上的资料也比较少,直接翻译应该是数据测试。一种对软件的简单看法就是:软件由两部分组成:The data and the program。Data(数据)的定义。数据可以是键盘的输入,鼠标的点击,磁盘文件,打印输出等等~程序:就是可执行的流,事务,逻辑和计算。51Testing软件测试网_#a6]M:HHa
51Testing软件测试网+x;Mn5H&jD7^:GBoundary conditions51Testing软件测试网\W iCB9f+J V
uI8_ Kk0边界条件。原文是这样说的:If software can operate on the edge of its capabilities, it will almost certainly operate well under normal conditions.如果我们在悬崖边走过而边缘上的岩石没有塌掉的话,那么我们就可以认为在远离悬崖边的地方走路是很安全的~~边界条件通常会跟等价类划分一起使用。
\1^{V(w!x`0*X(iIW;Z$G0以下是有可能涉及到边界条件的类型:51Testing软件测试网~uzoi"s r
51Testing软件测试网;C(a7C%i7imA#ak数字,字符,位置,数量,速度,区域,大小
Hqw'_,xPMN0-w(~^)N+X:X f0我们可以想一下一下的情况:51Testing软件测试网0Rjr8}%U/q
51Testing软件测试网 Sq/\q.r?` Y第一个/最后一个;最大/最小;开始/结束;之上/之下;空的/满的;最慢的/最快的;最大的/最小的;最短的/最长的;最先的/最后的;最高的/最低的。51Testing软件测试网$~F;O xC4zk7S/r[
51Testing软件测试网7]\3LO*ao)F"Gan这里有一个TIPS就是。当我们考虑边界条件的时候,需要考虑以下三种情况。