均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为 2004 年11月29日,则该程序的输出为2004年12月1日。
(1) 分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(3) 根据 (1) 和 (2) ,画出简化后的决策表。
4.题目四:找零钱最佳组合
假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内 (P) , 求找给顾客最少货币个(张)数?(货币面值50元10 元,5 元,1元四 种 )
3.2.6 实验步骤
(1) 根据功能性测试技术设计测试用例,主要考虑等价类划分和边界值分析测试技术;
(2) 根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性
与冗余性考虑),设计两套测试用例集;
(3) 根据设计的两套测试用例集进行测试;
3.2.7 实验要求
(1) 根据题目要求编写测试用例(参照表1进行用例设计); (2) 实验结果要求给出两套测试用例集测试效果比较; (3) 撰写实验报告;
3.2.8 实验思考
(1) 在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷; (2) 在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;
3.3单元测试
3.3.1 实验类型
实验类型为设计型,4个学时。
3.3.2 实验目的
(1) 掌握单元测试技术,并按单元测试的要求设计测试用例。 (2) 能熟练应用功能性测试技术进行测试用例设计; (3) 能熟练应用结构性测试技术进行测试用例设计; (4) 对测试用例进行优化设计; (5) 熟悉测试管理中的量化指标。
3.3.3 背景知识
一、单元测试的内容 (1) 模块接口测试 :对通过被测模块的数据流进行测试。为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。
(2) 局部数据结构测试 :设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查清全程数据对模块的影响。
(3) 路径测试 :选择适当的测试用例,对模块中重要的执行路径进行测试。对基本执行路径和循环进行测试可以发现大量的路径错误。
(4) 错误处理测试 :检查模块的错误处理功能是否包含有错误或缺陷。例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。
(5) 边界测试 :要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。
此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。这类信息对进行性能评价是十分有用的。
二、 单元测试的步骤
通常单元测试在编码阶段进行。在源程序代码编制完成,经过评审和验证,确认没有语法错误之后,就开始进行单元测试的测试用例设计。利用设计文档,设计可以验证程序功能、找出程序错误的多个测试用例。对于每一组输入,应有预期的正确结果。
模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。这些辅助模块分为两种:
(1) 驱动模块:相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。
(2) 桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。
被测模块、与它相关的驱动模块及桩模块共同构成了一个“测试环境”,如图3-1所示。
图3-1 单元测试环境
3.3.4 实验设备
主流PC机一套,要求安装windows操作系统、VC开发工具和OFFICE工具;
3.3.5 实验内容
题目一: 针对三角形问题进行单元测试
三角形问题:接受三个正整数a、b、c作为输入,用做三角形的边。三边必须满足条件: 0
3.3.6 实验步骤
(1) 根据功能测试技术设计测试用例,主要考虑边界测试、等价类(弱一般、强一般、弱健
壮性、强健壮性)和基于决策表等技术;
(2) 根据结构性测试技术设计测试用例,主要考虑路径测试、数据流等测试技术;
(3) 根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分
性与冗余性考虑),设计两套测试用例集;
(4) 根据设计的两套测试用例集进行测试、参照表2所示的缺陷等级给出缺陷列表; (5) 计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标;
3.3.7 实验要求
(1) 以实验报告的形式撰写单元测试的测试用例。
(2) 实验结果要求给出两套测试用例集测试效果比较(根据实验步骤中的4、5两步进行撰
写);
3.3.8 实验思考
(1) 在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷; (2) 在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;. 为了高效地进行软件测试,目前还有哪些测试技术可以使用?
3.4 QuickTest Professional初级使用
3.4.1 实验类型
实验类型为验证型,2个学时。
3.4.2 实验目的
了解QuickTest测试工具的操作界面,了解QuickTest测试工具的测试模式和过程,并能使用QuickTest测试工具录制测试脚本、执行并分析测试脚本。
3.4.3 背景知识
Mercury QuickTest Professional是一款先进的自动化测试解决方案,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为。使用QuickTest Professional关键字视图、自动文档(Auto-documentation)和活动屏幕(Active Screen),无需一行代码,就可以创建和修改测试脚本,同时满足了技术型和非技术型用户的需求,让各个公司有能力部署更高质量的应用。
QuickTest主要应用在回归测试中。QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。
一、QuickTest窗口
在开始录制测试脚本之前,先熟悉QuickTest 的窗口。QuickTest 的主窗口如图3-2所示。
图3-2 QuickTest 的主窗口