实训题目基本路径测试用例设计上机
- 格式:docx
- 大小:69.53 KB
- 文档页数:4
管理学院上机实验报告专业班级课程名称软件测试技术学年学期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)画出程序的流图(控制流程图)。
软件测试上机练习题及答案
软件测试技术基本要求
一、考试内容
1、功能(黑盒)测试用例设计编程实现
(1)等价类划分法
(2)边界值分析法
(3)因果图法
(4)决策表法
2、结构(白盒)测试用例设计编程实现
(1)语句覆盖
(2)判定覆盖
(3)条件覆盖
(4)组合覆盖
(5)路径覆盖
(6)独立路径测试
二、考生注意事项
1、平时训练与考试
(1)思想重视
明确考试目的,端正考试态度,认真做好上机考试的准备工作。
(2)知识准备
平时认真学习,消化课程内容,熟悉编程环境和工具,认真做好课程实验。
(3)平时训练
应针对上机考试题型做好平时训练。
练习题(一)
1、假设某保险公司的人寿保险的保费计算方式为:投保额×保险费率。
其中,保险费率依
点数不同而有别,具体规则见下表。
根据问题的规格说明,从输入条件划分等价类,并设计测试用例。
输入等价类
测试用例
练习题(二)
1、假设某单位内部电话号码由三部分组成,分别是:分机号+前缀+后缀。
其中,分机号为
空白或一位数字;前缀为非‘0’开头的二位数字;后缀为非全0的3位数字。
假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。
根据问题的规格说明,从输入条件划分等价类,并设计测试用例。
一、实验目的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设计测试用例,使其满足基本路径覆盖的要求。
?。
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:使用基本路径测试法求解“自动售货机”问题实验学时: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"));}。
软件测试实验报告实验题目:白盒测试技术之基本路径测试姓名:祁兆彧学号: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四、心得与体会通过本次实验使我学会了在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。
一、编程语言及上机环境(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,分别输入一个无效等价类。
软件工程上机实验(一)专业:班级:姓名:学号:1.第3章习题 1 ——银行计算机积蓄系统的工作过程大概以下:储户填写的存款单或取款单由业务员键入系统,假如是存款则系统记录存款人姓名、地址(或电话号码)、身份证号码、存款种类、存款日期、到期日期、利率、密码(可选)等信息,并印出存款单给储户;假如是取款并且存款时留有密码,则系统第一查对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用实体 -关系图 (ERD)描述系统中的数据对象(数据模型)。
2. 第 3 章习题2——为方便游客,某航空企业拟开发一个机票预约系统。
旅游社把预约机票的游客信息(姓名、性别、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该系统,系统为游客安排航班,印出取票通知和账单,游客在飞机腾飞的前一天凭取票通知和账单交款取票,系统校正无误即印出机票给游客。
请用实体 -关系图 (ERD)描述本系统中的数据对象(数据模型)。
3.第 3 章习题 3——当前住院病人主要由护士护理,这样做不单需要大批护士,并且因为不可以随时察看危重病人的病情变化,还会延迟急救机遇。
某医院打算开发一个以计算机为中心的患者监护系统,请画出本系统的实体关系图(ERD)。
医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏、体温、血压、心电图等 ) ,准时记录病人状况,以形成患者日记。
当某个病人的生理信号高出医生规定的安全范围时,向值班护士发出警示信息。
别的,护士在需要时还可以够要求系统印出某个指定病人的病情报告。
4、图书室系统有借书者、管理员、系统管理员和一般阅读者四种角色。
借书者是图书室的会员,拥有自己的帐户,能够借阅图书;一般阅读者是非图书室会员,只好经过网络阅读图书室的基本信息,如阅读者经过查问能够获得图书室供给的各样服务信息;借书者能够从图书室系统中借、还、续借和预约图书,还可查问自己的借书信息和系统状况等;一般管理员辅助借书者达成借书、还书、续借服务;系统管理员负责图书管理如图书编目和图书登记、借书者管理和一般管理员管理等任务。
实训题目基本路径测试用例设计上机
文稿归稿存档编号:[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 设计测试用例,使其满足基本路径覆盖的要求。
?。