软件测试文档_第1页
软件测试文档_第2页
软件测试文档_第3页
软件测试文档_第4页
软件测试文档_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南昌航空大学实验报告2013 年 10 月 20 日课程名称: 软件质量保证与测试 实验名称: 测试程序的设计 班级: 112032 27 姓名: 肖心远 同组人: 指导教师评定: 签名: 一、实验目的完成测试用程序的编写,为接下来的测试实验做准备。二、实验要求(1)设计程序的语言可以选择C、C+、JAVA等;(2)保证程序语法正确(3)记录实验数据并书写实验报告题目要求:题目一:三角形问题问题描述:输入三角形三条边a、b、c,三条边有效取值范围为1,200,判断该三角形是什么三角形,输出内容具体包括:(1)等边三角形;(2)等腰三角形;(3)直角三角形;(4)等腰直角三角形;(5)一般三角形

2、;(6)非三角形;(7)输入数据非法。题目二:NextDate问题问题描述:输入年月日year、month、day,其中年份的有效取值范围为1900,2100,请输出输入日期的下一天,例如输入2013年9月29日,输出为2013年9月30日。若输入日期非法,例如输入2013年2月30日,则输出“输入日期不存在”,若输入日期超出取值范围,例如输入2013年9月32日,则输出“输入日期超出范围”。问题三:佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。枪机卖45美元,枪托卖30美元,枪管卖25美元。销售商每月至

3、少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。根据当月的销售情况,并计算销售商的佣金如下:(1)不到(含)1000美元的部分为10%;(2)1000(不含)1800(含)美元的部分为15%;(3)超过1800美元的部分为20%。佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。三、实验步骤1运行TC, Visual C+, JAVA等开发工具;2在开发环境中完成程序设计,并进行调试;3在程序没有语法错误的前提下重点检查程序的逻辑错误;4对程序进行调试,并记录实验数据。四、实验内容1三角形问题(1)程序流程图

4、(2)源代码import java.util.Scanner;public class triangel public static void main(String args)Scanner input=new Scanner(System.in);double a=input.nextDouble();double b=input.nextDouble();double c=input.nextDouble();if(a<1|a>200|b<1|b>200|c<1|c>200)System.out.println("输入数据非法n")

