经典三角形白盒黑盒测试加测试工具.docx
《经典三角形白盒黑盒测试加测试工具.docx》由会员分享,可在线阅读,更多相关《经典三角形白盒黑盒测试加测试工具.docx(30页珍藏版)》请在冰点文库上搜索。
经典三角形白盒黑盒测试加测试工具
详细设计说明书
1设计说明
1.1编写目的
说详细设计说明书描述了三角形的判断,读者为软件的开发者和测试人员。
1.2背景
三角形问题是软件测试中使用最广的一个例子。
1.3程序描述
该程序是一个顺序执行的判断语句.通过给定的三角形的三个边,判断三条边能否组成三角形,为什么样的三角形(等腰三角形,等边三角形,直角三角形,普通三角形).
1.4输人项
输入项
约束条件
输入位置
边A
int型,范围为[1,100]
控件”边A”
边B
int型,范围为[1,100]
控件”边B”
边C
int型,范围为[1,200]
控件”边C”
1.5输出项
输出项
输出条件
输出位置
不能构成三角形
不能满足构成三角形的要求
控件”IDC_RESULT”
等腰三角形
有两条边长相等
等边三角形
三条边都相等
直角三角形
存在三条边,满足勾股定理
普通三角形
任意两条边和大于第三边,任意两条边的绝对值小于第三边
1.6流程逻辑
N:
不能构成三角形
Y
N
Y:
直角三角形
Y
N
N:
等腰三角形
Y:
等边三角形
一般三角形
2测试计划和执行
2.1测试范围与主要内容
主要测试三角形判定是否正确,判断界面容错性.
2.2测试人员安排
任务明细
人员安排
测试前业务
准备
选取和分析测试工具.选取和分析测试目标,讨论测试思路,分析可行性.
XXX
测试计划编写
分析和编写测试计划,包括测试分析,流程制定,测试报告模板,测试协调
YYY
测试用例编写
编写测试用例,执行测试,书写测试报告
ZZZ
1.组织与责任:
测试负责人XXX
责任:
测试计划、流程制定,测试报告模板、测试程序准备;测试协调。
2.测试执行人:
YYY
责任:
进行测试、书写测试报告。
3.测试环境准备:
ZZZ
责任:
测试环境的准备。
4.测试约定:
测试报告提交方式约定:
根据QTP测试结果,按照给定的测试结果报告模板书写报告.
2.3白盒测试
2.3.1功能测试
测试目标
Ø测试”三角形测试”程序是否能够正常运行并符合预期结果
测试范围
测试三角形判定是否正确,判断界面容错性
不测试项
Ø三角形三条边的取值范围(由MFC维护)
开始标准
Ø单元测试已完毕
Ø提供的测试用例已通过已经通过小组讨论审核
完成标准
Ø所有功能都能按照设计文档的要求
Ø测试报告已经修改完毕,问题基本都已得到解决。
测试重点和优先级
Ø输入的参数是否正确
Ø输出的结果是否符合设计文档预期结果
2.3.2测试方法
测试目标
Ø测试”三角形测试”程序是否能够正常运行并符合预期结果
测试范围
Ø软件执行的整个过程
不测试项
Ø三角形三条边的取值范围(由MFC维护)
测试方法
Ø路径覆盖测试
Ø控制结构测试
开始标准
Ø有详细设计,软件编码已完成
完成标准
Ø所有设计的用例都测试通过
2.3.3路径覆盖测试
1voidCMyDlg:
:
OnButton2(){
2UpdateData(true);
3if((m_sidea+m_sideb)>m_sidec&&
4(m_sideb+m_sidec)>m_sidea&&
5(m_sidec+m_sidea)>m_sideb){
6if(m_sidea==m_sideb||
7m_sidea==m_sidec||
8m_sideb==m_sidec){
9if(m_sidea==m_sideb&&
10m_sidea==m_sidec){
11SetDlgItemText(IDC_RESULT,"等边三角形");
12}else{
13SetDlgItemText(IDC_RESULT,"等腰三角形");
14}
15}elseif((m_sidea*m_sidea+m_sideb*m_sideb)==m_sidec*m_sidec||
16(m_sideb*m_sideb+m_sidec*m_sidec)==m_sidea*m_sidea||
17(m_sidec*m_sidec+m_sidea*m_sidea)==m_sideb*m_sideb
18){
19SetDlgItemText(IDC_RESULT,"直角三角形");
20}else{
21SetDlgItemText(IDC_RESULT,"一般三角形");
22}
23}else{
24SetDlgItemText(IDC_RESULT,"不能构成三角形");
25}
2.3.4程序控制图
2.3.5圈复杂度
V(G)=37(条边)-27(个节点)+2=12
2.3.6确定独立路径集合(12条)
路径1:
1-2-3-23-24-25
路径2:
1-2-3-4-23-24-25
路径3:
1-2-3-4-5-23-24-25
路径4:
1-2-3-4-5-6-9-10-12-13-14-25
路径5:
1-2-3-4-5-6-9-10-11-25
路径6:
1-2-3-4-5-6-7-9-12-13-14-25
路径7:
1-2-3-4-5-6-7-8-9-12-13-14-25
路径8:
1-2-3-4-5-6-7-8-20-21-22-25
路径9:
1-2-3-4-5-15-18-19-25
路径10:
1-2-3-4-5-15-16-18-19-25
路径11:
1-2-3-4-5-15-16-17-18-19-25
路径12:
1-2-3-4-5-15-16-17-20-21-22-25
2.3.7设计测试用例(m_sidea,m_sideb,m_sidec均为有效值)
测试路径编号
测试用例描述
预期结果
路径1
不能满足(m_sidea+m_sideb)>m_sidec
不能构成三角形
路径2
不能满足(m_sideb+m_sidec)>m_sidea
不能构成三角形
路径3
不能满足(m_sidec+m_sidea)>m_sideb
不能构成三角形
路径4
输入的m_sidea==m_sideb满足,但是m_sidea!
=m_sidec
等腰三角形
路径5
输入的m_sidea==m_sideb满足,输入的m_sidea==m_sideb且m_sidea==m_sidec
等边三角形
路径6
输入的m_sidea!
=m_sideb且m_sidea==m_sidec
等腰三角形
路径7
输入的m_sidea!
=m_sideb且m_sidea!
=m_sidec且m_sideb==m_sidec
等腰三角形
路径8
该三条边可以构成三角形且不为直角三角形,不能满足满足a==m_sideb且m_sidea==m_sidec且m_sideb==m_sidec)
一般三角形
路径9
该三条边可以构成三角形且不为等边三角形,且(m_sidea*m_sidea+m_sideb*m_sideb)==m_sidec*m_sidec
直角三角形
路径10
该三条边可以构成三角形且不为等边三角形,(m_sidea*m_sidea+m_sideb*m_sideb)!
=m_sidec*m_sidec(m_sideb*m_sideb+m_sidec*m_sidec)==m_sidea*m_sidea
直角三角形
路径11
该三条边可以构成三角形且不为等边三角形,(m_sidea*m_sidea+m_sideb*m_sideb)!
=m_sidec*m_sidec(m_sideb*m_sideb+m_sidec*m_sidec)!
=m_sidea*m_sidea
(m_sidec*m_sidec+m_sidea*m_sidea)==m_sideb*m_sideb
直角三角形
路径12
该三条边可以构成三角形且不为等边三角形,(m_sidea*m_sidea+m_sideb*m_sideb)!
=m_sidec*m_sidec(m_sidea*m_sidea+m_sideb*m_sideb)!
=m_sidec*m_sidec
(m_sidec*m_sidec+m_sidea*m_sidea)!
=m_sideb*m_sideb
一般三角形
2.3.8执行测试用例
测试路径编号
输入参数(m_sidea,m_sidebm_sidea,m_sideb的顺序输入)
预期结果
执行结果
测试是否通过
路径1
1,4,5
不能构成三角形
不能构成三角形
是
路径2
5,1,4
不能构成三角形
不能构成三角形
是
路径3
1,5,4
不能构成三角形
不能构成三角形
是
路径4
5,5,6
等腰三角形
等腰三角形
是
路径5
5,5,5
等边三角形
等边三角形
是
路径6
4,5,4
等腰三角形
等腰三角形
是
路径7
4,5,5
等腰三角形
等腰三角形
是
路径8
4,5,6
一般三角形
一般三角形
是
路径9
3,4,5
直角三角形
直角三角形
是
路径10
5,3,4
直角三角形
直角三角形
是
路径11
3,5,4
直角三角形
直角三角形
是
路径12
5,6,7
一般三角形
一般三角形
是
2.4使用Logiscope测试
2.4.1Audit项目
1.质量评估报告,参见”AduitReport”文件夹中的SanJiaoXingAuditaudit.html
2.CmyDlg:
OnButton2的函数流程图
Table2myDlg:
OnButton2的函数流程图
3.度量元检测结果
Table3函数度量元检测结果
4.函数质量标准检测结果
Table4函数质量标准检测结果
5.系统度量元检测结果
Table5系统度量元检测结果
6.类度量元的检测结果
Table6类度量元的检测结果
7.类质量准则的检测结果
Table7类质量准则的检测结果
8.父类、子类之间的派生关系
Table8父类、子类之间的派生关系
9.类与类之间的使用关系
Table9类与类之间的使用关系
2.4.2RuleChecker项目
1.代码检测结果
Table10代码检测结果
2.查看不符合规范的代码
Table11查看不符合规范的代码
3.RuleChecker的检测报告
参见”RuleCheckerReport”文件夹下的SanJiaoXingRuleCheckerrule.html
2.4.3TestChecker项目
由于项目名称为中文,配置TestChecker项目的时候,出现乱码,该测试未完成.
2.5黑盒测试
2.5.1功能测试
测试目标
Ø测试三角形测试.exe
测试范围
Ø测试输入值是否满足条件
Ø测试输出结果是否满足设说明
开始标准
Ø白盒测试完成
完成标准
Ø所有功能都能按照设计文档的要求
Ø测试报告提交给程序开发人员修改,并作进一步测试
测试重点和优先级
Ø输入的参数是否正确
Ø输出的结果是否符合设计文档预期结果
2.5.2测试方法
测试目标
Ø测试”三角形测试”程序是否能够正常运行并符合预期结果
测试范围
Ø软件执行的整个过程
测试方法
Ø等价划分
Ø边界值分析
开始标准
Ø有详细设计,软件编码已完成
完成标准
Ø所有设计的用例都测试通过
2.5.3等价划分
根据用例描述,输入的三条边的取值范围为[1,100]
三角形测试的等价表
功能
有效等价类
描述
细化
编号
无效等价类
描述
细化
编号
输入三个数值,代表需要构成三角形的三条边
整数
三遍都为整数
A,B,C都为整数
1
有边存在非整数
一边为非整数
A为非整数
14
B为非整数
15
C为非整数
16
两边为非整数
A,B为非整数
17
B,C为非整数
18
A,C为非整数
19
三条边都是非整数
A,B,C都是非整数
20
三个数
给出三条边
给出A,B,C
2
只给一条边
只给出A
21
只给出B
22
只给出C
23
只给两条边
只给出A,B
24
只给出B,C
25
只给出A,C
26
取值[1,100]
取值范围[1,100]
给出A,B,C满足[1,100]
3
存在不在范围内的输入
A不在输入范围内
A<1
27
A>100
28
B不在输入范围内
B<1
29
B>100
30
C不在输入范围内
C<1
31
C>100
32
构成一般三角形
任意两边之和大于第三边
A+B>C
4
不能构成三角形
A,B边小于等于C
A+B33
A+B=C
34
B+C>A
5
B.C边小于等于A
B+C35
B+C=A
36
C+A>B
6
C,A边小于等于B
C+A
37
C+A=B
38
构成等腰三角形
两边相等
A=B
7
B=C
8
C=A
9
构成等边三角形
三条变成都相等
A=B且B=C
10
构成直角三角形
三条边满足勾股定理
A2+B2=C2
11
B2+C2=A2
12
C2+A2=B2
13
表格1等价类测试用例输入
测试用例标识
(A,B,C)
覆盖有效等价类编号
预期输出
测试用例标识
(A,B,C)
覆盖有效等价类编号
预期输出
TC1
4,5,6
1-6
一般三角形
TC9
x,3,4
14
Pleaseenteraninteger
TC2
4,4,5
1-7
等腰三角形
TC10
3,3.1,4
15,
Pleaseenteraninteger
TC3
5,4,4
1-6,8
等腰三角形
TC11
3,3,-3
16
Pleaseenteranintegerbetween1and100
TC4
4,5,4
1-6,9
等腰三角形
TC12
x,3.1,4
17
Pleaseenteraninteger
TC5
5,5,5
1-10
等边三角形
TC13
3,3.1,3.2
18
Pleaseenteraninteger
TC6
3,4,5
1-6,11
直角三角形
TC14
3.1,3,3.2
19
Pleaseenteraninteger
TC7
5,3,4
1-6,12
直角三角形
TC15
3.1,3.2,3.3
20,
Pleaseenteraninteger
TC8
3,5,4
1-6,13
直角三角形
TC16
A=3
21
Pleaseenteraninteger
TC17
B=3
22
Pleaseenteraninteger
TC18
C=3
23
Pleaseenteraninteger
TC19
A=3,B=3
24
Pleaseenteraninteger
TC20
B=3,C=3
25
Pleaseenteraninteger
TC21
C=3,A=3
26
Pleaseenteraninteger
TC22
0,3,4
27
Pleaseenteranintegerbetween1and100
TC23
101,3,4
28
Pleaseenteranintegerbetween1and100
TC24
3,0,4
29
Pleaseenteranintegerbetween1and100
TC25
3,101,4
30
Pleaseenteranintegerbetween1and100
TC26
3,4,0
31
Pleaseenteranintegerbetween1and100
TC27
3,4,101
32
Pleaseenteranintegerbetween1and100
TC28
4,4,10
33
不能构成三角形
TC29
4,4,8
34
不能构成三角形
TC30
10,4,4
35
不能构成三角形
TC31
8,4,4
36
不能构成三角形
TC32
4,10,4
37
不能构成三角形
TC33
4,8,4
38
不能构成三角形
2.5.4边界值分析
根据用例描述,输入的三条边的取值范围为[1,100]
表格2边界值分析设计
功能
边
描述
编号
输入三个数值,代表需要构成三角形的三条边
A
A=1
39
A=2
40
A=50
41
A=99
42
A=100
43
B
B=1
44
B=2
45
B=50
46
B=99
47
B=100
48
C
C=1
49
C=2
50
C=50
51
C=99
52
C=100
53
表格3三角形用例分析输入
测试用例标识
(A,B,C)
覆盖边界值分析测试编号
预期输出
TC
1,1,1
39,44,49
等边三角形
TC
2,2,2
40,45,50
等边三角形
TC
50,50,50
41,46,51
等边三角形
TC
99,99,99
42,47,52
等边三角形
TC
100,100,100
43,48,53
等边三角形
2.6使用QTP测试
2.6.1.录制脚本一:
SanJiaoXingQTPTest1
录制了一段脚本,保存在”SanJiaoXingQTPTest1”文件夹下
a)录制一个基本过程,在测试结果内容下面插入一个标准检查点
b)参数化边A,B,C和标准检查点的值,分别存在在全局表sideA,sideB,sideC,Result中.
c)回放录制过程
d)分析生成的测试报告
Table12三角形测试录制的基本过程
Table13添加一个标准检查点
Table14参数化A,B.C和输出结果
Table15由QTP生成的测试报告
2.6.2录制脚本二:
SanJiaoXingQTPTest2
录制了一段脚本,保存在”SanJiaoXingQTPTest2”文件夹下
e)录制一个基本过程,弹出的小窗口中的警告信息上添加一个标准检查点
f)参数化边A,B,C和标准检查点的值,分别存在在全局表sideA,sideB,sideC,Result中.
g)回放录制过程
h)分析生成的测试报告
Table16三角形测试录制的基本过程
Table17添加一个标准检查点
Table18参数化A,B.C和输出结果
Table19由QTP生成的测试报告
最后一个Row14未通过,是由于Row13测试完后,没有数据输入了,所以该测试是通过的.