他山之石,可以攻玉——说说软件测试方法
上一篇 / 下一篇 2012-04-05 09:13:04 / 个人分类:杂谈
~ T RNP:A0 测试的基本方法有两种:白盒子和黑盒子测试方法,现在来说还有白加黑的测试,即灰盒测试。那何为白盒,又何为黑盒呢,灰盒又是什么?51Testing软件测试网y"PrC-e!["Unb
2G8j9lo(v'mP0 1、白盒子51Testing软件测试网/wl^!y6Gu~5]]epS
'Y_}:E{0 白盒子测试就是一种透明测试方法,测试者必须完全了解功能或特性实现的内部结构和细节。针对软件测试,白盒子测试就是通过阅读所测试软件的原代码,掌握程序所要求的参数、初始数据,设计CASE, 使测试能遍历所有路径(分支)和满足各种条件。
!S3k {%a?q"JI{07`n7o+Kol a Gjv0 白盒子测试的要点是:51Testing软件测试网CM(]1cP lN9g
51Testing软件测试网V)z5Y2| W● 确定代码测试的控制点51Testing软件测试网Bl wwkft
b*R6E$[+X5^9t0 ● 要求了解主要变量、每个函数和类、对象的作用
qZLpP-m3rc:V051Testing软件测试网n*r)t9V8b2bu wL8}FB● 逻辑驱动能力
| i a \6d5L&g4@x051Testing软件测试网c(l(E-xI;B$Sb|+h E● 编写手工测试程序51Testing软件测试网*o5m\2Tb]
51Testing软件测试网y p3UH FQ(t v● 对过程性细节做检查51Testing软件测试网.C3d%Y W*CC
[W3[au0 ● 对程序所有逻辑路径进行测试
0o.Ur^&G"U(MAQ051Testing软件测试网/tAl"uyw/a'|+c白盒测试最关键是代码的覆盖面,包括:51Testing软件测试网Z|7n$].['UTJoB
@Lg%?u:y)i0 ● 有选择地执行程序中某些最具有代表性的通路
@G#[z2WOq A/LOlW051Testing软件测试网7T9KZ[%nB● 语句覆盖:使程序中每个语句至少执行一次,51Testing软件测试网Ly^H1}]
2{u5Ts;iM5_B4N Un+lU0 ● 条件覆盖:每个判断的每个条件的可能取值至少执行一次51Testing软件测试网#M~ ` e.NE V
51Testing软件测试网SXv$E0A*l%fZ● 条件组合覆盖:使得每个判定表达始终条件的各种组合都至少出现一次
+q8DtTwMT051Testing软件测试网BTBU3E'p● 路径覆盖:使程序的每条可能路径都至少执行一次
-@;r3`&c ZYA0}?!ci9{6u} b/{0 2、黑盒子
&Ee!m0LNMJ4K:E051Testing软件测试网Y"D9d8bY%MJ/Bt黑盒子测试就是不要了解功能或特性实现的内部结构和细节,把程序、模块或产品看成一个黑盒子,检查是否符合功能说明,适当地接受输入,产生输出,并保持外部信息完成性,要清楚系统或模块要达到的目的或期望值(输入/输出结果)。
}\3t1?sV~G4s3L0Gy,qb6IK-Le h0 测试者只关心系统应该做些什么,而不管它是怎样实现的。这种方法要点是:51Testing软件测试网)u,ZErIIHz
x]:j!_@0 ● 自动创建51Testing软件测试网P\d3@E\([Pv'B,u
p5v9a"G`2M m7U0 ● 类、对象和函数知识的限制51Testing软件测试网(qSk7S&|D!gf'z
'G-Th a} D0 ● 规范所特定的Case Table51Testing软件测试网 RR"JHs2gO pU
1Z ?:irD/S0 ● 数据驱动51Testing软件测试网~f1qoL*uHZ
O5gc5S!s7` Y/FW0 黑盒子测试的一些具体方法有:
;l"a `*ia?051Testing软件测试网!H+B0ECI[F t● 等价类划分黑盒测试,等价类是子集,其中的数据对于揭露程序中的错误是等效的。划分等价类是根据经验和探索性的工作,设计测试用例,使其尽可能多地覆盖有效等价类,直到所有有效等价类被覆盖
)KUnB3oI _2Z051Testing软件测试网 O)ZV"C%j cw● 边界值分析黑盒测试,它是对等价类划分的补充,不是从等价类中随便选一个数据作为代表,而是选几个特定值测之等于、刚刚大于、刚刚小于边界值。51Testing软件测试网2Yz,z%V'q)EN'S8b sr
51Testing软件测试网!M0p1iO5I-k9z-s错误推测法,靠经验和直觉推测程序中可能存在的错误,从而针对性的编写例子51Testing软件测试网_,B}IP`%mVc
&ZC HNL1DF0 ● 因果图,适合检查输入条件的各种组合情况
:K5df'j}v.BbK051Testing软件测试网^ wK6j%@.])t9PH+uB● 功能图,形式化地表示程序的功能说明,从而生成测试用例
9l|"YlaU4\0,BCv G~+crv?8V0 3、灰盒
PM.?aE!@ Y0$^Y8J!R#g:o0 灰盒测试定义为将根据需求规范说明语言(RSL)产生的基于测试用例的要求(RBTC),用测试单元的接口参数加到受测单元,检验软件在测试执行环境控制下的执行情况。灰盒测试法的目的是验证软件满足外部指标要求以及软件的所有通道都进行了检验。通过该程序的所有路径都进行了检验和验证后,就得到了全面的验证。完成功能和结构验证后,就可随机地一次变化一行来验证软件测试用例在软件遇到违背原先验证的不利变化时软件的可靠性。灰盒测试法是在功能上验证嵌入式系统软件的一种10步骤法。
%ZH _c4HL0n:IixJ!~9X0 一般来说,单元测试采用白盒子方法,有效性测试采用黑盒子方法,集成测试采用混合方法51Testing软件测试网'l%wC|+c
51Testing软件测试网6Y$B*l.X$].M4、其它测试技术和方法51Testing软件测试网,`!yb|$^Qi
51Testing软件测试网5H&_2`K3lGa● 回归测试 (Regression testing)── 每当软件经过了整理、修改、或者其环境发生变化,都重复进行测试。很难说需要进行多少次回归测试,特别是是到了开发周期的最后阶段。进行此种测试,特别适于使用自动测试工具。51Testing软件测试网H,MgJ-N;aW
;~*N\&BB%O0 ● 压力测试 (Stress testing)──这种测试是用来检查系统在大负荷条件下系统运行的情况:在非正常的巨大负荷下、某些动作和输入大量重复、输入大数、对数据库进行非常复杂的查询等等,如测试一个网站在不同负荷情况下的状况,以确定在什么情况下系统响应速度下降或是出现故障。也可称性能测试 (performance testing),理想的“性能测试”(也包括其他任何类型的测试) 都应在质量保障和测试计划的文档终予以规定。51Testing软件测试网#s Vf6w?BD;ica}
DZV$`+C0n#s9g8zf|0 ● 恢复测试 (Recovery testing)── 在系统崩溃、硬件故障、或者其他灾难发生之后,重新恢复系统的情况。