第10章回顾测试目标和准则测试需求分析测试项目的估算与进度安排测试风险和测试策略测试计划的内容与编制软件测试方法和技术第11章设计和维护测试用例朱少民Kerryzhu@vip.163.com本章要解决的问题为什么我们要使用测试用例?测试用例有哪些基本元素组成?测试用例编写和设计时需要遵循哪些基本的原则?测试用例结构和设计过程跟踪和维护测试用例注:测试用例设计的具体方法,在第3章已做介绍第11章设计和维护测试用例11.1测试用例构成及其设计11.2测试用例的组织和跟踪如何描述测试行为?示例11.1测试用例构成及其设计11.1.1测试用例的重要性11.1.2测试用例设计书写标准11.1.3测试用例设计考虑因素11.1.4测试用例设计的基本原则什么是测试用例测试用例可以独立进行测试执行的最小单元测试内容的一系列情景和每个情景中必须依靠输入和输出,而对软件的正确性进行判断的测试文档,称为测试用例测试用例就是将软件测试的行为活动转化为规范化的文档11.1.1测试用例的重要性如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。软件测试是有组织性、步骤性和计划性的,为了能将软件测试的行为转换为可管理的、具体量化的模式,需要创建和维护测试用例测试用例是测试工作的指导,是软件测试的必须遵守的准则,更是软件测试质量稳定的根本保障测试用例的作用有效性可复用性易组织性客观性可评估性和可管理性知识传递重要参考依据,提高测试质量11.1.2测试用例设计书写标准目的?输入数据?操作步骤?期望结果?还有呢?描述测试需要哪些内容标志符(Identification)测试项(TestItems)测试环境要求输入标准(InputCriteria)输出标准(OutputCriteria)测试用例之间的关联测试用例的元素示例良好测试用例的特征可以最大程度地找出软件隐藏的缺陷可以最高效率的找出软件缺陷可以最大程度地满足测试覆盖要求既不过分复杂、也不能过分简单使软件缺陷的表现可以清楚的判定待查的输出结果或文件必须尽量简单明了不包含重复的测试用例测试用例内容清晰、格式一致、分类组织11.1.3测试用例设计考虑因素具有代表性、典型性寻求系统设计、功能设计的弱点测试用例需要考虑到正确的输入,也需要考虑错误的或者异常的输入需要分析怎样使得这样的错误或者异常能够发生考虑用户实际的诸多使用场景示例一P.313示例二P.31511.1.4测试用例设计的基本原则避免含糊的测试用例Pass/Failedisclear,操作环境,操作步骤将具有相类似功能的测试用例抽象并归类数据驱动的测试用例避免冗长和复杂的测试用例例如:操作步骤=7,一个测试用例一个验证点单个测试用例的质量要求具有可操作性具备所需的各项信息各项信息描述准确、清楚测试目标针对性强验证点完备,而且没有太多的验证点没有太多的操作步骤符合正常业务惯例。输入不同的用户名和口令,其结果要满足设定的要求如用户名、口令判断正确与否等测试用例的颗粒度粗颗粒度细颗粒度Vs.整体测试用例的质量要求覆盖率:依据特定的测试目标,尽可能覆盖所有的测试范围、功能特性和代码易用性:设计思路清晰、组织结构层次合理,测试用例操作的连贯性好、执行顺畅易维护性:以较少的时间来完成测试用例的维护工作,包括易读性、一致性等粒度适中:既能覆盖各个特定的场景,保证测试覆盖率;又能处理好不同的测试数据、测试条件(数据驱动),提高测试用例的可维护性11.2测试用例组织和维护11.2.1测试用例的属性11.2.2测试套件及其构成方法11.2.3跟踪测试用例11.2.4维护测试用例11.2.5测试用例的覆盖率11.2.1测试用例的属性TestCaseasaObject?属性的阶段表现一些属性说明目标性,包括功能性、性能、容错性、数据迁移等各方面的测试用例;所属的范围,属于哪一个组件或模块关联性,和软件产品特性相联系阶段性,属于单元测试、集成测试、系统测试、验收测试中的某一个阶段时效性,不同的版本所适用的测试用例可能不相同11.2.2测试套件及其构成方法建立合适的、可扩展的测试用例框架,有效地组织众多的测试用例,包括对测试用例的分类、清晰的层次结构等TestCaseTestSuite实例测试用例套件测试套件(TestSuite)是由一系列测试用例并与之关联的测试环境组合而构成的集合,已满足测试执行的特定要求。通过测试套件,将服务于同一个测试目标、特定的测试任务或某一运行环境下的一系列测试用例有机地组合起来1)按程序功能模块组织2)按测试用例的类型组织3)按测试用例的优先级组织测试类型与测试用例设计根据测试类型设计根据程序功能模块设计功能测试易用性测试配置测试压力测试回归测试界面测试文档测试国际化测试•测试用例1•测试用例2•测试用例3•测试用例1•测试用例2•测试用例3安装/卸载测试联机帮助测试软件更新测试联机注册测试文件操作测试•测试用例1•测试用例2•测试用例3•测试用例1•测试用例2•测试用例3数据备份测试测试用例的组织和测试过程的关系测试套件应用场合只是部分功能模块发生了变化,就可创建由这些改动模块的测试用例构成的测试套件在修改的模块中,也不需要选择所有的测试用例,针对不同的优先级创建不同的测试套件测试执行的第一阶段可以创建一个特定平台上的测试套件有必要为自动化测试、手工测试分别建立测试套件。可建立和测试人员相对应的、不同平台或模块的测试套件回归测试中,可以先运行曾经发现缺陷的测试用例,然后再运行从来没有发现的缺陷的测试用例11.2.3跟踪测试用例用例执行的跟踪:跟上进度?测试人员每天能执行多少个测试用例?“通过、未通过以及未测试的”各占多少?不能被执行的原因是什么?100%工作量(需执行的测试用例数)时间测试用例覆盖率的跟踪Failedcase未执行的用例非测试用例发现的缺陷11.2.4维护测试用例测试用例的维护是持续改进的过程测试用例维护流程示例11.2.5测试用例的覆盖率测试用例本身:发现缺陷后补充的测试用例数/总的测试用例数需求、功能点覆盖率:每个功能点都要有测试用例,平均4个/FP代码覆盖率:借助工具跟踪执行过程,了解代码行、类、方法等覆盖率情况ThankyouQ&A