5、;else if(a+b)<=c|(a+c)<=b|(c+b)<=a)System.out.println("非三角形n");else if(a=b&&b=c&&a=c)System.out.println("等边三角形n");else if(a=b|b=c|a=c)if(a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)System.out.println("等腰直角三角形n");elseSystem.out.println("等腰三角形n"

6、);else if(a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)System.out.println("直角三角形n");elseSystem.out.println("一般三角形n");(3)测试数据及测试结果a=1,b=2,c=3a=2,b=2,c=3a=3,b=4,c=5 a=8,b=8,c=8a=4,b=7,c=92NextDate问题(1)程序流程图(2)源代码import java.util.Scanner;public class Nextday public static void main(String ar

7、gs)Scanner input=new Scanner(System.in);int year=input.nextInt(),input.nextInt(),day=input.nextInt();int tomorrowday=day,tomorrowmonth=month,tomorrowyear=year;if(year<1900|year>2100|month<1|month>12|day<1|day>31) System.out.printf("输入日期非法");System.exit(-1);elseif(month=4|

8、month=6|month=9|month=11)&&(day=31) System.out.printf("输入日期不存在n");System.exit(-1);elseif(year%400=0|(year%100!=0&&year%4=0)&&month=2&&day>29)System.out.printf("输入日期不存在n");System.exit(-1);elseif(!(year%400=0|(year%100!=0&&year%4=0)&&a

9、mp;month=2&&day>28)System.out.printf("输入日期不存在n");System.exit(-1);else if(month=4|month=6|month=9|month=11)&&day=30) tomorrowmonth+;tomorrowday=1; elseif(month=1|month=3|month=5|month=7|month=8|month=10)&&day=31) tomorrowmonth+;tomorrowday=1;else if(month=12&&

10、amp;day=31) tomorrowyear+;tomorrowmonth=1;tomorrowday=1;else if(month=2&&(year%400=0|(year%100!=0&&year%4=0)&&day=29) tomorrowmonth+;tomorrowday=1;else if(month=2&&(!(year%400=0|(year%100!=0&&year%4=0)&&day=28) tomorrowmonth+;tomorrowday=1;else tomorro

11、wday+;System.out.println("nextday isn"+tomorrowyear+"/"+tomorrowmonth+"/"+tomorrowday);(3) 测试数据及测试结果year=2130,month=11,day=11year=2001,month=4,day=30year=2013,month=5,day=31year=2013,month=2,day=28year=2008,month=2,day=29year=2008,month=2,day=29year=2013,month=12,day=31

12、3佣金问题(1)程序流程图(2)源代码import java.util.Scanner;public class yongjin public static void main(String args)double lockprice=45,stockprice=30,barrelprice=25;double totallocks=0,totalstocks=0,totalbarrels=0;double commission;Scanner input=new Scanner(System.in);System.out.print("Input the loc

13、ks,stocks and barrels:n");int locks=input.nextInt();int stocks=input.nextInt();int barrels=input.nextInt();if(1>locks|locks>70|1>stocks|locks>=80|1>barrels|barrels>=90)System.out.println("输入错误");System.exit(-1);totallocks=totallocks+locks;totalstocks=totals

14、tocks+stocks;totalbarrels=totalbarrels+barrels; double locksales=lockprice*totallocks, double stocksales=stockprice*totalstocks, double barrelsales=barrelprice*totalbarrels,double sales=locksales+stocksales+barrelsales;if(sales>1800)commission=0.10*1000;commission=commission+0.15*800;commission=c

15、ommission+0.20*(sales-1800);else if(sales>1000)commission=0.10*1000;commission=commission+0.15*(sales-1000);else commission=0.10*sales;System.out.print("sales is $"+sales+"commission is $:"+commission);(3) 测试数据及测试结果locks=60,stocks=60,barrels=70locks=30,stocks=40,barr

16、els=50locks=80,stocks=48,barrels=31五、结果分析1三角形问题程序较为简单,算法和语法基本没问题,题目要求也都实现了,程序未出现大错误,只是在编写时有几个符号打错,后经改正后无错误。2NextDate问题经多次分析程序和设计算法后,算法和语法基本没问题,题目要求也都实现了,程序未出现大错误,只是在编写时有几个符号打错,后经改正后无错误。3佣金问题程序较为简单,算法设计容易,语法基本没问题,题目要求也都实现了,程序未出现大错误,只是在编写时有几个符号打错,后经改正后无错误。南昌航空大学实验报告2013 年 10 月 27 日课程名称: 软件质量保证与测试 实验名称

17、: 功能性测试 班级: 112032 27 姓名: 肖心远 同组人: 指导教师评定: 签名: 一、实验目的掌握边界值、等价类、决策表测试的基本功能性测试方法二、实验要求分别用健壮性测试(边界值方法)、弱健壮等价类测试(等价类方法)和决策表测试技术分别对三角形问题|、Nextdate问题和佣金问题设计测试用例(即每个程序都要用这三种方法进行测试),并分别对实验一所编写的三个程序进行测试。要求:对于测试用例的设计必须给出详细的设计过程,在测试过程中如果发现缺陷(预期输出与实际输出不符),则采用截图的方式说明缺陷现象,并简单分析其可能产生的原因及建议,但不允许修改程序。三、实验步骤1运行TC, Vi

18、sual C+, JAVA等开发工具;2在开发环境中完成程序设计,并进行调试;3在程序没有语法错误的前提下重点检查程序的逻辑错误;4对程序进行调试,并记录实验数据。四、实验内容1三角形问题三边取值范围:1a2001b2001c200(1) 边界值健壮性测试序号输入预期输出实际输出测试结果严重性优先级ABC11001000输入数据非法输入数据非法Passed21001001等腰三角形等腰三角形Passed310011010非三角形非三角形Passed4100120199一般三角形一般三角形Passed5100100200非三角形非三角形Passed6100100202输入数据非法输入数据非法Pa

19、ssed7100100100等边三角形等边三角形Passed81000105输入数据非法输入数据非法Passed91001107非三角形非三角形Passed101002111非三角形非三角形Passed11100199108一般三角形一般三角形Passed12100200101一般三角形一般三角形Passe入数据非法输入数据非法Passed14010079输入数据非法输入数据非法Passed151100105非三角形非三角形Passed16310098一般三角形一般三角形Passed1719710089非三角形非三角形Passe般三角形一般三

20、角形Passed19201100111输入数据非法输入数据非法Passed(2) 等价类弱健壮性测试等价类的划分:有效等价类:1. 三边都不相等且在取值范围;2. 任意两边相等且在取值范围;3. 三边相等且在取值范围;无效等价类:1. 输入非数值;2. 两边和小于第三边;3. 只输入两个数据;4. 有一边大于取值范围;5. 有一边小于取值范围序号输入预期输出实际输出测试结果严重性优先级ABC1304050直角三角形直角三角形Passed210050100等腰三角形等腰三角形Passed3100100100等边三角形等边三角形Passed470B111输入数据非法见截图Failed轻微低5100

21、5030非三角形非三角形Passed63090非法输入无法只输入两数No Run799169222非法输入非法输入Passed8078145非法输入非法输入Passed用例4缺陷截图:(3) 决策表测试条件:条件一C1:a,b,c能构成三角形条件二C2:a=b? 条件三C3:a=c?条件四C4:b=c?行动:行动一A1:非三角形行动二A2:一般三角形行动三A3:等腰三角形行动四A4:等边三角形行动五A5:不可能 条件C1:a,b,c构成三角形NYYYYYYYYC2:a=b?YYYYNNNNC3:a=c?YYNNYYNNC4:b=c?YNYNYNYN结果A1:非三角形XA2:一般三角形XA3:等

22、腰三角形XXXA4:等边三角形XA5:不可能XXX测试用例:序号输入预期输出实际输出测试结果严重性优先级ABC11003040非三角形非三角形Passed2100100100等边三角形等边三角形Passed3?不可能No Run4?不可能No Run510010080等腰三角形等腰三角形Passed6?不可能No Run710080100等腰三角形等腰三角形Passed880100100等腰三角形等腰三角形Passed98070130一般三角形一般三角形Passed2NextDate问题Nextdate问题1900y21001m121d31(1) 边界值健壮性测试NextDate边界值健壮性测

23、试用例用例ymd预期输出结果实际输出结果测试结果12013100输入日期超出范围输入日期超出范围Passed220131012013/10/22013/10/2Passed320131022013/10/32013/10/3Passed4201310152013/10/162013/10/16Passed5201310302013/10/312013/10/31Passed6201310312013/11/12013/11/1Passed720131032输入日期超出范围输入日期超出范围Passed82013015输入日期超出范围输入日期超出范围Passed920131152013/1/162

24、013/1/16Passed1020132152013/2/162013/2/16Passed11201311152013/11/162013/11/16Passed12201312152013/12/162013/12/16Passed1320131315输入日期超出范围输入日期超出范围Passed1418881018输入日期非法输入日期非法Passed15190010181900/10/191900/10/19Passed16199310181993/10/191993/10/19Passed17209810182098/10/192098/10/19Passed1821001019210

25、0/10/192100/10/19Passed1921011019输入日期非法输入日期非法Passed(2) 等价类弱健壮性测试等价类的划分:输入域等价类有效等价类无效等价类日期范围 1day27 day=28 day=29 day=30 day=31 day<1 day>31 day=29 day=30 day=31月份范围 month=4,6,9,11 month=1,3,5,7,8,10 month=2 month=12 month<1 month>12年份范围 1900year2100的闰年 1900year2100的非闰年 year<1900 year&

26、gt;2100测试用例:用例年份月份日期覆盖有效等价类覆盖无效等价类预期输出实际输出120084301、11、172008/5/12008/5/12200843111、1710输入日期超出范围输入日期超出范围320085315、12、172008/6/12008/6/1420082293、13、172008/3/12008/3179输入日期不存在输入日期不存在6200812271、14、172008/12/282008/12/287200812315、14、172009/1/12009/1188输入日期不存在输入日期不存在920046-111

27、、176输入日期超出范围输入日期超出范围10200573212、187输入日期超出范围输入日期超出范围112000-1304、1715输入日期超出范围输入日期超出范围12200113315、816输入日期超出范围输入日期超出范围1318888271、1219输入日期非法输入日期非法1421019282、1120输入日期非法输入日期非法(3) 决策表测试Y1=年:闰年Y2=年:平年M1=月份:每月有30天M2=月份:每月有31天,除12月M3=月份:12月M4=月份:2月D1=日期:1日期31D2=日期:日期=28D3=日期:日期=29D4=日期:日期=30D5=日期:日期=31条件:C1:月份

28、在C2:日期在C3:年份在行动:A1:不可能A2:日期增加1A3:日期复位A4:月份加1A5:月份复位A6:年加1NextDate函数决策表条件:123456789101112131415C1:月份在M1M1M1M1M1M2M2M2M2M2M3M3M3M3M3C2:日期在D1D2D3D4D5D1D2D3D4D5D1D2D3D4D5C3:年份在规则条数统计222222222222222A1:不可能XA2:日期增加1XXXXXXXXXXXA3:日期复位XXXA4:月份加1XXA5:月份复位XA6:年加1X条件:16171819202122C1:月份在M4M4M4M4M4M4M4C2:日期在D1D2

29、D2D3D3D4D5C3:年份在-Y1Y2Y1Y2-规则条数统计1111111A1:不可能XXXA2:日期增加1XXA3:日期复位XXA4:月份加1XXA5:月份复位A6:年加1测试用例:序号年份月份日期预期输出实际输出测试状态1320014152001/4/162001/4/16passed420014302001/5/12001/5/1passed52001431输入日期超出范围输入日期超出范围passed6920011152001/1/162001/1/16passed1020011312001/2/12001/2/1passed1114200112152001/12/162001/12

30、/16passed15200112312002/1/12002/1/1passed1620012152001/2/162001/2/16passed1720042282004/2/292004/2/29passed1820012282001/3/12001/3/1passed1920042292004/3/12004/3/1passed202001229输入日期不存在输入日期不存在passed21,222001230输入日期不存在输入日期不存在passed3 佣金问题1lock701stock801barrel90(1) 边界值健壮性测试用例佣金健壮边界值性测试用例用例lockstockbar

31、rel预期输出结果输出结果总金额佣金总金额佣金103045非法输入非法输入21354522203042220304323545226531322653134353545375061037506105693545528091652809166703545532592553259257713545非法输入非法输入835045非法输入非法输入935145273040627304061035245276041227604121135794550708745070874123580455100880510088013358145非法输入非法输入1435450非法输入非法输入153545129504502

32、9504501635452297545529754551735458951508905150890183545905175895517589519354591非法输入非法输入(2) 等价类弱健壮性测试有效等价类:1、lack在1lock702、stock在1stock803、barrel在1barrel90无效等价类:1、 lack小于12、 lack大于703、 Stock小于14、 Stock大于805、 Barrel小于16、 Barrel大于90佣金等价类弱健壮性测试用例用例lockstockbarrel预期输出结果输出结果135354537506103750610203045非法输入

33、非法输入335045非法输入非法输入435450非法输入非法输入5713545非法输入非法输入6358145非法输入非法输入7354591非法输入非法输入(3)决策表测试:L:lockS:stockB:barrelsales:总金额计算方式一:sales*10%计算方式二:1000*10%+(sales-1000)*15%计算方式三:1000*10+800*15%+(sales-1800)*20%桩123456789条件0<L<=70NYYYYYY0<S<=80NYYYYYY0<B<=90NYYYYYY0<sales<=1000YNNYY1000

34、<sales<=1800NYNYYsales>1800NNYYY行动非法输入XXX计算方式一X计算方式二X计算方式三X不可能XXX用例lockstockbarrel预期输出实际输出测试状态总金额佣金总金额佣金1713653非法输入非法输入passed2238845非法输入非法输入passed353495非法输入非法输入passed410366906969069passed515861065109.751065109.75passed635476445857774585777passed五、结果分析1三角形问题三角形的等价类弱健壮性测试中,发现程序的一个缺陷,即当程序输入非数值

35、数据时,还未运行程序就开始报错,虽然题目未明确说明非数值的情况,但出现这样的原因应该是程序输入的健壮性处理不够完善。2NextDate问题在黑盒测试中设计的测试用例,实际结果与预期结果完全相同,没检测出缺陷。3佣金问题在黑盒测试中设计的测试用例,实际结果与预期结果完全相同,没检测出缺陷。南昌航空大学实验报告2013 年 11 月 3 日课程名称: 软件质量保证与测试 实验名称: 结构性测试 班级: 112032 27 姓名: 肖心远 同组人: 指导教师评定: 签名: 一、实验目的掌握逻辑覆盖法、基路径法以及数据流测试基本结构性测试方法二、实验要求1、对三角形问题尝试用逻辑覆盖法(语句覆盖、判定

36、覆盖、条件覆盖、判定条件覆盖、路径覆盖)设计测试用例,具体要求如下:    (1)为程序语句部分进行编号;    (2)画出程序的程序结构图(节点图);    (3)用上述五种方法分别设计测试用例,并说明每种测试用例的设计思路,例如测试用例所覆盖的语句、判定或条件的真分支假分支或路径等;    (4)使用上述测试用例对三角形问题进行测试,并做好测试记录,即有缺陷进行截图,并试图分析产生缺陷原因。2、对NextDate问题尝试采用基路径方法设计测试用例,具体要求如下: 

37、;   (1)为程序语句部分进行编号;    (2)画出程序的程序结构图(节点图);    (3)用基路径方法设计测试用例,并说明每个测试用例的设计思路,例如测试用例所覆盖基路径;    (4)使用上述测试用例对NextDate问题进行测试,并做好测试记录,即有缺陷进行截图,并试图分析产生缺陷原因。3、对佣金问题采用数据流测试方法设计测试用例,具体要求如下:    (1)为程序语句部分进行编号;    (2)画出程序的程序结构

38、图(节点图);    (3)找出程序中所定义的枪机、枪托、枪管、销售额以及佣金五个变量的定义节点、使用节点,并判断是谓词使用还是计算使用;    (4)找出以上五个变量的所有定义-使用路径,并判断其是否为定义-清除路径;    (5)根据上述路径分析程序可能出现的缺陷,并试图分析产生缺陷原因。3、 实验步骤1运行TC, Visual C+, JAVA等开发工具;2在开发环境中完成程序设计,并进行调试;3在程序没有语法错误的前提下重点检查程序的逻辑错误;4对程序进行调试,并记录实验数据。4、 实验内容1 三

39、角形问题逻辑覆盖法(1)语句编号:1 Scanner input=new Scanner(System.in);2 double a=input.nextDouble();3 double b=input.nextDouble();4 double c=input.nextDouble();5 boolean isTriangle=true;6 if(a<1|a>200|b<1|b>200|c<1|c>200)7 System.out.println("输入数据非法n");8 else if(a+b)<=c|(a+c)<=b|

40、(c+b)<=a)9 System.out.println("非三角形n");10 else if(a=b&&b=c&=c)11 System.out.println("等边三角形n");12 else if(a=b|b=c|a=c)13 if(a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)14 System.out.println("等腰直角三角形n");15 elseSystem.out.println("等腰三角形n");16 else if(a*a=b

41、*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b)17 System.out.println("直角三角形n");18 else System.out.println("一般三角形n");(2)程序结构图 (2) 程序分析语句:1、2、3、4、5、7、9、11、14、15、17、18路径:共七条路径1)1-2-3-4-5-6-72)1-2-3-4-5-6-8-93)1-2-3-4-5-6-8-10-114)1-2-3-4-5-6-8-10-12-13-145)1-2-3-4-5-6-8-10-12-13-156)1-2-3-4-5-6-8-1

