收藏 分销(赏)

软件质量与测试课程设计实验报告样本.doc

上传人:快乐****生活 文档编号:3529532 上传时间:2024-07-08 格式:DOC 页数:20 大小:579KB 下载积分:10 金币
下载 相关 举报
软件质量与测试课程设计实验报告样本.doc_第1页
第1页 / 共20页
软件质量与测试课程设计实验报告样本.doc_第2页
第2页 / 共20页


点击查看更多>>
资源描述
华中科技大学文华学院 《软件质量与测试》课程设计 软件工程专业07级3班 姓名: 曹洪 学号全称: 时间: 11月12日 《软件质量与测试》课程设计 1、 实验目的 掌握软件测试用例的设计 掌握软件缺陷报告的设计 掌握软件缺陷修正报告的设计 2、 实验过程 程序preday的基本功能: 输入有效的年、 月、 日, 按[计算]按钮, 画面输出显示前1天的年, 月, 日; 能对日期非法输入的合理提示等。 2.1程序代码的编写 详见preday文件 2.2黑盒软件测试用例的设计 2.2.1等价类划分法 程序的有效输入日期为18 1月1日到2050年12月31日之间的有效日期。其中, 有效等价类为 18 1月1日到2050年12月3日之间的日期, 其中 年份为1800到2050之间的整数; 月份为1到12之间的整数; 当月份为1、 3、 5、 7、 8、 10、 12时, 日为1到31之间的整数, 当月份为4、 6、 9、 11时, 日为1到30之间的整数, 当年份为闰年元份为2时, 日为1到29之间的数值, 否则为1到28之间的数值。 无效等价类: 18 1月1日之前的日期; 2050年12月3日之后的日期; 18 1月1日到2050年12月31日之间的日期, 可是月份不为1到12之间的整数; 或者当月份为1、 3、 5、 7、 8、 10、 12时, 日不为1到31之间的整数, 当月份为4、 6、 9、 11时, 日不为1到30之间的整数, 当年份为闰年元份为2时, 日为1到29之间的数值, 否则为1到28之间的数值。 最简单的等价类划分直接以输入条件边界来划分, 得到的等价类集合见下表, 其中Y1-Y3,M1-M3,D1-D3分别是三个输入条件的相应的等价类的编号。 表1: preday问题的等价类划分 等价类 年份 月份 日期 有效等价类 Y1:1800≤年份≤2500 M1:1≤月份≤12 D1:1≤日期≤31 无效等价类 Y2:年份<1800 M2:月份<1 D2:日期<1 Y3:年份>2050 M3:月份>12 D3:日期>31 根据表1的等价类划分, 无效等价类测试能够得到如表2的测试用例, 而较为合理的有效等价类的划分如表3。三个输入各自具有不同的有效等价类数目, 若从每个等价类中选择一个典型值, 则年份、 月份和日期的取值个数分别为2、 4、 4, 这时将年份的水平值加以扩展, 即对于年份, 可在Y1和Y2中各选两个典型值。这样得到所有输入条件的取值如下: 年份: 1850、 1900、 、 月份: 1、 3、 5、 11 日期: 1、 29、 30、 31 此时, 构成的有效等价类测试用例如表4所示: 表2: Preday的无效等价类的测试用例 ID 输入日期 (年-月-日) 操作步骤 预期输出 实际输出 备注 ND-001 1700-6-15 输入年月日, 点击”计算”按钮 提示”请输入一个在1800和2500之间的整数” 请输入一个在1800和2500之间的整数 年份在Y2中 ND-002 3000-12-15 输入年月日, 点击”计算”按钮 提示”请输入一个在1800和2500之间的整数” 请输入一个在1800和2500之间的整数 年份在Y3中 ND-003 1989—1-15 输入年月日, 点击”计算”按钮 提示”请输入一个在1和12之间的整数” 请输入一个在1和12之间的整数 月份在M2中 ND-004 1989-13-12 输入年月日, 点击”计算”按钮 提示”请输入一个在1和12之间的整数” 请输入一个在1和12之间的整数 月份在M3中 ND-005 1989-4--2 输入年月日, 点击”计算”按钮 提示”请填入一个在1和31之间的整数” 请填入一个在1和31之间的整数 日期在D2中 ND-006 1989-4-32 输入年月日, 点击”计算”按钮 提示”请填入一个在1和31之间的整数” 请填入一个在1和31之间的整数 日期在D3中 表3: 较为合理的有效等价类的划分 等价类 年份 月份 日期 有效等价类 Y1:1800≤年份≤2050, 且为闰年 M1: 5、 7、 10、 12 D1:1≤日期≤28 Y2:1800≤年份≤2050, 且为非闰年 M2:2、 4、 6、 8、 9、 11 D2:29 M3:1 D3:30 M4:3 D4:31 表4: 有效等价类测试用例 ID 输入日期 (年-月-日) 操作步骤 预期输出 (年-月-日) 实际输出 (年-月-日) ND-007 1850-1-1 输入年月日, 点击”计算”按钮 1849-12-31 1849-12-31 ND-008 1850-3-29 同上 1850-3-28. 1850-3-28. ND-009 1850-5-30 同上 1850-5-29 1850-5-29 ND-010 1850-11-31 同上 输入日期不合法的合理提示 The month 11 Can not have 31 days. ND-011 1900-1-29 同上 1900-1-28 1900-1-28 ND-012 1900-3-30 同上 1900-3-29 1900-3-29 ND-013 1900-5-31 同上 1900-5-30 1900-5-30 ND-014 1900-11-1 同上 1900-10-31 1900-10-31 ND-015 -1-30 同上 -1-28 -1-28 ND-016 -3-31 同上 -3-30 -3-30 ND-017 -5-1 同上 -4-30 -4-30 ND-018 -11-29 同上 -11-28 -11-28 ND-019 -1-31 同上 -1-30 -1-30 ND-020 -2-1 同上 -1-31 -1-31 ND-021 -5-29 同上 -5-28 -5-28 ND-022 -11-30 同上 -11-29 -11-29 2.2.2边界值法 根据preday的有效输入日期能够设置边界值法的测试用例取值如下, 年份: 1800、 1801、 2049、 2050 月份: 1、 2、 11、 12 日期: 1、 2、 30、 31 此时, 构成的边界值法测试用例如表5所示。 表5: 边界值法测试用例 ID 输入日期 (年-月-日) 操作步骤 预期输出 (年-月-日) 实际输出 (年-月-日) ND-023 1800-1-1 输入年月日, 点击”计算”按钮 输入日期超出范围的合理提示 Reach the min date. ND-024 1800-2-1 同上 1800-1-31 1800-1-31 ND-025 1800-11-30 同上 1800-11-29 1800-11-29 ND-026 1800-12-31 同上 1800-12-30 1800-12-30 ND-027 1801-1-2 同上 1801-1-1 1801-1-1 ND-028 1801-2-30 同上 输入日期不合法的合理提示 The month 2 Can not have 30 days. ND-029 1801-11-31 同上 输入日期不合法的合理提示 The month 11 Can not have 31 days. ND-030 1801-12-1 同上 1801-11-30 1801-11-30 ND-031 2049-1-30 同上 2049-1-29 2049-1-29 ND-032 2049-2-31 同上 输入日期不合法的合理提示 The month 2 Can not have 31 days. ND-033 2049-11-1 同上 2049-10-31 2049-10-31 ND-034 2049-12-2 同上 2049-12-1 2049-12-1 ND-035 2050-1-31 同上 2050-1-30 2050-1-30 ND-036 2050-2-1 同上 2050-1-31 2050-1-31 ND-037 2050-11-2 同上 2050-11-1 2050-11-1 ND-038 2050-12-30 同上 2050-12-29 2050-12-29 2.2.2错误推测法 错误推测法是基于测试人员的经验和直觉来推测系统中可能存在的各种缺陷, 有针对地设计测试用例的方法。错误推法的基本思想是列举出系统中所有可能的缺陷和容易发生缺陷的特殊情况, 并根据她们选择测试用例。 程序preday错误推测法测试用例设计如表6所示。 表6: 错误推测法测试用例 ID 输入日期 (年-月-日) 操作步骤 预期输出 (年-月-日) 实际输出 (年-月-日) 备注 ND-039 无 无 所有的接文本框都清零 如图1 Ver1-Bug0001 ND-040 1800-12-0 输入年月日, 点击”计算”按钮 无 1800-11-30 Ver1-Bug0002 ND-041 1989-8-1 同上 1989-7-31 1989-7-30 Ver1-Bug0003 ND-042 1800-1-1 同上 最小输入日期的合理提示 输出”Reach the min date.” 经过 ND-043 2050-12-31 同上 2050-12-30 2050-12-30 经过 ND-044 -3-1 同上 -2-29 -2-29 经过 ND-045 -0-0 同上 无 --1-29 Ver1-Bug0004 2.3 黑盒软件测试用例的执行 2.3.1 Ver1-Bug0001 运行程序后, 界面上的年、 月、 日输入框内的数据没有清空。如图1所示: 2.3.2 Ver1-Bug0002 输入日期1800-12-0后, 会跳出输入日期不合法提示的警告信息, 如图2所示, 点击确定后能得到前一天的日期并显示在对话框内, 如图3所示: 2.3.3 Ver1-Bug0003 输入1989年8月1日后点击确定按钮后显示的日期是1989-7-30, 实际上7月是有31天的, 即程序显示的日期不正确, 程序运行如图4所示: 2.3.3 Ver1-Bug0004 输入日期 -0-0后, 会跳出”请填入一个在1和12之间的整数”的警告信息, 如图5所示, 点击确定后能在对话框内显示 —1-29, 如图6所示: 图1 图2 图3 图4 图5 图6 2.4 软件缺陷报告的设计 缺陷报告 缺陷名称: 显示错误的日期 缺陷编号ID: Ver1-Bug0003 报 告 人: 曹 洪 报告时间: -11-3 部 门: 营业部 客服B组 发 现 人: 曹 洪 发现时间: -11-1 部 门: 泉海潮公司 发现场所: 泉海潮公司 软件工具实验室501 软件系统名: preday 软件版本: preday 1.0版 发生阶段: 用户使用 再现率: 100% 严重级: 高 优先级: 高 处理决定 决定人: 曹 洪 -11-3, 缺陷报告提交给软件开发部门, 限 -11-5 18:00前修复。 -11-4上午, 质保部门修错验证测试; -11-4 下午, 与其它修复软件一起提交给版本发布部门 -11-5, 版本发布部门作为升级版Ver1.0SP1交付给用户。 缺陷现象 输入日期是1989-8-1, 点击确定按钮后显示的日期是1989-7-30, 实际上7月是有31天的, 即程序显示的日期不正确, 程序运行如图4所示: 缺陷再现步骤 1、 在线数据 d:\preday\Bug\Ver1\Ver1-Bug0003\Ver1-Bug0003.txt 2、 输入数据 3、 点击【计算】按钮 2.5 软件缺陷修正报告的设计 修错报告 缺陷名称: 显示错误的日期 缺陷编号ID: Ver1-Bug0003 报 告 人: 曹 洪 报告时间: -11-4 部 门: 软件开发部 preday 项目组 修 错 人: 宫毕克 修错时间: -11-4 部 门: 软件开发部 preday 项目组 1.缺陷原因 表面原因: 将7月的天数错误的设置为30天, 实际应是31天。 实质原因: 在设置日期为1、 月份为8时, 选择处理的逻辑错误。 2.缺陷对策 重新设置8月1日的逻辑处理。 3.对策函数名 predayDlg.cpp的 void Preday1( const int& year, const int& month, const int& day, CString& strpreday ) 修正记号: Ver1-Bug0003 4.缺陷产生阶段 编码 5.修正后结果 2.6 白盒软件测试用例的设计 修正的代码: if(month == 5 || month == 7 || month == 10 || month == 12){ preday = 30; premonth = month - 1; } else if (month == 3){ premonth = month -1; if(isLeapYear(year)){ preday = 29; } else{ preday = 28; } } else if(month == 1){ if( year == 1800 ) { AfxMessageBox( "Reach the min date.\n" ); bValid = false; } else { preday = 31; premonth = 12; preyear = year - 1; } } else{ preday = 31; premonth = month -1; } 2.6.1语句覆盖 利用语句覆盖设计测试用例时应保证程序的每一条可执行语句至少执行一次。从程序图上看, 其实等同于节点覆盖。 语句覆盖率的计算方式如下: 语句覆盖率 = 至少被执行一次的语句数量/可执行的语句总数 进行白盒测试的程序段的流程图如图2.6.1所示, 开始此段程序的条件是日期为1, 即在设计测试用例时所有的日期都必须为1时程序运行时才能运行选择的这段程序。 语句覆盖的测试用例如表2.6.1所示, 表中经过的路径为图2.6.1中所示的路径。 图2.6.1 逻辑覆盖的流程图 表2.6.1 语句覆盖的测试用例设计 ID 输入 预期输出 经过路径 语句覆盖 年份 月份 日期 年-月-日 LC-001 1989 5 1 1989-4-30 A 16.67℅ LC-002 1980 3 1 1980-2-29 BCD 16.67℅ LC-003 3 1 -2-28 BCE 16.67℅ LC-004 1800 1 1 Reach the min date. BFGH 16.67℅ LC-005 1801 1 1 1800-12-31 BFGI 25℅ LC-006 1988 6 1 1988-5-31 BFJ 16.67℅ 2.6.2判定覆盖 判定覆盖又称分支覆盖, 其含义是: 设计测试用例时应保证程序中每个判定节点的取真和去假分支至少执行一次。由于判定节点并非只有二值情况, 对于多分支的情况, 判定覆盖的含义为: 测试用例的设计应保证程序中每个判定节点取得每种可能的结果至少一个。从流程图来看, 判定覆盖等同于边覆盖。 判定覆盖率的计算公式如下: 判定覆盖率 = 判定结果被评价的次数 / 判定结果的总数 判定覆盖的测试用例设计 ID 输入 预期输出 经过路径 判定覆盖 年份 月份 日期 年-月-日 LC-007 1990 12 1 1990-11-30 A 20℅ LC-008 1898 3 1 1898-2-28 BCE 60℅ LC-009 3 1 -2-29 BCD 60℅ LC-010 1 1 -12-31 BFGI 80℅ LC-011 1800 1 1 Reach the min date. BFGH 80℅ LC-012 11 1 -10-31 BFJ 60℅ 2.6.3条件组合覆盖 条件组合覆盖的含义是: 测试用例的设计应满足每个判定节点中所有简单判定条件的各种的组合应至少执行一次。 条件组合覆盖率的计算方法如下: 条件组合覆盖率 = 条件操作数值至少被评价一次的数量 / 条件操作数值的所有组合总数 条件组合覆盖的测试用例设计表2.6.3, 其相应测试用例的简单判定条件的判定如简单判定条件表。 表: 2.6.3 条件组合覆盖的测试用例 ID 输入 预期输出 条件组合覆盖率 年份 月份 日期 年-月-日 LC-013 5 1 -4-30 12.5℅ LC-014 7 1 -6-30 25℅ LC-015 2033 10 1 2033-9-30 37.5℅ LC-016 12 1 -11-30 50℅ LC-017 1866 3 1 1866-2-28 62.5℅ LC-018 1804 3 1 1804-2-29 62.5℅ LC-019 1800 1 1 1800-4-30 87.5℅ LC-020 1999 1 1 1999-4-30 87.5℅ 简单判定条件判定表 ID 简单判定条件 Month ==5 Month ==7 Month ==10 Month == 12 Month ==3 Month ==1 Year ==1800 isLeapYear (year) LC-013 T LC-014 F T LC-015 F F T LC-016 F F F T LC-017 F F F F T F LC-018 F F F F T T LC-019 F F F F F T T LC-020 F F F F F T F 2.7 黑盒回归测试用例的设计 验证软件缺陷的修正 验证人: 曹洪 验证版本: Ver1.0SP1 1、 使用发生软件缺陷的测试用例( 1989-8-1) 输出结果: preday is: 1989-7-31. 判定: OK 输入日期1989-8-1。 点击[计算]按钮, 得到结果。 2、 做回归测试--检证因修错并未破坏原来正确的部分 发生Ver1-Bug0003错误的原因是再设计8月1日的日期时逻辑处理错误, 再选择回归测试的测试用例是主要是针对日期为1 , 月份为7或不为7、 年份任意的日期进行测试, 测试用例设计如下表: 回归测试测试用例表 ID 输入日期 操作步骤 预计输出 实际输出 备注 HG-001 1989-8-1 输入年月日, 点击”计算”按钮 1989-7-31 1989-7-31 经过 HG-002 1999-8-1 同上 1999-7-31 1999-7-31 经过 HG-003 2050-8-1 同上 2050-7-31 2050-7-31 经过 HG-004 1800-8-1 同上 1800-7-31 1800-7-31 经过 HG-005 1801-1-1 同上 1800-12-31 1800-12-31 经过 HG-006 1804-2-1 同上 1804-1-31 1804-1-31 经过 HG-007 1804-3-1 同上 1804-2-29 1804-2-29 经过 HG-008 1806-3-1 同上 1806-2-28 1806-2-28 经过 HG-009 1888-4-1 同上 1888-3-31 1888-3-31 经过 HG-010 1900-5-1 同上 1900-4-30 1900-4-30 经过 HG-011 1945-6-1 同上 1945-5-31 1945-5-31 经过 HG-012 1956-7-1 同上 1956-6-30 1956-6-30 经过 HG-013 1999-9-1 同上 1999-8-31 1999-8-31 经过 HG-014 -10-1 同上 -9-30 -9-30 经过 HG-015 2032-11-1 同上 2032-10-31 2032-10-31 经过 HG-016 2036-12-1 同上 2036-11-30 2036-11-30 经过
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服