编写测试用例基本要求
1、项目测试流程
(1)需求评审
(2)编写测试计划与测试方案
(3)测试用例设计与评审
(4)测试执行与BUG跟踪
(5)编写测试报告
2、测试用例需求来源
(1)需求说明书,产品原型图,UI设计图
(2)站在用户角度,测试软件的可用性
3、测试用例设计步骤
(1)需求分析
(2)整理测试点
- 测试点是测试中需要关注的具体功能点
- 测试点的作用是用来拆分需求,辅助编写测试用例
(3)编写测试用例
4、编写测试用例的原则
(1)能看懂——确保每个用例通俗易懂
(2)能执行——测试用例清晰准确,用例中每个步骤都是可执行的
5、测试结果的几种状态说明
(1)pass——通过
(2)fail——失败
(3)block——阻塞
(4)NA——忽略
6、执行测试用例原则
(1)严格按照测试用例书写的步骤执行
(2)失败的用例,及时提交缺陷报告
7、多个输入条件场景----减少测试用例的五个规则
(1)长度或范围
(2)数据类型
(3)规则
(4)是否必填
(5)是否可以重复
非功能性测试
1、主要包括:
- 兼容性
- 界面测试
- 易用性
- 性能
- 安全性
2、兼容性
(1)含义:兼容性指软件对不同平台,不同环境,不同分别率的适应能力。
(2)应用场景:项目要求在不同的操作系统、不同浏览器、不同的平台、不同分辨率下操作时
(3)关注点:
- OS:不同的操作系统、相同操作系统下的不同版本
- Browser(浏览器):不同的浏览器、相同浏览器下的不同版本
- 分辨率(补充)
3、界面测试
(1)含义:界面测试,或称UI测试,测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯。
(2)操作:
- 一般情况,直接依据产品原型图以及UI效果图,进行对比验证,确认一致
- 如果没有原型图和UI效果图,可以通过一下几个方面考虑:
- 导航测试
- 图形测试
- 内容测试
- 整体界面风格测试
4、易用性
(1)含义:易用性测试是指用户使用软件时是否感觉方便。简单说就是:易懂、易学、易用、吸引人。
(2)关注点:
- 项目难易程度
- 适用人群
- 用户的计算机水平
5、性能测试
(1)含义:性能测试是通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
(2)考虑时间:
- 对软件的性能有要求
- 用户大量的项目
(3)目的:
- 验证软件系统是否能够达到预期的性能指标
- 发现软件系统中存在的性能瓶颈,以便优化软件
- 验证稳定性:在一个生产的负荷下测试一定的时间,评估系统的稳定性是否满足要求
6、安全性:
(1)考虑时间:功能模块涉及到用户隐私信息,人身,财产安全等情况。
(2)关注点:
- 安全性:登录时密码是否进行加密以及密码是否容易破解
- SQL注入:攻击者把SQL语句作为参数传入web应用程序,最终达到欺骗服务器执行恶意的SQL语句
状态迁移法
1、图与树
(1)图:使用线把点连接起来
(2)树:没有闭环的图
- 根节点——树干最根部的结点
- 叶子节点——树杈最末梢的结点
- 分支结点——处在主干和分支部分的结点
2、状态迁移法介绍
所谓状态迁移法就是首先要找出被测对象的所有状态,然后再分析各个状态之间的转换,据此编写测试用例。
注意:状态迁移法不保证单个功能点的正确性,仅保证状态间的转换是否与需求描述一致
3、适用场景
在业务流程中涉及到了复杂的业务场景(即业务状态的迁移), 而这些业务场景在需求说明书中往往不能够完全阐述清楚,容易出现遗漏。
4、使用步骤
(1)明确状态节点:分析被测对象的需求规格说明书,明确被测对象的状态节点数量
(2)绘制状态迁移图:利用圆型表示状态节点,有向箭头表示状态间的迁移关系
(3)绘制状态迁移树:根据状态迁移图的节点和箭头绘制状态迁移树,首先确定起始节点及终止节点
(4)抽取测试路径设计用例
- 找到所有的叶子节点
- 一条路径就是根节点到叶子节点所走的路线
- 一条路径对应一条测试用例
5、案例分析
飞机售票系统:
(1)客户向航空公司打电话预定机票,此时机票信息处于“预订”状态。
(2)顾客支付了机票费用后,机票信息变为“已支付”状态。
(3)旅行当天到达机场,拿到机票后,机票信息变为“已出票”状态。
(4)登机检票后,机票信息变为“已使用”状态。
(5)在检票之前任何时间都可以取消自己的订票信息,取消后,订票信息处于“已取消” 状态。
状态迁移图:
状态迁移树:
测试路径:
- 路径 1:预订—>已取消
- 路径 2:预订—>已支付—>已取消
- 路径 3:预订—>已支付—>已出票—>已取消
- 路径 4:预订—>已支付—>已出票—>已使用
测试用例: