1、abc; if(1=a&a=100)&(1=b&b=c&cc&a+cb&c+ba) if(a=b&a=c&c=b) cout三角形为等边三角形 else if(a=b|a=c|c=b) 三角形为等腰三角形 else if(a*a+b*b)=c*c|(c*c+b*b)=a*a|(a*a+c*c)=b*b)三角形为直角三角形 else couta&a=b&c=b1,a100,1,b1,ca=b|c=b非三角形a+bc|a+cb|c+b六、实验结论:通过实验要求的条件编写的程序和测试用列的预期输出证明给该 程序是正确的实验二 :1. 了解xtDate函数的边界值分析测试用例。程序有三个输入变量mon
2、th、day、year(month、day和year均为整数值,并且满足:1month12、1day31、1900 year 2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。请用等价类测试和边界测试法设计测试用例。stdio.h int IsLeapYear(int Year);int IsCurrentDate(int Year,int Month,int Day);int ReturnNextDay(int Year,int Month,int Day);int Lea
3、pYear_Month_SumDay12=31,29,31,30,31,30,31,31,30,31,30,31; int Year=0,Month=0,Day=0,NextDay=0; printf(pleace enter right Date(example:2005 6 27):n); scanf(%d%d%d,&Year,&Month,&Day); NextDay=ReturnNextDay(Year,Month,Day); switch (NextDay) case 0: printf(not a current daten break; case 1: if (Month=12)
4、 Year+;Month=1; else Month+; break; if (NextDay!=0) printf(The you input next date is %d-%d-%d.n,Year,Month,NextDay);int IsLeapYear(int Year) if (Year%4=0) if (Year%400) return 1; else if (Year%100=0) return 0; else return 1; else return 0;int IsCurrentDate(int Year,int Month,int Day) if (Year2050)
5、& (Month12) & (Month1) & (Day31) )输入的数据有错,请重新输入! else return 1;int ReturnNextDay(int Year,int Month,int Day) int ThisMonthSumDay; if (IsCurrentDate(Year,Month,Day)=1) ThisMonthSumDay=LeapYear_Month_SumDayMonth-1; if (Month=2) if (IsLeapYear(Year)=0) ThisMonthSumDay-; if (DayThisMonthSumDay) return +
6、Day; else if (Day=ThisMonthSumDay) return 1; else return 0; else return 0;四、实验用例:用例IDYearMonthDay20002000-1-231不可能2001302001-3-3119001900-4-16292004282004-2-29有小等价类输入年份1900=n2050|n输入月份1=y12|y输入日期=r31|r闰年=2929|r非闰年=2828|r2.了解找零钱组合的方法假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在10元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找
7、给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。请结 合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。#include char i; int a,b;/ a 代表商品价钱,b 代表顾客付的钱。 do cout请输入商品价钱a(1100):;a;请输入顾客付款b(1100):b;最佳找零方案:(b-a)/50张50元(b-a)%50)/10张10元(b-a)%10)/5张5元(b-a)%5张1元n你还要继续吗?输入 n 表示结束i; while(i!=n四、等价类划分:付款金额=100100|b商品金额=
8、100|a8&5) if(x16|y10)j=j%3;%dn,j); else return 0; else if(x0|y0) j=x*y+10;printf( else k=x*y-1;j=sqrt(k);四、控制流程图:五、语句覆盖:测试的路径为x=10,y=6;程序执行的路径为:1 3 7;六、判定覆盖:测试的路径为:x=17,y=11;x=9,y=7;x=7,y=6;x=-1,y=-2; (1) 当测试路径为x=17,y=11时,程序执行的路径为:1 3 6 7; (2) 当测试路径为x=9,y=7时,程序执行的路径为: (3) 当测试路径为x=7,y=6时,程序执行的路径为:1 2
9、 5 7; (4) 当测试路径为x=-1,y=-2时,程序执行的路径为:1 2 4 7;七、条件覆盖: (1) 第一个判定( (x8)&(y5) ): 1、条件x8 取真值记为T1,取假值记为-T1 2、条件z0)|(y0) ):0 取真值记为T3,取假值记为-T3 2、条件y0 取真值记为T4,取假值记为-T4 (3) 第三个判定( (x16)|(y10) ): 1、 条件x16 取真值记为T5,取假值记为-T5 2、 条件y10 取真值记为T6,取假值记为-T6根据条件覆盖的基本思想,要使上述6个条件可能产生的12种情况至少满足一次,设计测试用例如下:执行路径覆盖条件覆盖分支X=17,y=
10、111-3-6-7T1,T2,T3,T4,T5,T63-6-7X= -1,y= -11-2-4-7-T1,-T2,-T3,-T4,-T5,-T62-4-7八、判定/条件覆盖:根据判定/条件覆盖的基本思想,只需设计以下两个测试用例便可以覆 盖6个条件的12 种 取值以及6个判定分支。九、组合覆盖:对函数中的各个判定的条件取值组合加以标记: 1、x8,y5 记做T1 T2, 第一个判定的取真分支; 2、x8,y=5 记做T1 -T2,第一个判定的取假分支; 3、x5 记做-T1 T2, 第一个判定的取假分支; 4、x=8,y0,y0 记做T3 T4, 第一个判定的取假分支和第二个判定的取真分支;
11、6、x0,y=0 记做T3 -T4,第一个判定的取假分支和第二个判定的取真分支; 7、x0 记做-T3 T4, 第一个判定的取假分支和第二个判定的取真分支; 8、x=0,y16,y10 记做T5 T6, 第一个判定的取真分支和第三个判定的取真分支; 10、x16,y=10 记做T5 -T6,第一个判定的取真分支和第三个判定的取真分支; 11、x10 记做-T5 T6, 第一个判定的取真分支和第三个判定的取真分支; 12、x=16,y10 记做-T5 -T6,第一个判定的取真分支和第三个判定的取假分支; 根据组合覆盖的基本思想,设计测试用例如下: 测试用例 执行路径 覆盖组合号x=17,y=11
12、1、5、9x=9,y= -11-2-5-7T1 ,-T2,T3 ,-T4,T5 ,-T62、6、10x= 9,y=61-2-5-8T1,T2,T3,T4,-T5,-T63、7、114、8、12十、路径覆盖: 根据路径覆盖的基本思想,在满足组合覆盖的测试用例中修改其中一个测试用例,则可 以实现路径覆盖:x=9,y=61-3-7X=17,y=6T1,T2,T3,T4,T5,-T6X=5,y=6实验四:计算生日是星期几 已知公元1年1月1日 是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。应用逻辑覆盖方法和基本路径测试方法为上面的问题设计测试用例。(1)画出该程序的控制流图; (2)用
13、基本路径测试方法给出测试路径; (3)为各测试路径设计测试用例。 #include int year,month,day; int t=0,t1=0,a=0,b=2050,c=0;请输入year:year;请输入month:month;请输入day:day;year,monthday1 for(year=1;year+)2 if(year%4=0&year%100!=0) |(year%400=0)3 c=year/4; t1=(year-1)*365+c-1; switch(month) case 1:a=day;break; case 2:a=31+day; case 3:a=60+day
14、; case 4:a=91+day; case 5:a=121+day; case 6:a=152+day; case 7:a=182+day; case 8:a=213+day; case 9:a=244+day; case 10:a=274+day; case 11:a=305+day; case 12:a=335+day; 4 else c=(int)(year/4); t1=(year-1)*365+c; switch(month) case 1:a=day+; case 2: case 3:a=59+day; case 4:a=90+day;a=120+day; case 6:a=151+day; case 7:a=181+day; case 8:a=212+day; case 9:a=243+day; case 10:a=273+day; case 11:a=304+day; case 12:a=334+day; t=(t1+a)%7; 5switch(t)cout星期一星期二星期三星期四星期五星期六 case 0:星期日四、实验流程图:五、基本测试路径:六、 (1):1 2 3 5 (2):1 2 4 5 七、各测试路径设计测试用例:2000年1月1日1 2 3 5 星期日2001年5月15日星期三
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1