- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 白盒测试
实验目的
掌握白盒测试的基础知识,了解白盒测试又叫结构性测试,是基于被测程序的源代码的测试方法;
掌握白盒测试的主要检查内容、测试目的及实施步骤;
掌握白盒测试的6种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
预习与实验要求
预习实验指导书及教材的有关内容,掌握白盒测试的6种基本测试方法;
根据实验一选定的系统---“艾斯医药商务系统”,分析源程序;
对具体程序的源代码,能分别使用6种测试方法设计测试用例,并实施测试、分析测试结果;
独立思考并完成实验。
实验设备与器材
硬件:P4以上计算机,512M内存以上,2G以上空闲硬盘空间
软件:操作系统、
实验原理
白盒测试的目的和检查内容;
白盒测试的基本方法;
根据白盒测试方法设计测试用例及实施测试。
实验内容
选定目标系统中可??进行白盒测试的源码;
画出对应的控制流图;
按照这6种不同的覆盖策略设计测试用例;
按照设计好的测试用例并实施测试,记录测试结果。
实验报告
内容
针对实际项目“艾斯医药商务系统”,完成白盒测试(覆盖测试)。测试文档中包括各种方法的测试目的、测试用例的设计及测试结果。
1.逻辑覆盖测试
逻辑覆盖测试主要是针对程序的内部逻辑结构设计测试用例的技术,它通过运行测试用例达到逻辑覆盖的目的。
包括以下3种类型的逻辑覆盖:
语句覆盖
判定覆盖
条件覆盖
/**
* 购物车添加商品方法
* 在判断hashmap中没有pid对应商品是为false情况下添加product
* @param pid
* @param product
*/
public void addProduct(String pid,Product product){
if(hashmap==null){
hashmap= new HashMap();
}
if(hashmap.containsKey(pid)==false)//购物车中不存在该商品
{
hashmap.put(pid, product);
}
}
函数的流程图如下:
测试结果:
用户登录进入到商品浏览界面之后,进行购买活动,将商品添加到购物车,如果没有商品id,测试结果如图1,;如果有商品id,测试结图2:
图1
添加之后,查看购物车,购物车中没有该商品:
当添加该商品id之后,可以加载到购物车:
图2
查看购物车,在购物车中将会有加载的商品:
2.语句覆盖
语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行的语句至少执行一次。根据概念,为了对上面的函数进行语句覆盖,只要设计一个测试用例就可以覆盖2个执行语句块中的语句。
针对程序的判断语句,可在入口处设计测试用例。
测试用例输入为:{hashmap==null}
程序执行的路径为:abd。
如果程序只运行上面的测试用例,虽然可以执行模块中的所有语句,但并不能检查判断逻辑是否有问题。例如在第一个判断中错误地把==写成!=,则上面的测试用例仍可以覆盖所有的执行语句。可以说语句覆盖率是最弱的逻辑覆盖准则。
当我们进行查询商品的时候,如果hashMap为空,将不能查询,如下图所示:
当输入acd时,将能够查询:
3.判定覆盖
判定覆盖(也称为分支覆盖),设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少各执行一次。
根据上面的定义,对于上面的程序,只要设计两个测试用例则可以满足条件覆盖的要求。
测试用例的输入为:{hashmap!=null}
{hashmap==null}
上面的两个测试用例虽能够满足判定覆盖的要求,但是有时候也不能对判定条件进行检查。
根据测试原理,得到测试结果如下:
4.条件覆盖
设计足够多的测试用例,运行所测程序,使程序中每个判断内的每个条件的各个可能取值至少执行一次。
为了清楚的设计测试用例,对例子中的所有条件取值加以标记。
例如:
对于第一个判断:条件hashmap==null,取真值为T1,假值为-T1;
对于第二个判断: 条件hashmap.containsKey(pid)==false,取真值为T2,假值为-T2;
则可以设计测试用例如表5-7所示:
表5-7
测试用例通过路径条件取值覆盖分支hashmap==null
hashmap.containsKey(pid)==falseabdT1,T2bdHashmap!=null
hashmap.containsKey(pid)==falseacd-T1,T2cdHashmap==null
hashmap.c
文档评论(0)