实训题目基本路径测试用例设计上机
软件测试上机报告
管理学院上机实验报告专业班级课程名称软件测试技术学年学期2015-2016学年度第1学期上机学时12指导教师学号姓名管理学院上机实验报告实验名称一、设计测试用例(2学时)实验目的及要求1、创建司机保险测试用例2、选用的案例是一个C程序,根据特定的条件确认司机的保险。
在对本案进行测试用例设计的时候,要注意根据需求中对司机输入信息中各值域的要求来进行用例设计。
另外要注意分别从正向测试和反向测试的角度来进行测试用例的设计。
实验过程与结果测试需求分析:RQ1: 如果司机已婚,则其保险与性别无关;RQ2: 确保司机年龄不低于20岁;RQ3: 如果司机已婚,检查其性别,M代表男性,F代表女性;RQ4: 如果司机未婚,检查其性别是否为男性且年龄是否超过30;RQ5: 如果司机未婚,检查其性别是否为女性且年龄是否超过25;RQ6: 如果婚姻状况不是M或U,显示错误信息;RQ7: 如果性别不是M或F,显示错误信息;RQ8: 如果年龄是零或负数,显示错误信息。
测试用例:ID测试名称目录输入输出1 婚姻状况有效输入除M、U、m或u以外的任何值错误信息2 性别有效输入除M、F、m或f以外的任何值错误信息3 年龄性别和年龄测试u、m、-20 错误信息4 年龄性别和年龄测试u、m、30 正确信息5 年龄性别和年龄测试u、m、20 正确信息6 年龄性别和年龄测试u、m、0 错误信息7 混合婚姻状况、性别和年龄m、m、30 正确信息8 混合婚姻状况、性别和年龄m、j、24 错误信息9 混合婚姻状况、性别和年龄u、j、31 错误信息10 混合婚姻状况、性别和年龄u、f、28 正确信息测试结果报告如下:测试名称:保险详细资料 单元名称:保险模块目的:检查所有可能出现条件的有效值测试结果:结论:该程序对有效输入能够正确输出,对无效输入无法识别,也无法输出错误信息,可以测试得出符合它的输入条件的司机是否已经投保,勉强可以使用。
不过软件还是存在有许多问题没有做好,比如:当输入的年龄为负,男或女没有输入结果都没有显示错误信息。
软件测试上机报告
管理学院上机实验报告专业班级课程名称软件测试技术学年学期2015-2016学年度第1学期上机学时12指导教师学号姓名管理学院上机实验报告实验名称一、设计测试用例(2学时)实验目的及要求1、创建司机保险测试用例2、选用的案例是一个C程序,根据特定的条件确认司机的保险。
在对本案进行测试用例设计的时候,要注意根据需求中对司机输入信息中各值域的要求来进行用例设计。
另外要注意分别从正向测试和反向测试的角度来进行测试用例的设计。
实验过程与结果测试需求分析:RQ1: 如果司机已婚,则其保险与性别无关;RQ2: 确保司机年龄不低于20岁;RQ3: 如果司机已婚,检查其性别,M代表男性,F代表女性;RQ4: 如果司机未婚,检查其性别是否为男性且年龄是否超过30;RQ5: 如果司机未婚,检查其性别是否为女性且年龄是否超过25;RQ6: 如果婚姻状况不是M或U,显示错误信息;RQ7: 如果性别不是M或F,显示错误信息;RQ8: 如果年龄是零或负数,显示错误信息。
测试用例:ID测试名称目录输入输出1 婚姻状况有效输入除M、U、m或u以外的任何值错误信息2 性别有效输入除M、F、m或f以外的任何值错误信息3 年龄性别和年龄测试u、m、-20 错误信息4 年龄性别和年龄测试u、m、30 正确信息5 年龄性别和年龄测试u、m、20 正确信息6 年龄性别和年龄测试u、m、0 错误信息7 混合婚姻状况、性别和年龄m、m、30 正确信息8 混合婚姻状况、性别和年龄m、j、24 错误信息9 混合婚姻状况、性别和年龄u、j、31 错误信息10 混合婚姻状况、性别和年龄u、f、28 正确信息测试结果报告如下:测试名称:保险详细资料 单元名称:保险模块目的:检查所有可能出现条件的有效值测试结果:结论:该程序对有效输入能够正确输出,对无效输入无法识别,也无法输出错误信息,可以测试得出符合它的输入条件的司机是否已经投保,勉强可以使用。
不过软件还是存在有许多问题没有做好,比如:当输入的年龄为负,男或女没有输入结果都没有显示错误信息。
白盒测试:路径测试及测试用例设计
20 14 —20 15 学年第 2 学期
软件测试技术课程
实验报告
学院:计算机科学技术
专业:软件工程
班级:软件12401
*名:***
学号:*********
任课教师:***
实验日期:2015年 6 月16 日实验题目实验5、白盒测试:路径测试及测试用例设计
实验目的1、掌握独立路径,程序基本路径测试的概念。
2、掌握独立路径测试法。
实验内容
程序int binsearch(int array[],int key)实现折半查找的功能。
数组array元素按升序排列,length为数组array的长度,key为要查找的值。
试用独立路径集测试法测试该程序,撰写实验报告。
关键代码如下(Java实现)
public static int binsearch(int array[],int key)
{
int low = 0;
int high = array.length - 1;
int middle;
while(low <= high)
{
middle = (low+high)/2;
if(array.[middle] == key)
{
return middle;
}else
if(array.[middle] < key)
{
low = middle +1;
}else
{
high = middle - 1;
}
}
return -1;
}
实验步骤:
1)画出程序的流图(控制流程图)。
白盒测试-基本路径测试习题
int i,max=0; int arr[]=new int[5];//设数组大小为5 System.out.println("请输入数组元素:"); for(i=0;i<=arr.length-1;i++) {
(1)void bubbleSort(int a[]){
(2)
for (int i = a.length; --i>=0; ) { //2.1 int i = a.length
(3)
boolean flipped = false; //2.2.1 –-i=0
(4)
for (int j = 0; j<i; j++) { //2.2.2 –-i>0
3.独立路径集 路径 1:2.1-2.2.1-2.2.2-15-16 路径 2:2.1-2.2.1-3-3.1-4.1-4.2-12-13-16 路径 3:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-10-4.3-4.2-12-13-16 路径 4:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-10-4.3-4.2-12-13-2.2.1-2.2.2-15-16 路径 5:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-6,7,8,9-10-4.3-4.2-12-13-2.2.1-2.2.2-15-16 路径 6:2.1-2.2.1-2.2.2-3-3.1-4.1-4.2-5-6,7,8,9-10-4.3-4.2-12-13-16
for (int j = 0; j<i; j++) { if (a[j] > a[j+1]) {
软件测试上机练习题及答案
软件测试上机练习题及答案
软件测试技术基本要求
一、考试内容
1、功能(黑盒)测试用例设计编程实现
(1)等价类划分法
(2)边界值分析法
(3)因果图法
(4)决策表法
2、结构(白盒)测试用例设计编程实现
(1)语句覆盖
(2)判定覆盖
(3)条件覆盖
(4)组合覆盖
(5)路径覆盖
(6)独立路径测试
二、考生注意事项
1、平时训练与考试
(1)思想重视
明确考试目的,端正考试态度,认真做好上机考试的准备工作。
(2)知识准备
平时认真学习,消化课程内容,熟悉编程环境和工具,认真做好课程实验。
(3)平时训练
应针对上机考试题型做好平时训练。
练习题(一)
1、假设某保险公司的人寿保险的保费计算方式为:投保额×保险费率。
其中,保险费率依
点数不同而有别,具体规则见下表。
根据问题的规格说明,从输入条件划分等价类,并设计测试用例。
输入等价类
测试用例
练习题(二)
1、假设某单位内部电话号码由三部分组成,分别是:分机号+前缀+后缀。
其中,分机号为
空白或一位数字;前缀为非‘0’开头的二位数字;后缀为非全0的3位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据问题的规格说明,从输入条件划分等价类,并设计测试用例。
用例图上机练习题
练习题:
试画出学院班级管理系统的用例图。 用例有:登录;找回密码;查看、修改、删 除、录入班级基本信息,参与者有管理员与系 院领导。 试画出学生成绩管理的用例图。 用例有:登录;找回密码;录入、修改、保 存、查询、删除成绩,参与者有教师与学生。
练习题:
试画出帐号管理系统的用例图。 用例有:创建新账户;设置账户;设置账户基本信 息;设置账户权限;删除帐户;查询账户。参与者有 系统管理员。 一台自动饮料售货机共有6种不同饮料,售货机上有6 个按钮,分别对应6种饮料,顾客可以通过按钮来选择 所要的饮料。每个按钮旁有一个指示灯,用来表示该 售货机中是否还有这种饮料可售。售货机有一个硬币 槽的找零槽,用来收钱和找钱,假设一位顾客购买矿 泉水,不用找零,请给出描述上述场景的用例图。
练习题
图书管理系统涉及读者信息管理、借阅信息管理、图书信 息管理等多方面。系统的使用对象为图书管理员和读者, 他们在使用系统时各自拥有不同的权限,以完成各自需要 的工作。 在图书管理系统中,图书管理员要为每个读者建立借阅账 号,用于记录读者的个人基本信息和图书的借阅信息;读 者的账号信息建立成功后,图书管理员还要给读者发借阅 证,这时读者就可以凭借该借阅证进行图书的借阅,或是 通过网络进行图书信息的查询和检索。 读者在借阅图书时,需要出示借阅证,输入借阅证号,以 验证借阅证的有效性及是否可续借。如果无效,则向读者 提示原因,如“卡号不对”、“已借满,不能续借”等; 如果有效,则显示读者的基本信息,如读者的个人资料及 借阅图书的历史信息等。读者提出借阅申请后,管理员对 借阅的图书进行登记。
练习题:
网上教学系统是在网络环境下,充分发挥网络的教育功 能和教育资源优势,向教育者和学习者提供的一种教和 学的环境,通过传递数字化教育信息,开展交互式的同步 或异步的教学活动。由于其具有教学资源共享、学习 时空不限、交流多向互动和便于学习合作的特点与优 势,作为传统教育的补充目前在我国的高校中得到了 广泛推广。 (1)学生登录本系统后可以浏览网站的网页信息、选择 和查找自己所需要学习文章和课件并进行下载。 (2)教师可以登录本系统,在网站上输入课程介绍、上 传课程的课件、发布、更新和修改消息。 (3)系统管理员可以进行对本系统网站页面的维护和执 行批准用户申请注册的操作。
上机实验
9
正交法-化工产品转化率
为提高某化工产品的转化率,选择了三个有关因素进行 条件试验,反应温度(A),反应时间(B),用碱 量(C),并确定了它们的试验范围如下:
A:80℃ ~90℃ B:90分钟~150分钟 C:5%~7%
在试验范围内都选了三个水平(即各因素的不同状态) ,如下所示:
若有零钱找,则显示〖零钱找完〗的红灯不会亮,若 投入 1元硬币及按饮料按钮,则送出饮料的同时找回 5角硬币。
请选择适当的黑盒测试方法,写出选择该方法的 原因,并使用该方法的步骤,设计出相应的测试用例
8
场景法-网上购物
网上购物很流行,整个订购过程为:用户到网站后, 进行商品的选择,当选好自己心仪的商品后进行订购 ,这时把所需商品放进购物车,等进行结帐的时候, 用户需要登录自己注册的帐号,登录成功后,进行结 帐并生成订单,整个购物过程结束。
2
了解一次测试的全过程
1. 小组讨论并设计记录测试用例的表格(excel) 2. 每个同学自行设计nextDate的测试用例,并填写到
设计好的表格中 3. 对nextDate进行测试,记录测试出的缺陷
3
编写三角形问题的C++程序
三角形问题是测试中的经典问题,尝试编写c++程序 实现三角形问题的程序。注意从测试的角度来考虑编 程需注意些什么问题。
5
因果图/决策表(1)
1、使用因果图法为三角形问题设计测试用例。
2、某软件的一个模块的需求规格说明书中描述: (1)年薪制员工:严重过失,扣年终风险金的4%
;过失,扣年终风险金的2%。 (2)非年薪制员工:严重过失,扣当月薪资的8%
软件测试基本路径法设计测试用例Junit单元测试
一、实验目的1、掌握用基本路径法设计测试用例。
2、掌握用Junit进行单元测试二、实验内容1、对三角形问题,用基本路径法设计白盒测试用例。
2.使用Junit对下面的类进行测试:有一个存款帐户类Money,暂时有存款add和Money类对象的比较equals方法。
三、实验环境Windows XP ProfessionJBuilder 2008 R2四、实验步骤(1)基本路径法设计测试用例1、程序如下:public void Testtriangle(int a, int b, int c)1. {2. bool j, k;3. j = ((a > 0 || a <= 100) || (b > 0 || b <= 100) || (c > 0 || c <= 100));4. k = (a < b + c) && (b < a + c) && (c < a + b);5. if (!k)6. Console.WriteLine("非三角形");7. if(j && k )8. {9. if (a == b||b == c||c==a)10. {{if (a==b && b==c && c==a)11. Console.WriteLine("等边三角形");}12. else Console.WriteLine("等腰三角形"); }13. else if(a*a+b*b==c*c||a*a+c*c==b*b|| b*b +c*c==a*a)14. { {if (a == b||b == c||c==a)15. Console.WriteLine("等腰直角三角形");}16.else Console.WriteLine("直角三角形");}17. else18. Console.WriteLine("一般三角形");19. }20. }2、程序流程图4、计算环形复杂度18(条边)- 14(个节点)+ 2 =65、导出独立路径路径1:5 → 6→ 20路径2:5→ 7 → 18 → 19→ 20路径3:5→ 7 → 9 → 12 →19→ 20路径4:5→ 7 → 9→ 10 → 11→ 19 → 20路径5:5 → 7 → 13→ 15 →19 → 20路径6:5→ 7 → 13→ 14 →16 → 19 → 206、设计测试用例输入数据预期输出测试路径测试用例1 k=0 非三角形路径1测试用例2 K=1 一般三角形路径2测试用例3 k=1,a=3,b=3,c=2 等腰三角形路径3测试用例4 k=1,a=3,b=3,c=3 等边三角形路径4测试用例5 k=1,a=3,b=4,c=5 直角三角形路径5等腰直角三角形路径6测试用例6k=1,a=1,b=1,c=2(2)Junit单元测试1.先安装Java虚拟机JDK,然后再运行Eclipas;2.启动Eclipse,并在在Eclipse中配置Junit2.1.创建变量JUNIT和JUNIT_SRC。
软件测试技术实践考核上机练习题
软件测试技术实践考核上机练习题⼀、编程语⾔及上机环境(1)C/C++编程语⾔(2)VC++6.0及以上编译环境⼆、考试内容1、功能(⿊盒)测试⽤例设计编程实现(1)等价类划分法(2)边界值分析法(3)因果图法(4)决策表法2、结构(⽩盒)测试⽤例设计编程实现(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)组合覆盖(5)路径覆盖(6)独⽴路径测试三、上机考试程序(1)考⽣抽取试题。
(2)排定考试座位(机位)。
(3)启动上机环境。
(4)开始考试。
(5)程序验收。
(6)适当的⼝试。
(7)成绩评定。
上机考试时间为120分钟。
上机考试成绩评定的依据主要是根据试题的完成情况和程序的运⾏结果,以及必要的⼝试。
四、考⽣注意事项1、平时训练与考试(1)思想重视明确考试⽬的,端正考试态度,认真做好上机考试的准备⼯作。
(2)知识准备平时认真学习,消化课程内容,熟悉编程环境和⼯具,认真做好课程实验。
2、遵守考场纪律对于下列情况之⼀者,实践课成绩为不及格。
(1)上机程序运⾏未通过。
(2)拷贝他⼈的上机程序。
(3)上机考试严重违纪。
练习题(⼀)1、NextDate函数问题说明:输⼊⼀个⽇期,求从输⼊⽇期算起的第三天⽇期。
例如,输⼊为2008年8⽉8⽇,则该程序的输出为2008年8⽉10⽇。
NextDate函数包含三个整数变量month、day和year,并且满⾜下列条件:1≤ month ≤12、1≤ day ≤31和2000≤ year ≤2100。
分析各种输⼊情况,列出为输⼊变量month、day、year 划分的有效等价类:编程实现:(1)对每⼀个有效等价类,⾄少设计⼀个测试⽤例。
输⼊格式:输⼊(yyyymmdd):输出格式:输出(yyyy-mm-dd):覆盖等价类(ID类型):闰年(Y/N):例如:输⼊(yyyymmdd) 20080105↙(回车)输出(yyyy-mm-dd): 2008-01-07覆盖等价类(ID类型):1,8,11闰年(Y/N):N(2)对每⼀个⽆效的month、day和year,分别输⼊⼀个⽆效等价类。
基本路径测试用例
基本路径测试用例是指对于一个程序模块,通过使用路径分析技术,确定所有可能的路径,并为每个路径设计测试用例。
基本路径测试用例是一种白盒测试方法,它关注程序的内部逻辑结构而不是外部行为。
确定基本路径测试用例的步骤如下:
1. 画出程序的控制流图:控制流图是一个有向图,其中每个节点表示程序的一个基本语句或条件判断,每个边表示一个控制转移。
2. 计算程序的基本路径数:基本路径数是程序中所有可能路径的总数。
可以通过计算程序的控制流图中节点的数量来得到基本路径数。
3. 生成测试用例:对于每个基本路径,设计一个测试用例,确保该路径在程序运行时被执行到。
在设计基本路径测试用例时,需要考虑以下因素:
1. 输入数据:为每个测试用例选择合适的输入数据,以确保测试用例能够覆盖程序的所有分支和条件。
2. 程序状态:考虑程序在执行测试用例之前的状态,以确保测试用例能够正确地执行。
3. 边界条件:考虑程序的边界条件,以确保测试用例能够覆盖所
有可能的输入和输出情况。
4. 异常情况:考虑程序的异常情况,例如输入非法数据或程序出现错误时的处理方式,以确保测试用例能够覆盖这些情况。
总之,基本路径测试用例是一种有效的白盒测试方法,它可以帮助开发人员发现程序中的潜在问题并提高程序的可靠性。
实训题目:基本路径测试用例设计----------上机
实训题目:基本路径测试用例设计------------上机实训目的:1、一步熟悉白盒测试的方法和策略2、点掌握圈复杂度概念和基本路径测试用例设计方法3、增强测试经验实训地点:机房实训课时:2课时实训重点、难点:基本路径测试用例设计实训安排:首先讲解基本路径测试设计测试用例的步骤,要求学生注意总结方法和技巧,然后布置上机任务,要求学生对照课件和课本完成上机任务。
老师在机房进行辅导。
实训步骤:一、Voidsort(inti,intj,intk)1{2intm,n,p;3m=n=p=0;4if(i>5andj<8)5m++;6else7if(k>=9)8n++;9else10p++;11Printf(“%d,%d,%d”,m,n,p);12}按照基本路径测试方法设计测试用例?1、画流图,计算复杂度2、导出测试用例阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。
以下代码由C语言书写,请按要求回答问题。
IntIsLeap(intyear)1{2if(year%4==0)3{4if(year%100==0)5{6if(year%400==0)7leap=1;8else9leap=0;10}11else12leap=1;13}14else15leap=0;16returnleap;17}【问题1】(3分)请画出以上代码的控制流图【问题2】(4分)请计算上述控制流图的圈复杂度V(G)(独立线性路径数)【问题3】(8分)假设输入的取值范围是1000<year<2001,请使用基本路径测试法为变量year设计测试用例,使其满足基本路径覆盖的要求。
?。
1.白盒测试:路径测试及测试用例设计
20 15 —20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 4 月19 日实验题目实验1、黑盒测试:等价类划分法实验目的1、掌握等价类的概念2、掌握等价类划分方法的测试用例设计方法。
实验内容 1、对房价计算问题,运用等价类测试用例设计法设计测试用例,并执行测试,撰写实验报告。
房价计算问题:房屋价格=房屋面积×面积单价;房屋面积有:75, 95,125,165,185平方米四种;面积单价与楼层相关:房屋共7层,2楼单价3500元/平方米为基准价,1楼单价比基准价低2%,3,4楼比基准价高3%,5,6楼比基准价少2%,7楼比基准价少3%。
关键代码如下(Java实现)public class BlackTest1 {int Area;int Floor;double sum;Scanner scan = new Scanner(System.in);public static void main(String[] args){BlackTest1 t = new BlackTest1();t.display();}public void display(){System.out.println("----------------欢迎来到房价计算器---------------");System.out.println("| 注:选择你要操作的编号0-9 |");System.out.println("------------------------------------------------");System.out.println("* *");System.out.println("* 9.计算房价 *");System.out.println("* *");System.out.println("* 0.退出系统 *");System.out.println("* *");System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++");int select = scan.nextInt();switch(select){case 9:System.out.println("请输入所在楼层1-7Floor:");Floor = scan.nextInt();System.out.println("请输入楼层面积Area:");Area = scan.nextInt();switch(Floor){case 1:sum= Area*3500*(1-0.02);System.out.println("您选择"+Floor+"楼,住房面积是:"+Area+"平方米");System.out.println("这套房一共要花"+ sum +"元");break;case 2:sum = Area*3500*1;System.out.println("您选择"+Floor+"楼,住房面积是:"+Area+"平方米");System.out.println("这套房一共要花"+ sum +"元");break;case 3:case 4:sum = Area*3500*(1+0.03);System.out.println("您选择"+Floor+"楼,住房面积是:"+Area+"平方米");System.out.println("这套房一共要花"+ sum +"元");break;case 5:case 6:sum = Area*3500*(1-0.02);System.out.println("您选择"+Floor+"楼,住房面积是:"+Area+"平方米");System.out.println("这套房一共要花"+ sum +"元");break;case 7:sum = Area*3500*(1-0.03);System.out.println("您选择"+Floor+"楼,住房面积是:"+Area+"平方米");System.out.println("这套房一共要花"+ sum +"元");break;default :break;}display();break;default :break;}}}实验步骤:①划分等价类,得到等价类表。
[练习]实验04.使用基本路径测试法求解“自动售货机”问题
实验04:使用基本路径测试法求解“自动售货机”问题实验学时:2实验类型:设计实验要求:必修一、实验目的●理解并掌握基本路径覆盖测试法,能够实际运用;●使用Eclipse+JUnit+EclEmma进行单元测试。
二、实验要求●开发环境:Eclipse v3.7及以上版本;JUnit v4.10及以上版本;文本编辑软件。
●硬件要求:CPU PIV 以上,256M 内存,1G 硬盘空间。
●系统要求:Windows98/Me/XP/NT/2000,IE 5 以上。
三、实验内容1.下载并安装Eclipse+JUnit+EclEmma实验环境;2.通读自动售货机程序,并在Eclip se环境下运行该程序;3.使用基本路径测试法设计测试用例;⏹绘制程序控制流图;⏹计算环路复杂度;⏹确定基本路径;⏹设计测试用例。
4.完整填写以下表格:5.编写JUnit测试用例,并运行程序,保证所有测试用例通过测试;6.使用EclEmma检测测试用例覆盖率,保证覆盖率达到100%。
四、实验结果检查与评定●提交时间:2013年4月24日之前/2013年5月1日22:00之前●提交地址:学习委员邮箱●文档命名方式:12软件专升本X班_0907052XXX_张三_实验04.doc实验报告实验序号:实验项目名称:附录问题描述自动售货机程序:●若投入5角钱或1元钱的硬币,按下“橙汁”或“啤酒”按钮,则相应的饮料就送出来;●若售货机没有零钱找,则显示“零钱找完”的红灯亮,这是再投入一元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;●若有零钱找,则显示“零钱找完”的红灯灭,在送出饮料的同时退还5角硬币。
程序流程图实验源代码(有缺陷的源代码)public clas s SaleMa chine {private int countOf Beer, co untOfOr angeJuic e, count OfFiveCe nts, co untOfOne Dollar;private Str ing[] ty peOfGood s = {"B eer", "O rangeJui ce"};private Str ing resu ltOfDeal;public Sale Machine(){initial();}public void initial(){countOfBeer = 6;countOfOran geJuice= 6;countOfFive Cents = 6;countOfOneD ollar = 6;}public Sale Machine(int five Cents, int oneD ollar, i nt numOf Beer, i nt numOf Orange)//便于测试的初始化函数{countOfFive Cents = fiveCent s;countOfOneD ollar = oneDolla r;countOfBeer = numOf Beer;countOfOran geJuice= numOfO range;}public Stri ng curre ntState(){String stat e = "Cur rent Sta te\n" +"Beer: " + countOfB eer + "\n" +"Orange Juice: " + countOfO rangeJu ice + "\n" +"5 Cents: " + count OfFiveCe nts + "\n" +"1 Dollar: " + coun tOfOneDo llar;return stat e;}public Stri ng opera tion(Str ing typ e, Strin g money)//type是用户选择的产品,money是用户投币种类{if(money.eq ualsIgno reCase("5C")) //如果用户投入5角钱{if(type.equ als(type OfGoods[0])) //如果用户选择啤酒{if(countOfB eer>0) //如果还有啤酒{countOfBeer--;countOfFive Cents++;resultOfDea l = "Inp ut Infor mation \n" +"Type: Beer; Money: 5 Cents; Chang e: 0\n\n" + currentStat e();return resu ltOfDeal;}else{resultOfDea l = "Fai lure In formatio n \n" + "Beer S hortage";return resu ltOfDeal;}}else if (ty pe.equal s(typeOf Goods[1])) //用户选择橙汁{if(countOfO rangeJui ce > 0){countOfOran geJuice--;countOfFive Cents++;resultOfDea l = "Inp ut Infor mation \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" + currentStat e();return resu ltOfDeal;}else{resultOfDea l = "Fai lure Inf ormatio n \n" + "Type Er ror";return resu ltOfDeal;}}else{resultOfDea l = "Fai lure Inf ormatio n \n" + "Type Er ror";return resu ltOfDeal;}}else if(mon ey.equal sIgnoreC ase("1D")) //如果用户投入一元钱{if(countOfF iveCents>0) //如果用户投入一元钱{if(countOfF iveCents > 0) //如果用户有零钱{if(type.equ als(type OfGoods[0])&&co untOfBee r>0)//如果用户选择啤酒而且还有啤酒{countOfBeer--;countOfFive Cents--;countOfOneD ollar++;resultOfDea l = "Inp ut Infor mation \n" +"ype: Beer; Money: 1 Dollar; Change: 5 Cents\n\n"+ currentStat e();return resu ltOfDeal;}else if (ty pe.equal s(typeOf Goods[1]))//如果用户选择橙汁而且还有橙汁{countOfOran geJuice--;countOfFive Cents --;countOfOneD ollar ++;resultOfDea l = "Inp ut Infor mation: \n" +"Type: OrangeJuice; Money: 1 Dolla r; Chang e: 5 Cents\n\n"+ curren tState();return resu ltOfDeal;}else{if(type.equ als(type OfGoods[0])&&co untOfOra ngeJuice<=0){resultOfDea l = "Fai lue Info rmation \n" + "Beer Sho rtage";return resu ltOfDeal;}else if(typ e.equals(typeOfG oods[1])&&count OfOrange Juice<=0){resultOfDea l="Failu re I nformati on \n"+"Oran geJuice Short age";return resu ltOfDeal;}else{resultOfDea l = "Fai lure Inf ormatio n \n" + "Type Er ror";return resu ltOfDeal;}}}else{resultOfDea l = "Fai lure Inf ormatio n \n" + "Change Shortag e";return resu ltOfDeal;}}else{resultOfDea l = "Fa ilure In formati on \n"+ "Money Error";return resu ltOfDeal;}}resultOfDea l = "Fai lure Inf ormatio n \n" + "Money E rror";return resu ltOfDeal;}}测试用例示例代码:import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class SaleMachineTest {SaleMachine saleMachine = new SaleMachine();@Beforepublic void setUp() throws Exception {}@Testpublic void testOperation1() {String expectedResult = "Input Information \n" +"Type: OrangeJuice; Money: 5 Cents; Change: 0\n\n" +"Current State\n" +"Beer: 6\n" +"Orange Juice: 5\n" +"5 Cents: 7\n" +"1 Dollar: 6";assertEquals(expectedResult,saleMachine.operation("OrangeJuice", "5C"));}。
第4次实验基本路径测试(软件工程)
软件测试实验报告实验题目:白盒测试技术之基本路径测试姓名:祁兆彧学号:1012210142班级:11计本1指导老师:蒋平一、实验介绍1.实验技术基本路径测试是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
2.实验对象#include "stdio.h"void main(){int n,i;int x=0;int y=0;printf("请输入n\n");scanf("%d",&n);printf("请输入i\n");scanf("%d",&i);while ( n-- > 0 ){if ( i==0 )x=y+2;elseif ( i==1 )y=y+10;elsex=y+20;}// whileprintf("x=%d,y=%d\n",x,y);}// main三、测试用例设计程序流程图如下所示:控制流图如下所示:17463295abcdefg8计算程序环路复杂V(G)=E-N+2=11-9+2=4独立路径集合为:路径1: 1-2-9路径2: 1-2-3-5-6-8-2-9路径3: 1-2-3-5-7-8-2-9路径4: 1-2-3-4-8-2-9测试用例设计:测试用例{n,i} 预期路径预期输出{1,0} a-c-d-b X=2,y=0{1,1} a-c-e-g-b X=0,y=10{1,2} a-c-e-f-b X=20,y=0{0,3} a-b X=0,y=0三、实验结果输入输出n=1 , i= 0 X=2,y=0n=1,i=1 X=0,y=10n=1,i=2 X=20,y=0n=0,i=3 X=0,y=0四、心得与体会通过本次实验使我学会了在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
最新软件测试技术实践考核上机练习题(1004)
一、编程语言及上机环境(1)C/C++编程语言(2)VC++6.0及以上编译环境二、考试内容1、功能(黑盒)测试用例设计编程实现(1)等价类划分法(2)边界值分析法(3)因果图法(4)决策表法2、结构(白盒)测试用例设计编程实现(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)组合覆盖(5)路径覆盖(6)独立路径测试三、上机考试程序(1)考生抽取试题。
(2)排定考试座位(机位)。
(3)启动上机环境。
(4)开始考试。
(5)程序验收。
(6)适当的口试。
(7)成绩评定。
上机考试时间为120分钟。
上机考试成绩评定的依据主要是根据试题的完成情况和程序的运行结果,以及必要的口试。
四、考生注意事项1、平时训练与考试(1)思想重视明确考试目的,端正考试态度,认真做好上机考试的准备工作。
(2)知识准备平时认真学习,消化课程内容,熟悉编程环境和工具,认真做好课程实验。
(3)平时训练应针对上机考试题型做好平时训练。
2、遵守考场纪律对于下列情况之一者,实践课成绩为不及格。
(1)上机程序运行未通过。
(2)拷贝他人的上机程序。
(3)上机考试严重违纪。
练习题(一)1、NextDate函数问题说明:输入一个日期,求从输入日期算起的第三天日期。
例如,输入为2008年8月8日,则该程序的输出为2008年8月10日。
NextDate函数包含三个整数变量month、day和year,并且满足下列条件:1≤ month ≤12、1≤ day ≤31和2000≤ year ≤2100。
分析各种输入情况,列出为输入变量month、day、year 划分的有效等价类:编程实现:(1)对每一个有效等价类,至少设计一个测试用例。
输入格式:输入(yyyymmdd):输出格式:输出(yyyy-mm-dd):覆盖等价类(ID类型):闰年(Y/N):例如:输入(yyyymmdd) 20080105↙(回车)输出(yyyy-mm-dd): 2008-01-07覆盖等价类(ID类型):1,8,11闰年(Y/N):N(2)对每一个无效的month、day和year,分别输入一个无效等价类。
基本路径法
控制流图
McCabe的导出强连接图
五个线性独立路径
P1:A,B,C,G
基
P2:A,B,C,B,C,G P3:A,B,E,F,G
P4:A,D,E,F,G
第5页/共23P页5:A,D,F,G
圈数计算
•令 • e是G中的边数。 • n是G中的节点数。 • p是G中的连通分量个数。
• 不增加从汇节点到源节点的边 • V(G)=e-n+2p
}
第16页/共23页
10.2.1 白盒测试技术
Step1 根据程序的逻辑结构画出流程图
11
1
2 模块流程图
3
6
4
7
8
5
9
10
第17页/共23页
Step2 根据流程图画出流图
10.2.1 白盒测试技术
流 图 刻 画 了 程 序 的 控 制 结 构 , 但 不 涉 及 程 序 的 过 程 性 细节
• 节点:过程块,结合点,判定点
2. {
3. if ( temp == ">=")
4.
m_oper.Set CurSe l(0);
5. else if (temp == ">")
6.
m_oper.Set CurSe l(1);
7. else if ( temp == "==")
8.
m_oper.Set CurSe l(2);
第10页/共23页
10.2.1 白盒测试技术
第21页/共23页
Step4 对每条基本路径设计测试用例
10.2.1 白盒测试技术
对于路径1 – 11
✓ nPosX 取-1, nPosY取任意值
软件工程第一次上机
软件工程上机实验(一)专业:班级:姓名:学号:1.第3章习题 1 ——银行计算机积蓄系统的工作过程大概以下:储户填写的存款单或取款单由业务员键入系统,假如是存款则系统记录存款人姓名、地址(或电话号码)、身份证号码、存款种类、存款日期、到期日期、利率、密码(可选)等信息,并印出存款单给储户;假如是取款并且存款时留有密码,则系统第一查对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用实体 -关系图 (ERD)描述系统中的数据对象(数据模型)。
2. 第 3 章习题2——为方便游客,某航空企业拟开发一个机票预约系统。
旅游社把预约机票的游客信息(姓名、性别、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该系统,系统为游客安排航班,印出取票通知和账单,游客在飞机腾飞的前一天凭取票通知和账单交款取票,系统校正无误即印出机票给游客。
请用实体 -关系图 (ERD)描述本系统中的数据对象(数据模型)。
3.第 3 章习题 3——当前住院病人主要由护士护理,这样做不单需要大批护士,并且因为不可以随时察看危重病人的病情变化,还会延迟急救机遇。
某医院打算开发一个以计算机为中心的患者监护系统,请画出本系统的实体关系图(ERD)。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等 ) ,准时记录病人状况,以形成患者日记。
当某个病人的生理信号高出医生规定的安全范围时,向值班护士发出警示信息。
别的,护士在需要时还可以够要求系统印出某个指定病人的病情报告。
4、图书室系统有借书者、管理员、系统管理员和一般阅读者四种角色。
借书者是图书室的会员,拥有自己的帐户,能够借阅图书;一般阅读者是非图书室会员,只好经过网络阅读图书室的基本信息,如阅读者经过查问能够获得图书室供给的各样服务信息;借书者能够从图书室系统中借、还、续借和预约图书,还可查问自己的借书信息和系统状况等;一般管理员辅助借书者达成借书、还书、续借服务;系统管理员负责图书管理如图书编目和图书登记、借书者管理和一般管理员管理等任务。
基本路径测试方法在仿真训练软件测试中的应用
基本路径测试方法在仿真训练软件测试中的应用在仿真训练软件中,基本路径测试是一种常见的测试方法。
该方法将软件的各种路径进行系统性的测试,可以有效地发现和修复程序中的错误,从而提高软件的可靠性和稳定性。
本文将详细介绍基本路径测试方法在仿真训练软件测试中的应用。
一、基本路径测试的概念和原理基本路径测试是一种测试方法,它可以对程序的所有可能运行路径进行测试,用来检测程序是否能够按照预期的方式运行。
基本路径测试基于控制流图中的路径结构,将程序的所有路径分解成基本路径,然后针对每个基本路径进行测试。
基本路径是指从程序的起点到终点的一条路径,该路径上每个语句只执行一次,且不包含循环语句。
基本路径测试的原理是基于程序的控制流图进行分析。
控制流图是一种图形化表示程序控制流程的方法,其中每个节点表示程序中的一个语句,每个边表示两个语句之间的控制关系。
基本路径测试的目标是发现程序中所有可能的执行路径,并对每个路径进行测试,以确保程序的正确性和鲁棒性。
二、基本路径测试的步骤基本路径测试包括以下四个步骤:1. 绘制程序的控制流图。
控制流图是基本路径测试的前提,它是一种图形化的表示程序控制流程的方法。
通过绘制控制流图,可以清晰地了解程序中各个语句的控制关系,便于识别程序中的可能错误。
2. 确定程序的基本路径。
通过分析控制流图,识别程序中所有可能的执行路径,并将其分解成基本路径。
每个基本路径上必须至少包含一个节点,每个节点至少包含一条进入边和一条出边。
3. 设计测试用例。
对每个基本路径设计测试用例,以覆盖基本路径上的所有语句和分支,并验证程序的正确性和鲁棒性。
4. 执行测试用例。
按照设计的测试用例对程序进行测试,记录测试结果和发现的错误,及时对错误进行修复。
三、基本路径测试的优点和缺点基本路径测试具有以下优点:1. 能够覆盖程序中的所有可能运行路径,发现所有潜在的错误。
通过对每个基本路径进行测试,可以确保程序的正确性和鲁棒性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训题目基本路径测试用例设计上机
文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-
实训题目:基本路径测试用例设计------------上机
实训目的:
1、一步熟悉白盒测试的方法和策略
2、点掌握圈复杂度概念和基本路径测试用例设计方法
3、增强测试经验
实训地点:机房
实训课时:2课时
实训重点、难点:基本路径测试用例设计
实训安排:首先讲解基本路径测试设计测试用例的步骤,要求学生注意总结方法和技巧,然后布置上机任务,要求学生对照课件和课本完成上机任务。
老师在机房进行辅导。
实训步骤:
一、Void sort(int i,int j,int k)
1 {
2 int m,n,p;
3 m=n=p=0;
4 if (i>
5 and j<8)
5m++;
6else
7 if(k>=9)
8 n++;
9 else
10 p++;
11 Printf(“%d,%d,%d”,m,n,p);
12 }
按照基本路径测试方法设计测试用例?
1、画流图,计算复杂度
2、导出测试用例
阅读下列说明,回答问题1 至问题3,将解答填入答题纸的对应栏内。
【说明】
使用基本路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。
以下代码由C 语言书写,请按要求回答问题。
Int IsLeap(int year)
1 {
2 if (year % 4 == 0)
3 {
4 if (year % 100 == 0)
5 {
6 if ( year % 400 == 0)
7 leap = 1;
8 else
9 leap = 0;
10 }
11 else
12 leap = 1;
13 }
14 else
15 leap = 0;
16 return leap;
17 }
【问题1】(3 分)
请画出以上代码的控制流图
【问题2】(4 分)
请计算上述控制流图的圈复杂度V(G)(独立线性路径数)
【问题3】(8 分)
假设输入的取值范围是1000 < year < 2001,请使用基本路径测试法为变量year 设计测试用例,使其满足基本路径覆盖的要求。
?。