您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 东南大学软件测试实验报告一
软件测试基础与实践实验报告实验名称:白盒测试实验一实验地点:计算机软件楼实验日期:2016.11.6学生姓名:王鑫学生学号:71114430东南大学软件学院制一、实验目的(1)巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;(2)通过绘制程序控制流程图,实现对于程序源代码的逻辑描述(3)培养严谨的测试精神,学习测试用例的设计和分析二、实验内容(一)实验一:控制流测试技术实验1.给出getWeekday()的流程图1int[]MonthDays={31,28,31,30,31,30,31,31,30,31,30,31}2((year%4==0)&&(year%100!=0))||year%400==03MonthDays[1]=294year0||month0||day05return06year100007return-18month129return-210dayMonthDays[month-1]11return-312inttotalDays=013inti=114iyear15(i%4==0)&&(i%100!=0))||i%400==016totalDays+=36617totalDays+=36518i++19inti=120imonth21i==222(year%4==0)&&(year%100!=0))||year%400==023MonthDays[1]=2924totalDays+=MonthDays[i-1];25i++26totalDays+=day27inttempDay=totalDays%728tempDay==029tempDay=730returntempDay2.设计测试用例2.1语句覆盖编号执行条件输入期望输出实际输出基本路径yy/mm/ddP1语句覆盖400/1/-1星期0星期01-2-3-4-5P2语句覆盖10001/1/1星期-1星期-11-2-4-6-7P3语句覆盖1/13/1星期-2星期-21-2-4-6-8-9P4语句覆盖1/1/32星期-3星期-31-2-4-6-8-10-11P5语句覆盖2/1/6星期7星期71-2-4-6-8-10-12-13-14-15-17-18-19-20-26-27-28-29-30P6语句覆盖8/3/1星期6星期61-2-3-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-302.2判定覆盖编号执行条件输入期望输出实际输出判定条件基本路径yy/mm/dd24681015212228P1判定覆盖400/1/-1星期0星期0TT1-2-3-4-5P2判定覆盖10001/1/1星期-1星期-1FFT1-2-4-6-7P3判定覆盖1/13/1星期-2星期-2FFFT1-2-4-6-8-9P4判定覆盖1/1/32星期-3星期-3FFFFT1-2-4-6-8-10-11P5判定覆盖2/3/3星期7星期7FFFFFFT/FFT1-2-4-6-8-10-12-13-14-15-17-18-19-20-21-22-24-25-26-27-28-29-30P6判定覆盖8/3/1星期6星期6TFFFFT/FT/FTF1-2-3-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-302.3条件覆盖编号执行条件输入期望输出实际输出基本路径yy/mm/ddP1条件覆盖-1/1/1星期0星期01-2-4-5P2条件覆盖1/-1/1星期0星期01-2-4-5P3条件覆盖1/1/-1星期0星期01-2-4-5P4条件覆盖10001/1/1星期-1星期-11-2-4-6-7P5条件覆盖1/13/1星期-2星期-21-2-4-6-8-9P6条件覆盖1/1/32星期-3星期-31-2-4-6-8-10-11P7条件覆盖2/3/3星期7星期71-2-4-6-8-10-12-13-14-15-17-18-19-20-21-22-24-25-26-27-28-29-30P8条件覆盖400/3/1星期3星期31-2-3-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-30编号输入布尔型子表达式yy/mm/dd24681015212228abcdefghiabcP1-1/1/1FTFTP21/-1/1FTFFTP31/1/-1FTFFFTP410001/1/1FTFFFFTP51/13/1FTFFFFFTP61/1/32FTFFFFFFTP72/3/3FTFFFFFFFFTFT/FFTFTP8400/3/1TFTFFFFFFT/FT/FT/FT/FTFTF2.4判定条件覆盖编号执行条件输入期望输出实际输出基本路径yy/mm/ddP1判定条件覆盖-1/1/1星期0星期01-2-4-5P2判定条件覆盖1/-1/1星期0星期01-2-4-5P3判定条件覆盖1/1/-1星期0星期01-2-4-5P4判定条件覆盖10001/1/1星期-1星期-11-2-4-6-7P5判定条件覆盖1/13/1星期-2星期-21-2-4-6-8-9P6判定条件覆盖1/1/32星期-3星期-31-2-4-6-8-10-11P7判定条件覆盖2/3/3星期7星期71-2-4-6-8-10-12-13-14-15-17-18-19-20-21-22-24-25-26-27-28-29-30P8判定条件覆盖400/3/1星期3星期31-2-3-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-30编号布尔型子表达式及判定条件22446810151521222228abcdefghiabcP1FTFFTTP2FTFFFTTP3FTFFFFTTP4FTFFFFFFTP5FTFFFFFFFTP6FTFFFFFFFFTP7FTFFFFFFFFFFTFFT/FFTFFTP8TFTTFFFFFFFT/FT/FT/FT/FT/FTFTTF2.5条件组合覆盖编号执行条件输入期望输出实际输出基本路径yy/mm/ddP1条件组合覆盖-1/1/1星期0星期01-2-4-5P2条件组合覆盖1/-1/1星期0星期01-2-4-5P3条件组合覆盖1/1/-1星期0星期01-2-4-5P4条件组合覆盖10001/1/1星期-1星期-11-2-4-6-7P5条件组合覆盖1/13/1星期-2星期-21-2-4-6-8-9P6条件组合覆盖1/1/32星期-3星期-31-2-4-6-8-10-11P7条件组合覆盖2/3/3星期7星期71-2-4-6-8-10-12-13-14-15-17-18-19-20-21-22-24-25-26-27-28-29-30P8条件组合覆盖400/3/1星期3星期31-2-3-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-30P9条件组合覆盖100/3/1星期1星期11-2-4-6-8-10-12-13-14-15-16-17-18-19-20-21-22-24-25-26-27-28-30P10条件组合覆盖4/3/1星期1星期11-2-3-4-6-8-10-12-13-14-15-17-18-19-20-21-22-23-24-25-26-27-28-30编号布尔型子表达式及判定条件22446810151521222226abcdefghijklP1FTFFTTP2FTFFFTTP3FTFFFFTTP4FTFFFFFFTP5FTFFFFFFFTP6FTFFFFFFFFTP7FTFFFFFFFFFFTFFT/FFTFFTP8TFTTFFFFFFFT/FT/FT/FT/FT/FTFTTFP9TFFFFFFFFFFT/FT/FT/FT/FT/FTFFFFP10TTTFFFFFFFFTFFT/FTTTF3.进一步用路径覆盖准则测试getWeekday()分析:非正常输出,return0,-1,-2,-3,共4条路径。之前有一条if语句,所以共2*4=8条路径。正常输出,总共有4个if语句(把循环简化成if语句),分别有2,3,4,2条路径,所以总共有2*3*4*2=48条路径。总共8+48=56条路径。平均一条路径对应一个测试用例,需要1分钟给出,整个也要1个小时左右才能完成路径覆盖测试。4.MC/DC(修订的判定条件覆盖)上述判定表达式只有TFT,TFF,TTF,FTF四种取值。编号执行条件输入期望输出实际输出条件判定yy/mm/ddabcP1MC/DC2/3/3星期7星期7F-FFP2MC/DC400/3/1星期3星期3TFTTP3MC/DC100/3/1星期1星期1TFFFP4MC/DC4/3/1星期1星期1TT-T测试用例P1和P4比较得条件a独立;测试用例P3和P4比较得条件b独立;测试用例P2和P3比较得条件c独立。三、实验体会(1)没有测出缺陷,但实际上存在缺陷。这说明动态白盒测试并不能完全测出缺陷。每种测试方法都存在弊端。语句覆盖:很难达到100%的覆盖,是比较弱的覆盖;判定覆盖:容易忽略布尔表达式的分支和逻辑短路;条件覆盖:与判定覆盖类似,但比判定覆盖覆盖率高;判定条件覆盖:可能会有错误屏蔽现象;条件组合覆盖:比之前的覆盖率都高,但也存在漏洞。(2)程序存在缺陷,如day取值为0这种错误输入时,依然有结果;month取值为0,程序报错;year取值为0,输出结果和取值为1时一样。改进:程序代码21-22句多余,因为2月日期数的计算在2-3句已经分析过了,没必要再重复写判断语句。(3)关键:1.做出正确有美观的流程图。这是方便设计出正确测试用例的前提。2.在语句覆盖时就分析设计出几个经典的测试用例,在不同测试方法中都能作为一些典型测试用例用到,可以有效减少测试用例的数量。3.注意逻辑短路。难点:做出正确有美观的流程图;快速寻找几个典型的测试用例。
本文标题:东南大学软件测试实验报告一
链接地址:https://www.777doc.com/doc-7228935 .html