- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
成绩 辽宁工程技术大学上机实验报告
课程名称 软件测试与评估 实验题目 基于代码的测试技术 院系 软件学院 专业 软件工程 班级 软件13-9班 姓名 王朝晖 学号 1320010920 实验日期 2016.5.12 实验
目的 1.初步了解软件测试的基本知识。
2.应用基本知识进行简单的测试。
3.掌握代码测试技术的基本方法。
4.针对案例,能够运用代码测试技术中的具体方法进行测试用例的设计。1.计算机一台,有 c与c++程序设计学习与实验系统的软件。
2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。
3.了解程序数据流分析的方法并能应用方法分析程序。
4.了解程序控制流分析的方法并能应用。 1.根据三角形问题进行编程,分为等腰三角形,等边三角形,普通三角形以及不能构成三角形。
2.对程序进行数据流分析。
3.画出程序的控制流图。计算程序的环形复杂度,导出程序基本路径集中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界;
4.导出基本路径集,确定程序的独立路径;
5.根据独立路径,设计测试用例的输入数据和预期输出。一.实验步骤
1.打开c与c++程序设计学习与实验系统平台,编写有关三角形问题的相关程序。
2.对程序进行数据流分析。
3. 对程序进行程序控制流分析。
4.计算环形复杂度。
5. 给出程序的独立路径集合。
6. 进行用例设计。
二.程序分析
1.程序代码
1)#includestdio.h
2)main()
3){
4) int A,B,C;
5) printf(请输入三角形的三条边:);
6) scanf(%d %d %d,A,B,C);
7) if((A0B0C0)((A+B)C(A+C)B(B+C)A))
8) {
9) if(A==BA==C)
10) printf(该三角形是等边三角形!\n);
11) else
12) if((A==BB!=C)||(B==CB!=A)||(A==CA!=B))
13) printf(该三角形是等腰三角形!\n);
14) else
15) printf(该三角形是普通三角形!\n);
16) }
17) else
18) {
19) printf(ERROR!\n);
20) return main();
21) }
22)}
2.分析
程序主要是根据三个整数a,b,c,构成一个三角形判定三角形的类型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。
要求输入的三个整数都是正数且a+bc,a+cb,b+ca,才能进行以后的判断。否则输出“ERROR!”,返回主程序,重新输入三个整数a,b,c。然后判断三角形的类型。如果a=b且a=c,输出“该三角形是等边三角形!”。如果a=b,b不等于c,或b=c,b不等于a,或a=c,a不等于b,输出“该三角形是等腰三角形!”。如果不是以上这两种情况,输出“该三角形是普通三角形!”。
数据流分析
du-path。如果路径集合中的某个路径,定义两个节点,分别为该路径的起始节点和该路径的终止节点,该路径就为定义-使用路径。
定义dc-path,如果某个定义-使用路径,除了起始节点之外没有其他定义节点,则该路径有定义-清除路径。
数据流覆盖指标层次结构图描述数据“定义-使用”对,找出所有变量的定义-使用路径,考察测试用例对这些路径的覆盖程度,就可作为衡量测试效果的分析参考。
由代码可得出节点4为定义a,b,c。节点7,9,12为使用a,b,c。根据数据流测试数据流覆盖指标,拉普斯-韦约克层次结构图来描述程序的数据“定义-使用”对,并找出所有变量的定义-使用路径,可得到程序图G(P),如图1。使用路径du-path与清除路径dc-path定义/使用节点和定义/使用路径,如表1,表2。
表2 定义/使用节点
变量
定义节点
使用1
a
4
7,9,12
b
4
7,9,12
c
4
7,9,12
四.程序控制流分析
根据代码得出程序流程图
图2 程序流程图
2.根据程序流程图,将程序流程图转换为控制流图:
将程序流程图中的每个分支转换为一个独立的节点。
在分支前的顺序块合并入节点。
对所有的节点及程序控制的流向进行编号。如图3.
计算环形复杂度V(G)
V(G)=控制流图中的封闭区域的数量+1=1+3=4
V(G)=流图中边的数量-流图中节点的数量+2=11-9+2=4
V(G)=流图中判定节点的数量+1=3+1=4
故此程序的控制流图的环形复杂度为4
独立路径集合
根据上面的计算结果
原创力文档


文档评论(0)