前言
是什么
测试用例,就是为了验证某个需求是否实现、是否存在缺陷,在测试执行之前设计的一套详细的测试方案。测试用例通常由测试标题、前置条件、测试数据、测试步骤、预期结果等组成。
为什么
- 保证测试过程中,测试点覆盖全面
- 体现QA了解需求的过程
- 帮助QA理清测试思路及测试过程
- 规划测试数据的准备
- 记录测试所覆盖的测试内容,同时反应测试进度
- 为后续的测试提供可参考的依据
- 对测试而言,工作的积累和沉淀,以及质量保证的依据;
- 对后续的工作,包括持续的功能迭代,或者后面的技术重构,功能重构,都是起到很好的辅助和参考,或者说是依据
- 开发自测的依据
测试用例编写
用例输出依赖:
需求文档
- 设计稿
- 模块经验
- 测试人员经验
用例输出:
- 整体UI考量:需要明确列出需要覆盖的浏览器和对应的功能列表
- 业务逻辑:
- 根据需求和设计稿,划分用例单元(最终映射到页面的每个元素),细化
- 罗列页面元素点
- 考量该元素的数据输入、展示、以及数据输出。数据存储牵涉到表的,需要了解表结构和操作对表数据的影响
- 考量需求和设计稿对该元素的要求
- 用例设计方法规划case的框架和数量:等价类、边界值、错误推测等
- 探索用例:各类场景,用户用法,‘‘奇思妙想’’
- 数据流
- 定义各类数据输入,以及可能影响的功能列表
- 定于各类型数据输出对其它模块的影响
测试用例编写
-
标题:清晰的将测试的主体描述出来。例如:
-
校验勾选‘一周内自动登录’,一周内不会登出✅
-
一周内自动登录 ✖
-
-
前置条件:如果用例依赖数据,将数据一并写如前置条件中。
-
步骤:
-
能正常执行的主要步骤。(能让他人可以顺利执行的步骤,不需要具体到登录登出类似的步骤)
-
避免将逻辑直接写入步骤中。(例如语言显示逻辑,很多用例都会提到,但是没有具体用例。)
-
步骤中如包含网站术语,请加以区分。(例如,点击 ‘登录’ )
-
-
预期:要明确,避免出现 ‘显示正确’,‘值正确’ ,‘参数正确’之类的模糊预期。
-
用例类型:功能测试,接口测试。
-
优先级:
- 1级用例: 界面基本展示;服务/数据正确;涉及到环境配置的功能;重要的纯前端的交互功能;
- 2级用例: 最常执行以保证功能性是稳定的,目标的行为和能力可以正常的工作,和重要的错误和边界被测试的测试用例的集合。
- 3级用例: 这是使给出的功能区域或功能变得更详细,检查功能的多数方面包括边界,错误和配置测试的测试用例 。 例如,数值或数组的边界情况、特殊字符、字符串超长、与外部交互消息失败、消息超时、事物完整性测试、可靠性测试等。
- 4级用例: 这是通常最少被执行的测试用例。但这并不意味着这些测试都不重要,只是说他们在项目的生命期间里不是常常被运行。 例如GUI,错误信息,可用性,压力和性能测试。还包括一些较为生僻的预置条件和数据设置。
-
备注:如有必要贴图,可将图贴在备注中。
各个优先级的测试用例使用场景:
- 线上CN/US冒烟测试 :执行1级用例。
- Release环境冒烟测试:涉及更新模块执行1,2级用例。其他执行1级用例。
- QA环境回归测试 :涉及更新模块执行1,2,3级用例。其他执行1,2级用例。
- story评估的测试用例:评估1-3级用例
- story执行测试用例:执行1-4级用例
- 开发自测:执行1-2级用例
测试用例设计方法
-
等价类
- 完备性:划分的子集合的并集是整个集合;
- 无冗余性:子集互不相交;
- 等价性:属于同一等价类的测试数据,映射到”相同的执行路径"。
-
边界值
-
场景设计法
-
判定表
-
因果图
-
正交法
-
错误猜测法
如何做好一个story的测试工作
-
需求评审(产品文档,设计稿)
- 外部评审:测试不是被动的接受,应该和产品、开发一起脑暴,发现设计缺陷、技术风险和隐患、关联方影响等;
- 内部评审:团队内部对技术方案进行评审、实训,找出关注点、风险点
- 目的:此阶段是质量的基石,通过测试左移,尽早发现需求设计缺陷、技术方案风险、接口设计缺陷、性能设计缺陷、关联方依赖影响,了解测试关注点,关注可测试性等问题。
-
功能测试用例设计
- 业务理解:首先,要对业务有充分的理解,不仅仅是story本身的业务理解,还有和story相关的功能、上下游数据、接口的传参,以及组件化兼容之类;
- 场景设计:正常场景、异常场景、补偿场景,场景流的每个关键节点都要列出检查项
- 数据准备:前后端之间、组件之间,如 Mock 数据、老数据兼容的,要提前准备好各种场景的历史数据
-
接口测试用例设计
-
测试用例评审
- 可以更好的完善测试用例,提高测试点和场景的覆盖范围,发现更多的问题,保证质量
- 同时也是新一轮头脑风暴,可能会发现新的问题,比如需求上的缺陷,或者技术方案需要改动
-
可能存在的性能评估
- 前端渲染
- 后端性能,服务性能
-
测试执行
- 问题定位
- 前后端通信的接口参数,以及后端和其他依赖服务的参数等,这些都能了解透彻
-
性能测试(包括前端性能,后端服务性能)
-
PM、UI/UX 功能sign off
-
集成测试(回归测试)
-
上线冒烟测试,回归测试
-
脚本定期监控
目的:此阶段是质量补偿,快速响应和解决,降低生产事故造成的损失。 -
测试用例归档