1、对于下列情况之一者,实践课成绩为不及格。(1)上机程序运行未通过。(2)拷贝他人的上机程序。(3)上机考试严重违纪。软件测试技术实践考核上机考试练习题(1004)练习题(一)1、NextDate函数问题说明:输入一个日期,求从输入日期算起的第三天日期。例如,输入为2008年8月8日,则该程序的输出为2008年8月10日。NextDate函数包含三个整数变量month、day和year,并且满足下列条件:1 month 12、1 day 31和2000 year 2100。分析各种输入情况,列出为输入变量month、day、year划分的有效等价类: 输入等价类输入ID有效等价类day11 da
2、y262day=273day=284day=295day=306day=31month7month=4,6,9,118month=1,3,5,7,8,109month=210month=12year11闰年12非闰年 编程实现: (1) 对每一个有效等价类,至少设计一个测试用例。 输入格式:输入(yyyymmdd): 输出格式:输出(yyyy-mm-dd): 覆盖等价类(ID类型): 闰年(Y/N): 例如:输入(yyyymmdd) 20080105(回车) 2008-01-071,8,11N (2)对每一个无效的month、day和year,分别输入一个无效等价类。输入(yyyymmdd)
3、20081305 (回车) 无效月份2、 阅读下面的一段程序:void Test1( int N, int I )1 2 int x=0;3 int y=0;4 while (N-0)5 6 if (I=0)7 x=y+2;8 else9 if (I=1)10 y=y+10;11 else12 x=y+20;13 / while14 / Test1根据所给定的程序,确定该程序的独立路径如下:路径1:414 路径2:46714 路径3:46910414 路径4:46912414 对每一个独立路径,设计一个测试用例,并插入一条显示输出语句(printf/cout),显示测试路径标号。输入(N,I)
4、:输出(x,y):x= y=路径ID: 1,2 (回车)x=20 y=0测试路径4练习题(二)1、 三角形问题说明:输入三个正整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型是否为等边三角形、等腰三角形、直角三角形、普通三角 形以及非三角形。根据问题的规格说明,可以从输出域划分5种等价类: 输出等价类条件等价类a=bb=ca=c(a+bcb+caa+cb)等边三角形a=bb=ca=c(a+b等腰三角形 a2+b2=c2b2+c2=a2a2+c2=b2(a+b直角三角形abbcac(a+b普通三角形(a+bcb+caa+cb)a0b0c0非三角形 (1) 对每一个
5、输出等价类,至少设计一个测试用例。输入(a,b,c):输出(ID类型): 5,5,5 (回车)1(等边三角形),2(等腰三角形) (2)假设10a,b,c100,根据划分的等价类,设计边界值测试用例。 60,60,10 (回车)2(等腰三角形)2、阅读下面的一段程序, void Test2(int X,int A,int B) 1 2 int k=0,j=0; 3 if(A1)&(B=0)4 5 X=X/A;6 k=A*B-1;7 8 if(A=2)|(X1)9 X=X+1;10 j=X+3; 11 / Test2381011356810113891011356891011输入(X,A,B):
6、输出(k,j):k= j= 1,2,1 (回车)k=0 j=5练习题(三)1、假设某保险公司的人寿保险的保费计算方式为:投保额保险费率。其中,保险费率依点数不同而有别,具体规则见下表。年龄性别婚姻点数与保险费率20-3940-59其它男M女F已婚T未婚F10点A3)&(Z5)9 j=X*Y+10;10 j=j%3; 11 / Test3根据所给定的程序,该程序的可能路径如下:12356891011123810111238910111235681011 (1)设计测试用例,实现分支判定覆盖,使得每个判定中的真假值至少执行一次,并在判定路径中插入一条显示输出语句(printf/cout),输出路径
7、标号。输入(X,Y,Z): 2,5,5 (回车)k=0 j=0路径2:(2)设计测试用例,实现路径覆盖,使得每个可能路径至少执行一次。 4,5,5 (回车)k=19 j=0练习题(四)1、某软件规格说明书对某二位编码的定义如下:编码的第一个字符必须是A或B,第二个字符必须是一位数字,此情况下给出信息:编码正确;如果第一个字符不是A或B,则给出信息:编码错误;如果第一个字符是A或B,第二个字符不是数字,则给出信息:修改编码。根据问题的规格说明,列出因果表,将因果表转换成简化的决策表。因果表原因(输入)结果(输出)第一个字母是AX显示编码错误第一个字母是BY显示编码正确第二个字母是数字Z显示修改编
8、码 因果图转换成简化的决策表 规则Y/N (1) 对每一个规则,至少设计一个测试用例。输入(编码XY): A,A (回车)Z(修改编码) (2)假设1Y9,设计边界值测试用例。输入(XY): A 0 (回车)X(编码错误)2、阅读下面一段程序,程序的功能是:计算学生的人数、学生成绩的平均值和总分数。该程序运行最多输入50个学生成绩,以-1作为结束标志。void Test4(int n1,int sum,int average) 1 int i=1,n1=n2=0,sum=0;2 while(scorei-1)&(n20)&( scorei13 average=sum/n1;14 else15
9、average=-1; 16 / Test4根据所给定的程序,该程序的独立路径如下:1212131612121415161245781011241112131612451011241112141516输入(scorek):输出(n1,sum, average):n1= sum= average= -1 (回车)n1=40 sum=3000 average=75练习题(五)1、假设某单位内部电话号码由三部分组成,分别是:分机号+前缀+后缀。其中,分机号为空白或一位数字;前缀为非0开头的二位数字;后缀为非全0的3位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。分
10、机号1位数字多于1位数字空白1位非数字前缀01-99少于2位数字多于2位数字含有非数字起始位为0后缀001-999少于3位数字多于3位数字1314全0输入(分机号-前缀-后缀):输出(接受Y/拒绝N): 3,12,001 (回车)覆盖等价类(ID类型):1,3,4 (2)对每一个无效的输入,设计一个无效等价类,并设计测试用例。 #,12,111 (回车)void Test5(int X,int Y,int Z) 11 / Test5 (1)设计测试用例,实现语句覆盖,并在每条语句后插入一条显示输出语句(printf/cout),输出语句标号。执行语句2执行语句3执行语句5执行语句6执行语句8执行语句9执行语句10(2)设计测试用例,实现条件覆盖,使得每个判定中的每个条件至少执行一次。 2,5,15 (回车)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1