第5章测试用例设计5.1测试用例的基本概念5.2测试用例的设计5.3测试用例设计实例5.4测试用例的执行与跟踪5.5测试用例管理5.1测试用例的基本概念测试用例是测试用例是执行的最小实体,是为特定的目的而设计的一组测试输入、执行条件和预期的结果。简单地说,测试用例就是一个文档,描述输入、动作、或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作,并且达到程序所设计的结果。测试用例的作用1.有效性2.避免测试的盲目性3.可维护性4.可复用性5.可评估性6.可管理性安博测试空间技术中心地址:北京市海淀区学院路40号大唐电信测试空间楼联系电话:010-6230322362303260623032305.2测试用例的设计对于一个测试人员来说测试用例的设计编写是一项必须掌握的能力。但有效的设计和熟练的编写测试用例却是一个十分复杂的技术,测试用例编写者不仅要掌握软件测试的技术和流程,而且还要对整个软件不管从业务上,还是对被测软件的设计、功能规格说明、用户试用场景以及程序/模块的结构方面,都有比较透彻的理解和明晰的把握,稍有不慎就会顾此失彼,造成疏漏。5.2.1测试设计说明测试设计说明就是在测试计划中提炼测试方法,要明确指出设计包含的特性以及相关的测试方法,并指定判断特性通过/失败的规则。测试设计说明的目的是组织和描述针对具体特性需要进行的测试,但是它并不给出具体的测试用例或者执行测试的步骤。以下内容来自于ANSI/IEEE829标准,可作为测试设计说明的部分参考。标识符被测试的特性方法测试用例信息通过/失败规则5.2.2测试用例的编写标准一个优秀的测试用例应该包含以下要素:用例的编号(ID测试输入说明测试标题操作步骤测试项预期结果测试环境要求测试用例之间的关联特殊要求测试用例设计和测试人员测试技术测试日期5.2.3测试用例设计考虑的因素1.编写测试用例所依据和参考的文档和资料软件需求说明”及相关文档;相关的设计说明(概要设计,详细设计等);与开发组交流对需求理解的记录;已经基本成型的、成熟的测试用例等。2.测试用例设计的基本原则(1)用成熟测试用例设计方法来指导设计(2)测试用例的正确性(3)测试用例的代表性(4)测试结果的可判定性(5)测试结果的可再现性(6)足够详细、准确和清晰的步骤3.设计测试用例应注意的问题(1)把测试用例设计等同于测试输入数据的设计(2)强调测试用例设计得越详细越好(3)追求测试用例设计“一步到位”(4)将多个测试用例混在一个用例中(5)让没有测试经验的人员设计测试用例5.2.4测试用例的分类可以把测试用例归为5大类:白盒测试用例软件各项功能的测试用例用户界面测试用例软件的各项非功能测试用例对软件缺陷修正所确认的测试用例测试种类、阶段和用例的关系如表5-2所示表5-2测试阶段与测试用例关系列表测试阶段测试类型执行人员单元测试模块功能测试,包含部分接口测试、路径测试开发人员集成测试接口测试、路径测试,含部分功能测试开发人员,如果测试人员水平较高可以由测试人员执行系统测试功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试测试人员验收测试对于实际项目基本同上,并包含文档测试;对于软件产品主要测试相关技术文档测试人员,可能包含用户测试工作和开发通常一同进行,所以在完成测试计划编写后,就可以进行用例的编写工作了。测试和开发的对应关系如表5-3所示。表5-3测试用例编写的时间安排开发阶段依据文档编写的用例需求分析结束后需求文档系统测试对应的用例概要设计阶段结束后概要设计、体系设计集成测试对应的用例详细设计阶段详细设计文档单元测试对应的用例5.3测试用例设计实例【例5-1】下面计算实数平方根的函数的设计说明,试由软件设计说明导出的测试用例。输入:实数输出:实数处理:当输入0或大于0时,返回输入数的平方根;当输入小于0时,显示:“Squarerooterror-illegalnegativeinput,并返回0;库函数Print_Line用于显示出错信息。解:针对设计说明中的3个陈述,可以设计2个测试用例与之对应。测试用例1:输入4,返回2。//执行第一个陈述测试用例2:输入-10,返回0,显示“Squarerooterror-illegalnegativeinput”//对应第二个和第三个陈述。5.4测试用例的执行与跟踪执行与跟踪测试用例前,首先要好搭建测试环境,并定义测试用例的执行顺序,然后就可以执行与跟踪测试用例了。测试用例执行过程中,搭建测试环境是第一步。测试环境搭建之后,根据定义的测试用例执行顺序,可逐个执行测试用例。测试用例执行中应该注意以下几个问题:(1)全方位的观察测试用例执行结果(2)加强测试过程记录(3)及时确认发现的问题(4)与开发人员良好的沟通(5)及时更新测试用例(6)提交一份优秀的问题报告单(7)测试结果分析5.5测试用例管理与软件本身的生命周期一样,测试用例也需经过—“设计”、“评审”、“修改”、“执行”、“版本管理”、“发布”、“维护”等一系列阶段。在对测试用例进行管理过程中,建议采用工具,参照图5-4对用例进行控制和管理。编写用例用例评审用例修改使用用例用例升级/维护编写用例用例评审修改用例进入版本控制库使用用例&维护&升级图5-4用例管理示意图1.测试用例通常情况下,使用以下几种方法来组织测试用例:(1)按照程序的功能块组织(2)按照测试用例的类型组织(3)按照测试用例的优先级组织2.测试用例的评审有效的用例评审通常由下面两种形式组成:测试部门外部评审:主要是由开发部、项目实施部、甚至销售人员参加的评审,目的主要是查找测试工程师编写的用例是否缺少内容等。测试部门内部评审:是部门内部同行对测试策略的评审,中心是测试策略和用例编制思路是否正确,以此保证测试用例的有效性。3.测试用例的修改更新测试用例需要的原因主要有以下几个方面:(1)在测试过程中发现设计测试用例时考虑不周,设计不全面或者不准确,需要完善;(2)在软件交付使用后反馈的软件缺陷,部分软件缺陷未在测试中涵盖,这些缺陷是因测试用例存在漏洞造成的;(3)软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。4.测试用例的管理软件测试用例的管理是测试文件管理的一部分,为了有效地进行管理,需配备测试用例管理软件对测试用例进行管理。现在Internet上可以下载一些用来进行测试管理的软件,其中一些是免费的,如TCM(TestCaseManager)就可以用做测试用例的管理。