软件测试 第3章 测试用例设计 如何进行测试, 初学者:立即进行测试,希望找出所有错误,如同没有经过训练的开发工程师急于编写代码一样。 第3章 测试用例设计 如何进行测试, 初学者:立即进行测试,希望找出所有错误,如同没有经过训练的开发工程师急于编写代码一样。 工程:软件开发是一个工程。 软件测试也是一个工程。
本章内容 3.1 什么是测试用例 3.2 为什么需要测试用例 3.3 测试用例的质量 3.4 测试用例的组织和使用 讲解了测试用例的概念,通过例子、小练习进一步了解了测试用例。清楚了测试用例是测试执行的基础这样一个事实。说**是执行的基础,可以看出测试用例的重要作用,我们从以下几个方面进行分析
测试用例的作用 重要参考依据 提高测试质量 有效性 复用性 客观性 可评估性和可管理性 知识传递 究竟有什么用处? 1。期望结构--评判的依据 2。用例设计编写的基础是建立在对需求和产品的特性了解的之上,只要如此才能发现更多缺陷 3。有效性:测试用例都是采用不同测试技术精心设计,如边界值、等价类、负面考虑、对重点部位重点关注,能有效地发现缺陷 4。复用性:软件开发新版本,同一个功能多次测试, 5。客观性:不同的人参照测试用例实施测试,就可以保证测试质量,减少人为因素的影响。 6。知识传递:软件本身可以对用例进行复用,执行测试的人也可以对用例进行复用。
本章内容 3.1 什么是测试用例 3.2 为什么需要测试用例 3.3 测试用例的质量 3.4 测试用例的组织和使用
测试用例的质量 3.3.1 测试用例的质量要求 3.3.2 测试用例书写标准 3.3.3 如何设计出高质量的测试用例 3.3.4 测试用例的评审 既然测试用例重要,那么我们如何设计出高质量的用例?之前,了解用例的质量要求?两个方面:整体和局部。
单个测试用例的质量要求 具有可操作性 具备所需的各项信息 各项信息描述准确、清楚 测试目标针对性强 验证点完备,而且没有太多的验证点 没有太多的操作步骤,例如不超过7步 符合正常业务惯例。 单个测试用例的质量要求集中在细节上。比如说文字的 操作性:设计时充分考虑可执行性,有明确的执行步骤可以重现缺陷 验证点完备,而且没有太多的验证点:也称检查点、测试点,可采用对待测问题定义优先级的方法,决定哪些需求点/问题点写成用例,哪些需求点/问题点只作为检查点出现
整体测试用例的质量要求 覆盖率。依据特定的测试目标的要求,尽可能覆盖所有的测试范围、功能特性和代码。 易用性。测试用例的设计思路清晰、组织结构层次合理,测试用例操作的连贯性好,使单个模块的测试用例执行顺畅。 易维护性。应该以很少的时间来完成测试测试用例的维护工作,包括添加、修改和删除测试用例。易用性和易读性,也有助于易维护性。 粒度适中。既能覆盖各个特定的场景,保证测试的效率;又能处理好不同数据输入的测试要求,提高测试用例的可维护性。 测试用例的整体可以看作是个体的集合,但是并非是简单数量上的增多。 1000不能保证完全测试,但是经过计划的100个用例可以在很大程度上满足测试的要求。 作为测试用例集合的整体质量,我们希望对软件产品所有的功能特性和非功能特性都进行测试,因此,重点关注的是覆盖率。 覆盖率可分为基于需求的、基于代码的测试覆盖 测试覆盖 = T(p,i,x,s) / RfT , 其中: T(p,i,x,s)是已计划的、已实施的、已执行的和成功的测试用例数,RfT 是测试需求 (Requirement for Test) 的总数 测试覆盖 = Ie / TIic ,其中:Ie 是用代码语句、代码分支、代码路径、数据状态判定点或数据元素名表示的已执行项目数。TIic (Total number of Items in the code) 是代码中的项目总数。 粒度适中:粒度过粗会导致测试点不够准确,操作步聚或期望结果不明确,还有个麻烦就是,发现很多bug都对应着一个用例,这样给缺陷管理和统计起来也带来麻烦,在项目后期的报告中不能清晰的统计缺陷。 而粒度过小,如每个测试点都对应一个或多个测试用例,测试用例的数量太大,管理维护工作量大,且限制人的思维。
测试用例书写标准 好 前边:整体和个体两个方面介绍了要求: 如果我们遵照这些要求进行了用例设计,最终在书写时候也要注意用例的各项要素要完备。 如何保证测试用例的高质量:首先从形式上讲,可遵守如表所示的各项要素
如何设计出高质量的测试用例 以需求为导向设计测试用例 责任到人 灵活的设计方法 测试用例设计不能局限于输入数据 尽量避免含糊的、冗长的或复杂的测试用例 尽量将具有相类似功能的测试用例抽象并归类 书写规范,看到的用例只是一个结果,要真正保证测试用例的质量,还要从 设计、评审、维护和执行等过程进行分析。 设计: 设计方法:黑盒:等价类划分、边界值划分、因果图分析和错误猜测, 白盒:语句覆盖、判定(分支)覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。 除了数据外,还有用例的结构、设计策略、设计思路等
测试用例的评审 分析其设计思路,是否符合业务逻辑、是否符合技术设计的逻辑、是否可以和系统架构、组件等建立起完全的映射关系? 在局部上,应有重有轻,抓住一些测试的难点、系统的关键点,从不同的角度向测试用例的设计者提问。 在细节上,检查是否遵守测试用例编写的规范或模板,是否漏掉每一元素、每项元素是否描述清楚 检查表,提问 需求和设计评审,对于用例来讲,同样是提高质量的有效手段之一。 从框架结构 -> 具体细节
评审的内容有以下几个方面: 1) 用例设计的结构安排是否清晰、合理,是否利于高效地对需求进行覆盖。 2) 优先级安排是否合理。 3) 是否覆盖测试需求上的所有功能点。 4) 用例是否具有很好可执行性。 5) 是否已经删除了冗余的用例。 6) 是否包含充分的负面测试用例。 7) 是否从用户层面来设计用户使用场景和使用流程的测试用例。 8) 是否简洁,复用性强。 具体的讲,从以下这些方面: 4.例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。 6.充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。 8.例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。
测试用例的维护 随着产品版本的不断升级,软件测试用例也需要得到及时维护,有时还需要重构——对测试用例的结构进行调整,包括用例模块的合并和分解,确保每一个测试用例都是有效的 测试用例的维护是一项长期的工作,日积月累,测试用例的质量会得到很大的改善。
测试用例的执行(run case) 清晰而正确的理解测试用例 严格执行 从学习的流程讲,先接触执行,然后是编写。 执行用例=贯彻用例编写者的测试思想,不能曲解和误解。 记事本 != 写字板 严格执行,不能走样: 输入 != 粘贴,可以增加“粘贴”的测试用例 结果比较很重要,但是测试过程也一定要注意,遇到问题,立即停下,进行相应的记录。
3.4 测试用例的组织和使用 3.4.1 测试用例的创建 3.4.2 测试用例套件 3.4.3 测试用例的维护
测试用例的创建 建立合适的、可扩展的测试用例框架,从而借助这个框架能有效地组织众多的测试用例,包括对测试用例的分类、清晰的层次结构等 前 讲述了测试用例的质量要求,也学习了要从设计、评审、维护和执行等方面来保证测试用例的质量。 对于一个测试对象,我们如何来创建具体的测试用例呢? 先搭骨架后填肉的做法。
实例 书本中格式的调整: 测试套件:由一系列测试用例和与之关联的测试环境组合而构成的集合。 如何组套?按照程序功能模块、用例类型、用例优先级 给出了“功能测试”时候,哪些情况需要创建测试套件
小结 测试用例 测试用例的质量要求 测试用例的设计、评审、维护和执行 定义 要素 本章,定义:验证测试点而设计的 条件、步骤、期望和相关数据的集合。 要素:测试目标、环境、输入数据、步骤和期望结果 从个体和整体来说明了对测试用例的质量要求 从设计、评审、维护和执行方面说明了对用例质量保证的重要意义,当然 格式要注意遵守规范。
练习:QQ登录界面测试用例 将要求书写黑板: 1。多少个测试点(测试用例更多) 所有可以看到的东西、框、checkbox,按钮,标题, 2。优先级高的有哪些 3。帐户测试有哪些方面内容 4。帐号的控件为什么为列表框? 5。最大化按钮为什么不可用?
序号 操作 期望结果 实际结果 是否通过 1: 除0操作 报错 报错 pass 2: 最大值+1 3: 最大值+2 4: 最小值-1 5: 负数开方 6: 0开方 7: 正数开方 8: 小数开方 9: 退格键 10:CE功能 11:C功能 12:应用 MC MR …等时,MC上面的区域显示的值是否正确等 13:0的倒数 14:0/0 1-(-1) 15:优先级: 1+2*3 9 16:显示窗口不可编辑等等 17:连乘 4**8 应该得32 4//8 0.5
小游戏:一个纸杯的测试用例
一 需求:测试一个带广告图案的花纸杯 二 相关背景: 1.杯子特性: (1)杯子的容量: 能装多少升水,空杯,半杯,满杯 (2)杯子的型状: 圆型,上面口大,下面小。 (3)杯子的材料: 纸杯 (4)杯子的抗摔能力: 风吹是否会倒,摔一次是否会摔坏,摔多次是否会摔坏 (5)杯子的耐温性: 装冷水,冰水,热水 2.广告图案: (1)广告内容与图案碰水是否会掉色 (2)广告内容与图案是否合法 (3)广告内容与图案是否容易剥落
三 影响范围: 1.可用性: (1)装入液体多久后会漏水 (2)装入热水多久后可以变温,装入冰水多久后可以融化 2.安全性: (1)装入不同液体,是否会有化学反应。比如:可乐,咖啡等饮料 (2)装入热水杯子是不是会变型和异味 3.性能: (1)不同人群是否能适合杯子的型状,包括握杯的感觉和喝水的感觉 (2)不同人群是否能接受杯子的广告内容与图案