软件测试课程设计.docx
- 文档编号:13819086
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:21
- 大小:417.77KB
软件测试课程设计.docx
《软件测试课程设计.docx》由会员分享,可在线阅读,更多相关《软件测试课程设计.docx(21页珍藏版)》请在冰点文库上搜索。
软件测试课程设计
一、课程设计目的
(1)掌握白盒测试用例的设计方法
(2)掌握白盒测试基本测试方法:
分支覆盖、条件覆盖、基本路径测试。
(3)掌握黑盒测试用例的设计方法
(4)掌握黑盒测试基本测试方法:
边界值、等价类、基于决策表的测试。
二、课程设计题目描述和要求
2.1白盒测试
2.1.1原理
白盒测试也称为结构测试或逻辑驱动测试,也就是已知产品的内部工作过程,清楚最终生成的软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状体、逻辑结构,运行路径等,检验程序中每条路是否都能按照预定的要求正确工作,检验程序内部的动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。
2.1.2题目描述
将一个正整数分解质因数(1000之内)。
例如:
输入90,打印出90=2*3*3*5。
2.1.3要求
提供执行代码、执行方法和程序界面;包括分析过程及测试用例及测试用例执行结果。
(1)分支覆盖测试方法设计测试用例
(2)条件覆盖测试方法设计测试用例
(3)基本路径测试方法设计测试用例
2.2黑盒测试
2.2.1原理
黑盒测试方法,也称功能测试或是数据驱动测试方法。
在测试时,把程序看成是一个不能打开的黑盒子。
在完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行的测试。
检查系统功能是否按照需求规格说明书的规定正常使用,是否能正常的接收输入数据而输出正确的结果。
检查相应的文档是否采用了正确的模板,是否满足规范要求等。
黑盒测试不关注内部结构,而是着眼于程序外部的用户界面,关注软件的输入输出,关注用户需求,从用户的角度验证软件功能,实现端到端的测试。
黑盒测试的方法根据用户的体验评估软件的质量,验证产品的每个功能是否都能正常使用,是否满足用户需求。
2.2.2题目描述
运输公司对用户计算运费,路程越远运费越低。
设每公里每吨货物的基本运费为p,货物重量为w,距离为s,折扣为d,
标准如下:
s<250没有折扣
250≤s<5002%折扣
500≤s<10005%折扣
1000≤s<20008%折扣
2000≤s10%折扣
每吨每千米单价p不能超过100RMB,路程不能超过5000千米。
2.2.3要求
提供执行代码、执行方法和程序界面;包括分析过程及测试用例及测试用例执行结果
(1)用边界值测试方法设计测试用例
(2)用等价类测试方法设计测试用例
(3)用基于决策表的测试方法设计测试用例
三、课程设计报告内容
3.1白盒测试
3.1.1程序代码
publicclassceshi{
publicstaticvoidmain(String[]args){
Scannera=newScanner(System.in);
inte=0;
intn;
do{
System.out.println("请输入一个正整数:
");
n=a.nextInt();
if(n>1000){
System.out.println("inputerror!
");
e=1;
}else{
e=0;
}}while(e==1);
for(intk=2;k<=n/2;k++){
if(n%k==0){
System.out.print(k+"*");
n=n/k;//用递归把n重新定值
k=2;//这步很重要,让for循环重新执行
}
}
System.out.print(n);//把最后一个质因数输出
}
}
3.1.2执行方法
通过编写的java程序在Eclipse上运行
3.1.3程序界面
图3-1程序界面图
3.1.4程序流程图
图3-2分解质因数的程序流程图
3.1.5程序流图
图3-3计算天数的程序流图
3.1.6白盒测试方法设计测试用例
(1)子任务一:
分支覆盖测试方法设计测试用例
原理:
分支覆盖,使得程序中每一个分支都至少被执行一次。
用分支覆盖测试方法设计测试用例,按照下列步骤进行:
为了达到分支覆盖的目标,就要设法设计测试用例,使得②、③、④的各个分支被执行一次,满足表3-1中判断结果
表3-17个判断结果表
②
N<0orN>1000;;如N=-1,-2,-3,...
orN=1001,1002,...
0 ③ K<=N/2成立 K<=N/2不成立 ④ N%k=0成立 N%k=0不成立 这样,可以设计两个测试用例,可以覆盖这些分支。 N=12: 经过的路径是①②③④⑥③④⑥③④⑦③⑤ 测试用例执行结果: N1=-1,N2=1经过的路径为①②①③⑤ 测试用例执行结果: (2)子任务二: 条件覆盖测试方法设计测试用例 原理: 程序中每一个条件至少有一次被满足 为了达到条件覆盖的目标,就要设法设计测试用例,使得每个条件被执行一次,即以下12种组合都要覆盖: N>=1000,K<=N/2,N%K=0测试用例: N=1000 N>=1000,K>N/2,N%K=0测试用例: 无 N>=1000,K<=N/2,N%K! =0测试用例: N=1001 N>=1000,K>N/2,N%K! =0测试用例: 无 N<=0,K<=N/2,N%K=0测试用例: 无 N<=0,K>N/2,N%K=0测试用例: N=-2 N<=0,K<=N/2,N%K! =0测试用例: 无 N<0,K>N/2,N%K! =0测试用例: N=-1 O N=4 O 无 O =0测试用例: N=5 O =0测试用例: N=1 由以上组合可得可以设计测试用例N=1,N=5,N=4,N=-1,N=-2,N=1000,N=1001 测试用例执行结果: 图3-4程序结果图 (3)子任务3: 基本路径测试方法设计测试用例 原理: 顾名思义,路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。 基本路径测试法通过以下5个基本步骤来实现。 1、程序流程图 图3-5程序流程图 2、计算程序环境复杂性 通过对程序的控制流程图的分析和判断来计算模块复杂性度量,从程序的环路复杂性可导出程序基本路径集合中的独立路径条数。 环境复杂性可以用V(G)来表示,其计算方法有: V(G)=区域数目。 区域是由边界和节点包围起来的形状所构成的,计算区域时应包括图外部区,将其作为一个区域。 图3-5的区域数目是4,也就是有4条基本路径。 V(G)=边界数目-节点数目+2。 按此计算,也是4。 V(G)=判断节点数目+1。 如图3-5所示,判断节点有2、3和4,则V(G)=3+1=4。 3、确定基本路径 通过程序流程图的基本路径来导出基本的程序路径的集合。 通过上面的分析和计算,知道图3-5所示程序有4条基本路径,下面给出一组基本路径。 在一个基本路径集合里,每一条路径是唯一的。 (1)1-2-3-5 (2)1-2-1-3-5 (3)1-2-3-4-6-3-5 (4)1-2-3-4-7-3-5 4、准备测试用例,确保基本路径组中的每一条路径被执行一次。 (1)N=1可以覆盖路径1-2-3-5。 (2)N1=-1,N2=1可以覆盖路径1-2-1-3-5。 (3)N=4可以覆盖路径1-2-3-4-6-3-5。 (4)N=5可以覆盖路径1-2-3-4-7-3-5。 5、图形矩阵是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。 如下表3-2所给出的图形矩阵 表3-2图形矩阵的表示法表 1 2 3 4 5 6 7 1 1 2 1 1 3 1 1 4 1 1 5 6 1 7 1 判定节点 3.2黑盒测试 3.2.1程序代码 importjava.util.Scanner; publicclassTest2{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub floatp,w,s,f,d; System.out.println("请输入每吨每千米的单价,运货量和路程: "); Scannersca=newScanner(System.in); p=sca.nextFloat(); w=sca.nextFloat(); s=sca.nextFloat(); if(p<=0||w<=0||s<=0||p>100) System.out.println("您输入的数据有误! "); else { if(s<250) d=0; elseif(250<=s&&s<500) d=(float)0.02; elseif(500<=s&&s<1000) d=(float)0.05; elseif(1000<=s&&s<2000) d=(float)0.08; else d=(float)0.10; f=p*w*s*(1-d); System.out.println("该用户的运费为"+f); } } } 3.2.2执行方法 用java编写在Eclipse上运行 3.2.3程序界面 图3-6执行结果图 3.2.4程序流程图 图3-7流程图 3.2.5黑盒测试方法设计测试用例 (1)子任务一: 用边界值测试方法设计测试用例 原理: 边界值分析法就是针对输入数据的边界条件进行分析以确定边界值,然后设计出对应边界值的测试用例。 使用边界值分析方法设计测试用例,首先应确定边界情况。 通常输入等价类与输出等价类的边界,就是应着重测试的边界情况。 应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。 如下表3-3为边界值分析方法的测试用例 表3-3边界值分析设计的测试用例 路程s 折扣 总运费 249 0 498000 250 0.02 490000 251 0.02 491960 499 0.02 978040 500 0.05 950000 501 0.05 951900 999 0.05 1898100 1000 0.08 1840000 1001 0.08 1961960 1999 0.08 3918040 2000 0.10 3920000 2001 0.10 3921960 测试用例执行结果: 设置运费单价为100,货重为20吨 图3-8执行结果图 (2)子任务二: 用等价类测试方法设计测试用例 原理: 等价类划分方法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集(即等价类),然后从每一个等价类中选取少数具有代表性的数据作为测试用例。 测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。 利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。 表3-4为合理和不合理等价类的划分 表3-4合理等价类和不合理等价类表 输入 合理等价类 不合理等价类 每吨每千米单价p ①1~100 ②小于1 ③大于100 重量w ④大于0 ⑤小于等于0 路程 ⑥大于0 ⑦小于等于0 根据上表3-4设计测试用例 ①p=100w=20s=300 ②p=120,w=20,s=30 ③p=100,w=-20,s=300 ④p=100,w=20,s=-300 ⑤p=-100,w=-20,s=-300 执行结果: 图3-9执行结果图 (3)子任务三: 用基于决策表的测试方法设计测试用例 原理: 在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。 在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。 处理这类问题的一个非常有力的分析和表达工具是判定表,或称决策表。 制作决策表一般经过下面4个步骤。 (1)列出所有的条件桩和动作桩。 (2)填入条件项。 (3)填入动作项,制定出事判定表。 (4)简化、合并相似规则或者相同动作。 经过分析条件桩为: p<=0||w<=0||s<=0||p>100、s<250、250≤s<500、500≤s<1000、1000≤s<2000、2000≤s。 动作桩有四种: 有效数据、无效数据、有折扣和无折扣。 如果是无效数据就不需要判断后5个条件。 每种折扣都有对应的范围条件,符合一种就不需要判断其他条件 所以就需要设计6个测试用例。 (1)无效数据。 (2)路程小于250的。 (3)路程在250和500之间的。 (4)路程在500和1000之间的。 (5)路程在1000和2000之间的。 (6)路程超过2000的。 如表3-5所示为优化的决策表。 表3-5优化的决策表 序号 1 2 3 4 5 6 条 件 p<=0||w<=0||s<=0||p>100 Y N N N N N s<250 Y 250≤s<500 Y 500≤s<1000 Y 1000≤s<2000 Y 2000≤s Y 动 作 有效数据 √ √ √ √ √ 无效数据 √ 有折扣 √ √ √ √ 无折扣 √ 4、课程设计总结 本次白盒测试选择的是正整数分解质因数,在编程过程中,考虑了多种情况, 通过画程序流程图对程序充分地了解,对白盒测试有了一定的认识,学会了一些基本的用法和操作,测出了一些代码规范的问题,能够分析测试结果了。 黑盒测试选择的是运输公司对用户计算运费,学会了边界值、等价类、决策表测试方法,对于边界值测试,边界值时不能只取边界那一点,也需要取边界有效最大值和边界有效最小值。 而决策表测试要学会优化条件,降低组合,形成非常优化的决策表。 通过此次软件测试的课程设计,深刻学习掌握了软件测试和软件测试过程的基本方法和基本技术,关于黑盒、白盒的测试用例的设计,也进行了认真学习研究,从而进一步提高了自己在程序上的编写能力,以及一些之前未触及的问题,为即将踏上社会的自己又做了一份理论和实践的准备。 5、参考文献 《软件测试方法和技术》第二版朱少民主编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 课程设计