ZD培训教材白盒测试技术v课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ZD培训教材白盒测试技术v课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ZD 培训教材 测试 技术 课件
- 资源描述:
-
1、ZD培训教材白盒测试培训教材白盒测试技术技术v正确的态度在理想的情况下,我们会测试程序的所有可能执行情况。然而在大多数情况下,这几乎是不可能的。对一个复杂的应用程序进展完全的测试,将消耗大量的时间和人力资源,以至于在经济上是不可行的。要成功的测试一个软件应用程序,测试人员需要有正确的态度愿景。在某些情况下,测试人员的态度可能比实际的测试过程本身还要重要。什么是软件测试?软件测试执行效果不好,其中一个主要原因在于大多数的程序员一开场就把“测试这个术语的定义搞错了。“测试终究是什么?测试终究是什么?“测试术语的错误理解n软件测试就是证明软件不存在错误的过程。n软件测试的目的在于证明软件能够正确完成
2、其预定的功能。n软件测试就是建立一个“软件做了其应该做的信心的过程。软件测试更为适宜的定义测试是为发现错误而执行程序的过程测试是为发现错误而执行程序的过程不正确的理解带来的问题1人类的行为总是倾向于具有高度目标性。如果我们的目的是证明程序中不存在错误,那就会在潜意识中倾向于实现这个目标;也就是说,我们会倾向于选择较少导致程序失效的测试数据。另一方面,如果我们的目标在于证明程序中存在错误,我们设计的测试数据就有可能更多的发现问题。“成功的测试和“不成功的测试没有发现错误的测试用例是一次“成功的测试?发现了错误的测试用例是一次“不成功的测试?“成功的测试如果在测试某段程序时发现了错误,而且这些错误
3、是可以修复的,就将这次合理设计并得到有效执行的测试称作是“成功的。如果本次测试可以最终确定再无其他可查出的错误,同样也被称作是“成功的。“不成功的测试所谓“不成功的测试,仅指未能适当的对程序进展检查,在大多数情况下,未能找出错误的测试被认为是“不成功的,这是因为认为软件中不包含错误的观点根本上是不切实际的。不正确的理解带来的问题2“软件测试就是证明软件不存在错误的过程,这个定义带来的第二个问题:对于几乎所有的程序,甚至是非常小的程序,这个目标实际上也是无法到达的。不正确的理解带来的问题3“软件测试就是证明软件做了其该应该做的的过程,此类定义所带来的第三个问题是,程序即使能够完成预定的功能,也仍
4、然可能隐藏错误。程序可能做了其不应该做的,这也是程序中的错误。白盒测试白盒测试检查程序的内部构造。这种测试策略对程序的逻辑构造进展检查,从中获取测试数据。为了完全测试程序,理想的情况是将程序中所有可能的控制流路径至少执行一次。这种方法通常称为穷举路径测试。穷举路径测试穷举路径测试即完全的测试?程序中不同逻辑路径的数量可能到达天文数字。即使可以测试到程序中的所有路径,程序可能仍然存在着错误:即使是穷举路径测试也决不能保证程序符合其设计标准。程序可能会因为缺少某些路径而存在问题。穷举路径测试当然不能发现缺少了哪些必需路径。穷举路径测试可能不会暴露数据敏感错误。例1ab左图描述的是一个有着10-20
5、行程序的语句,包含一个迭代20次的DO循环。从 ab之间所有不同路径的数量,大约是1014:520+519+51设计测试用例软件测试中最重要的因素是设计和生成有效的测试用例。由于时间和本钱的约束,软件测试中最关键的问题是:在所有可能的测试用例中,哪个子集最有可能发现最多的错误?测试用例设计方法黑盒测试黑盒测试等价类划分等价类划分边界值分析边界值分析因果图分析因果图分析错误猜测错误猜测白盒测试白盒测试w语句覆盖w判定覆盖w条件覆盖w判定/条件覆盖w多重条件覆盖例2(Code)public void foo(int a,int b,int x)if(a1&b=0)x=x/a;if(a=2|x1)x
6、=x+1;例2(流程图)a1ANDb=0 x=x/a a=2ORX1x=x+1ACBEDYYNN语句覆盖语句覆盖准那么要求编写足够的测试用例,使得语句覆盖准那么要求编写足够的测试用例,使得程序中每条语句都被执行一次。程序中每条语句都被执行一次。通过编写单个的测试用例遍历程序路径通过编写单个的测试用例遍历程序路径ACE,可以执行到每一条语句。可以执行到每一条语句。在在A点处设置点处设置 a=2,b=0,x=3,每条语句可以,每条语句可以执行一次。执行一次。语句覆盖的缺乏语句覆盖准那么是合理的白盒测试中较弱的准那么。在本例中,存在以下缺乏:1.如果第一个判断应该是“或,而不是“与;不能发现该错误;
7、2.如果第二个判断应该是“x 0,而不是“x 1;不能发现该错误;3.程序中存在一条 x 未发生改变的路径:ABD,如果这是个错误,它也不会被发现。判定覆盖判定覆盖或分支覆盖较强一些的准那么。该准判定覆盖或分支覆盖较强一些的准那么。该准那么要求必须编写足够的测试用例,使得每一那么要求必须编写足够的测试用例,使得每一个判断都至少有一个为真和为假的输出结果。个判断都至少有一个为真和为假的输出结果。换句话说就是每条分支路径都必须至少遍历一换句话说就是每条分支路径都必须至少遍历一次。次。当程序中包含有多重选择的判断时如包含当程序中包含有多重选择的判断时如包含switch case 语句的语句的C/C+
8、程序,判定程序,判定/分支覆分支覆盖要求将所有判断的每个可能结果都至少执行盖要求将所有判断的每个可能结果都至少执行一次,以及将程序或子程序的每个入口点都至一次,以及将程序或子程序的每个入口点都至少执行一次。少执行一次。判定覆盖例子在例2流程图中,两个涵盖了路径ACE和ABD,或涵盖了路径ACD和ABE的测试用例就可以满足判定覆盖的要求。如果选择后一种情况,两个测试用例的输入是:a=3,b=0,x=3a=2,b=1,x=1判定覆盖的缺乏判定覆盖是一种比语句覆盖更强的准那么,但仍然存在相当缺乏。在本例中:1.我们仅有50的可能性遍历到那条 x 未发生变化的路径。2.如果第二个判断存在错误例如把 x
9、 1 写成了 x 1、b=0、a=2 及 x 1因此需要足够的测试用例,使得在点 A 处出现 a 1,a=1,b=0,b 0 的情况,在点 B 处出现 a=2,a 2,x 1,x=1 的情况。用例及其遍历的路径如下:a=2,b=0,x=4ACE1.a=1,b=1,x=1ABD条件覆盖和判断覆盖比照条件覆盖通常要比判定覆盖更强一些。因为,条件覆盖可能但并不总是这样会使判断中的每个条件都取到两个结果“真和“假,而判定覆盖却做不到这一点。例:DO k=0 to 50 WHILE(J+KQUEST)在上述语句中,存在一个两重分支执行循环体,或者跳出循环体。使用判定覆盖测试,将k=0执行到k=51即可满
展开阅读全文