软件测试基本方法
上一篇 / 下一篇 2007-03-27 11:07:12 / 个人分类:技术术
c/_!b5Q/@*y~0动态黑盒测试51Testing软件测试网3e R |`s0\$y~2bBFi "nr{ i {.qjh*C0 不深入代码细节的软件测试方法。常被称为行为测试,因为测试的是软件在使用过程中的实际行为。 4v^F)]}0Nt1J{Y ||0 首先,从产品说明书获知测试对象的软件的输入和应该得到的输出。51Testing软件测试网/lr7{&b aY#v'ul P1LR['ZmhV
^0 测试基本方法:通过测试 vs 失败测试51Testing软件测试网 t&lm H k ` 1rm*S,By9s`
w(H0 失败测试:纯粹为了破坏软件而设计和执行的测试案例,也称为迫使出错测试。蓄意攻击软件的薄弱环节。51Testing软件测试网j0F'k!JGeM1{jO 选择测试案例:等价分配 /{&`^2oFE9h:~+X(fBF0xvY8uy4z0 等价分配:是指分步骤地把过多(无限)的测试案例减小到同样有效的小范围的过程。也称等价划分。51Testing软件测试网jI,]:HuI~6z 51Testing软件测试网M&j7h_5u l*[8F7h |&R等价分配技术提供了一个选择哪些数值、舍弃哪些数值的系统方法。51Testing软件测试网_0^wUB8L U tT+v7s }"J
rf,PL0 等价类别或者等价区间是指测试相同目标或者暴露相同软件缺陷的一组测试案例。在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组。这些组就是等价区间。 }2@&NR(Z'?5xK$g8YX0 数据测试51Testing软件测试网)yu J^G'@3|7]gO S 8c~ANP'Qt2}k0 软件由数据(包括键盘输入、鼠标单击、磁盘文件、打印输出等等)和程序(可执行的流程、转换、逻辑和运算)两个最基本的要素组成。51Testing软件测试网:n2wq)g6iR 51Testing软件测试网o h`H J.G对数据进行软件测试,就是在检查用户输入的信息、返回结果以及中间计算结果是否正确。主要根据下列原则来进行等价分配,以合理减少测试案例:边界条件、次边界条件和无效数据。 7x&PQ@V ? VM(QD051Testing软件测试网:kv g'OC.g5K/} C1. 边界条件测试 %rnI-lKTz n0}+kC.lAJ5BV&I0 程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。比如数组的[0]元素的处理。想要在Basic中定义一个10个元素的数组,如果使用 Dim data(10) As Integer ,则定义的是一个11个元素的数组,在赋初值时再使用 For i =1 to 10 ...来赋值,就会产生权限,因为程序忘记了处理i=0的0号元素。 数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。 'O8`7I,Bf$f[0 根据边界来选择等价分配中包含的数据。然而,仅仅测试边界线上的数据点往往不够充分。提出边界条件时,一定要测试临近边界的合法数据,即测试最后一个可能合法的数据,以及刚超过边界的非法数据。以下例子说明一下如何考虑所有可能的边界: ;IxV7B_L051Testing软件测试网-ts#Om.z9\|V
K~Y2@!cda@N/B2?M0--------------------------------------------------------------------------------51Testing软件测试网8J+tW
P$l2X3eK:U --------------------------------------------------------------------------------51Testing软件测试网~ UD#k6cy|9A/J 51Testing软件测试网#oz ry:i-_"rX&p51Testing软件测试网/c@3r&J
vr "Ll~PnZn+VS4t0--------------------------------------------------------------------------------51Testing软件测试网-H e,F*sw'b .\(`4K?oSH+]P_M0 "m,yN;v;U0 上面所讲的是普通的边界条件,在产品说明书中有定义,或者在软件的过程中确定。但有些边界在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查,这样的边界条件成为次边界条件或者内部边界条件。寻找这样的边界条件,不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。2的乘方和ASCII表是这样的两个例子: +bE9g"D'N(v7b,U051Testing软件测试网fLb{&k*^--------------------------------------------------------------------------------51Testing软件测试网)w:]/CyJ\A'@ 位bit51Testing软件测试网N'o _y8L'g1\\ 双位doublebit P5ZM,ZwN&|{zA1J0 字节Byte51Testing软件测试网1_Y}`|m 1AbL.g*J2@o0 字word 千K51Testing软件测试网!?0mR&s4^.Y,Gw 兆M i |,ADvO4[0 亿 万亿 )NTX8b4c&a,r051Testing软件测试网d+vZ)C-E!Ap'e 在建立等价区间的时候,要考虑是否需要包含2的乘方边界条件。例如:软件接受1~1000范围内的数字,那么合法区间除了1和1000,也许还有2和999之外,还应该有临近2的乘方次边界:14,15,16以及254,255和256。 NM)K*?%}ZCC/~0A-X/{9Y+?XHE;T051Testing软件测试网^s3dJ`RG` ASCII码表并不是结构良好的连续表。数字0~9对应48~57;斜杠字符(/)在0的前面,冒号(在9的后面;大写字母A~Z对应65~90;小写字母对应97~122。这些情况都代表次边界条件。 {'DQ&|3_b/fpC0-------------------------------------------------------------------------------- %z7[|~u%n1g5Mi6[Q*[051Testing软件测试网fc"BLB?j
3. 默认值测试(默认、空白、空值、零值和无) aI&Xe2c[0
c
N6}.C-cxA {0 好的软件会处理这种情况,常用的方法:一是将输入内容默认为合法边界内的最小值,或者合法区间内某个合理值;二是返回错误提示信息。51Testing软件测试网`(a
yV
D{a
Ac-lg@D{I0 4. 破坏测试(非法、错误、不正确和垃圾数据)51Testing软件测试网`g+j4TbH's,s`/H 51Testing软件测试网2h;`7[ C A?数据测试的这一类型是失败测试的对象。这类测试没有实际规则,只是设法破坏软件。不按软件的要求行事,发挥创造力吧! 7J5r#IaV2a,[051Testing软件测试网"{T9D%{ s ErH51Testing软件测试网~Q XT H~v{(n 1CV)C#P4ON H0 状态测试 !Rj2\+U+nUp051Testing软件测试网8U2Uw5~6K;k%T)J$C9N"g状态测试是通过不同的状态验证程序的逻辑流程。软件测试员必须测试软件的状态及其转换。软件状态是指软件当前所处的情况或者模式。软件通过代码进入某一个流程分支,触发一些数据位,设置某些变量,读取某些变量,从而转入一个新的状态。51Testing软件测试网_\C!gt-H 51Testing软件测试网E I)uD"K同数据测试一样,状态测试运用等价分配技术选择状态和分支。因为选择不完全测试,所以要承担一定的风险,但是通过合理选择减少危险。51Testing软件测试网]&q-{CC8{9K,Bl 51Testing软件测试网 |,lEB#QLN 1. 建立状态转移图51Testing软件测试网T5w.}0{`_7WjZ&Y W8^,b
MRkH0 2. 减少要测试的状态及转换的数量51Testing软件测试网k4UC&\3bZ6w` {(UNM w)a0 3. 进行具体的测试——定义测试案例51Testing软件测试网)bCK/VnN o']$F icl.a"f0 测试状态及其转换包括检查所有的状态变量——与进入和退出状态相关的静态条件、信息、值、功能等等。如:窗口外观、窗口尺寸定义(固定/上次使用时的尺寸)、显示的菜单、默认设定值、文档的名称等。状态无论是否可见,都必须进行状态确定。 状态变量也许不可见,但是很重要,一个常见的例子时文档涂改标志(以此判断退出时是否询问保存)。51Testing软件测试网4dXm6Y8Q \ 2`#R4JNkeVKP0 失败状态测试 ,Sa/[1YD PV051Testing软件测试网Lb"Y4PVz7o状态测试的失败测试的案例,主要是竞争条件、重复、压迫和重负。51Testing软件测试网0l,V.E5W9i;x@ 51Testing软件测试网eR[? lbt~L1. 竞争条件和时序错乱51Testing软件测试网DC EVt 4q4J?:?u8yA0 设计多任务操作系统不是很难,设计充分利用多任务能力的软件才是艰巨的任务。在真正的多任务环境中软件设计绝对不能想当然,必须处理随时被中断的情况,能够与其他任何软件在系统中同时运行,并且共享内存、磁盘、通信设备以及其他硬件资源。 一下是要面临竞争条件的典型情形:51Testing软件测试网&LOB0|Z GZ dS0mL7z7j0 2. 重复、压迫和重负51Testing软件测试网0\[+z.^-\Sqm 51Testing软件测试网4DS0w8`DX这三个测试的目标是处理那些连程序员都没有想到的恶劣条件下产生的问题的能力。51Testing软件测试网$]LnJ B%Pt8sF5L 4G:c/H i5VL0 - 重复测试51Testing软件测试网/LDQ v2Sjv 51Testing软件测试网iE:Jt9mnW C~}重复测试是不断执行同样的操作。最简单的是不停地启动和关闭程序,或者反复读写数据或者选择同一个操作。这种测试的主要目的是看内存是否不足。如果内存被分配进行某项操作,但操作完成时没有完全释放,就会产生一个常见的软件问题。51Testing软件测试网+S:Ef*yY V4F1h)sY1y 51Testing软件测试网J8}%p G%M;d- 压迫测试51Testing软件测试网U6o OM9m.z!o 51Testing软件测试网 N a2D,w;[bq9E压迫测试是使软件在不够理想的条件下运行——内存小、磁盘空间少、CPU速度慢、调制解调器速率低等等。观察软件对外部资源的要求和依赖程度。压迫测试就是将支持降到最低限度,目的在于尽可能的限制软件的必要条件。 mX1c,~+I4ZLM0_!n,k b%A+xB&["@p0 - 重负测试 &QX.|!um P~W051Testing软件测试网6n;Na/s T 重负测试和压迫测试相反。压迫测试是尽量限制软件,而重负测试是尽量提供条件任其发挥。让软件处理尽可能大的数据文件。最大限度的发掘软件的能力,让它不堪重负。比如:软件对打印机或通信端口进行操作,就把能连的都连上;服务器可以处理几千个模拟连接,就按他说的做。 重复、压迫和重负测试应联合使用,同时进行。51Testing软件测试网(c*V!EB/YDK 51Testing软件测试网L o9]*eB2P1R 需要注意的是: 其他黑盒测试方法 :~%Ao%[H9sy @051Testing软件测试网ZX*woa$zx1. 像无经验的用户那样做51Testing软件测试网L6`(bw0K .OwS!f\5a"wg3_0 输入意想不到的数据;中途变卦而退回去执行其他操作;单击不应该单击的东西……51Testing软件测试网1Au5c l5] 51Testing软件测试网@N4K%aSb6o2. 在已经找到软件缺陷的地方再找找51Testing软件测试网6Q'W}/U6s.\+fc 51Testing软件测试网bGfi)W原因有二:一是软件缺陷的集中性。如果发现在不同的特性中找出了大量上边界条件软件缺陷,那么就应该对所有特性着重上边界条件。对某个存在的缺陷,应当投入一些案例来保证这个问题不是普遍存在的。二是程序员往往倾向于只修改报告出来的软件缺陷,不多也不少。比如报告启动-终止-再启动255次导致冲突,程序员可能只修复了这个问题。重新测试时,一定要重新执行同样的测试256次以上。51Testing软件测试网*i]$iF-r-B d A_k3Jk2A;W{8O0 3. 凭借经验、直觉和预感 8n1DhJ/YF}V051Testing软件测试网p [^b,PP 记录哪些技术有效,哪些不行。尝试不同的途径。如果认为有可疑之处,就要仔细探究。按照预感行事,直至证实这是错误为止。51Testing软件测试网lB_O)cv
^%M |
相关阅读:
- 学习测试先要了解测试流程 (annayin, 2007-2-02)
- 需求跟踪矩阵 (annayin, 2007-3-06)
- 软件测试中的网站测试技术要领 (annayin, 2007-3-07)
- 你必须学会的几个常用网络测试命令 (annayin, 2007-3-08)
TAG: 技术术
我的栏目
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | ||||||||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
31 |
我的存档
数据统计
- 访问量: 267164
- 日志数: 399
- 图片数: 3
- 书签数: 4
- 建立时间: 2007-01-16
- 更新时间: 2011-04-03