42、0-12-16-177)1-2-3-4-5-6-8-10-12-16-18判定:1)a<1|a>200|b<1|b>200|c<1|c>200 (节点6)2)(a+b)<=c|(a+c)<=b|(c+b)<=a (节点8)3)a=b&&b=c (节点10)4)a=b|b=c|a=c (节点12)5)a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b(节点13)6)a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b(节点16)条件:1)a<1|a>200|b<1|b&g

43、t;200|c<1|c>200 (1.1-1.6)2)(a+b)<=c|(a+c)<=b|(c+b)<=a (2.1-2.3)3)a=b&&b=c (3.1,3.2)4)a=b|b=c|a=c (4.1,4.2,4.3)5)a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b (5.1,5.2,5.3)6)a*a=b*b+c*c|b*b=a*a+c*c|c*c=a*a+b*b (6.1,6.2,6.3)(4)用例设计测试用例abc覆盖语句覆盖路径预期输出实际输出case 1-150601,2,3,4,5,6,7(1)输入数据非法输

44、入数据非法case 22030501,2,3,4,5,6,8,9(2)非三角形非三角形case 31001001001,2,.,6,8,10,11(3)等边三角形等边三角形case 4505070.7106781181,.,10,12,13,14(4)等腰直角三角形等腰直角三角形case 55050801,.10,12,13,15(5) 等腰三角形 等腰三角形case 63040501,.,12,16,17(6)直角三角形直角三角形case 77080901,.,10,12,16,18(7)一般三角形一般三角形1)语句覆盖/路径覆盖2)判定覆盖测试用例abc覆盖判定预期输出实际输出判定状态ca

45、se 1-15060T1输入数据非法输入数据非法passedcase 2203050F1T2非三角形非三角形passedcase 3100100100F1F2T3等边三角形等边三角形passedcase 4505070.710678118F1F2F3T4T5等腰直角三角形等腰直角三角形passedcase 5505080F1F2F3T4F5 等腰三角形 等腰三角形passedcase 6304050F1F2F3F4T6直角三角形直角三角形passedcase 7708090F1F2F3F4F6一般三角形一般三角形passed3) 条件覆盖/判定条件覆盖测试用例abc覆盖条件预期输出实际输出case 1-15060T1.1输入数据非法输入数据非法case 250-150F1.1T1.2输入数据非法输入数据非法case 38040-1F1.1F1.2T1.3输入数据非法输入数据非法case 42015080F1.1F1.2F1.3T1.4输入数据非法输入数据非法case 55020190F1.1F1.2F1.3F1.4T1.5输入数据非法 输入数据非法case 68090201F1.1F1.2F1.3F1.4F1.5T1.6输入数据非法输入数据非法case 7203080T2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论