测试理论基础和接口测试

一、概述

1、测试技能分类

1.1按阶段划分
  • 单元测试:源代码
  • 集成测试:接口
  • 系统测试:对整个系统进行功能、兼容、安全、性能的测试
  • 验收测试
    • 内测
    • 公测
1.2按代码可见度划分
  • 黑盒测试:在完全不接触源码的情况下进行测试,例如:系统测试
  • 灰盒测试:在接触部分源码的情况下测试,例如:接口测试
  • 白盒测试:在完全接触源码的情况下,根据源码进行测试,例如:单元测试

拓展:测试策略

  • 冒烟测试:对该版本最基本的功能进行测试,保证基本的功能和流程能走通。(一般是以成功那条业务线来做冒烟测试)

2、质量模型

对一个产品进行测试时,需要考虑以下方面:

功能、性能、兼容、易用、安全

3、测试流程

  • 需求分析
  • 测试计划
  • 用例设计
  • 用例执行
  • 缺陷管理
  • 测试报告

4、测试用例

4.1什么是测试用例

用例指的是用户使用产品时的案例,测试用例就是执行测试时,测试人员仿照用户使用的案例

4.2测试用例的作用

测试用例时实施测试时的标准,测试用例编写完成后,后续只需将精力放在测试的执行上即可。只要测试用例能覆盖全部的测试点,就能够防止漏测。

4.3测试用例编写格式
  • 用例编号
  • 用例标题
  • 项目/模块
  • 前置条件
  • 优先级
    • P0:核心功能测试用例(冒烟测试),确定此版本是否可测的测试用例,此部分测试用例如果fail会阻碍大部分其他测试用例的验证。
    • P1:高优先级测试用例,最常执行以保证功能性是稳定的;基本功能测试,和重要的错误、边界测试
    • P2:中优先级测试用例,更全面地验证功能的各个方面,异常测试,边界、中断、断网、容错、UI等测试用例
    • P3:低优先级测试用例,不常常被执行,性能、压力、兼容性、稳定性、安全、可用性等等。
  • 测试步骤
  • 测试数据
  • 预期结果

二、设计测试用例

2.1等价类法

**测试场景:**需要大量数据输入,但无法穷举的情况

将输入值的多条件依次划分为有效类等价类无效等价类,每个等价类中取一个值,然后自由组合

例如:输入的密码要求6-18个字符,包含数字、字母、下划线且必须以字母开头

将条件分为三部分:

  • 6-18个字符
  • 包含数字、字母、下划线
  • 以字母开头

再分别划分有效等价类和无效等价类:

有效等价类无效等价类
6-18个字符(1)少于6个字符(2)
多余18个字符(3)
空(4)
包含数字、字母、下划线(5)除了数字、字母、下划线以外的特殊字符(6)
以字母开头(7)以数字开头(8)
以下划线开头(9)

将这些条件自由组合,且每个组合中最多有一个无效等价类

目的是保证精准测试某个测试点

测试用例条件组合
n123_456正确格式
n12_32 5 7
n123_11111111111113 5 7
null4 5 7
n123_456@#¥1 6 7
123_456n1 5 8
_n1234561 5 9

2.2边界值法

**针对场景:**在范围判断的情景中,对边界值进行测试

相关概念:

  • 上点:边界上的点(正好等于)
  • 离点:距离上点最近的点(刚好大于,刚好小于)
  • 内点:范围内的点

边界值法与等价类法的区别:

与等价类划分法相比,边界值分析法更专注于输入或输出范围的边界值。等价类划分法将输入或输出划分为多个等价类,然后从每个等价类中选取一个或多个代表值进行测试。而边界值分析法则直接针对这些等价类的边界进行测试,确保对边界条件的全面覆盖。

边界值是等价类划分的一种,但是它不等于等价类划分。一般二者结合使用

例:对刚才的例子中6-18个字符的要求进行补充:

有效等价类无效等价类
10个字符(内点)
6个字符(上点)
18个字符(上点)
7个字符(离点)
17个字符(离点)
少于6个字符(2):5个字符(离点)
多余18个字符(3):19个字符(离点)
空(4)

边界值的优化:开内闭外

经过上面的例子发现有很多个冗余,我们可以通过开内闭外的方法优化一下数量
开内闭外:

  • 如果条件要求是开区间,则保留内部的离点,去掉外面的离点
  • 如果条件要求是闭区间,则保留外面的离点,去掉内部的离点

2.3判定表法

**针对场景:**多条件依赖

例:在某个情景中,要求:

  • 如果金额大于500元,且未过期,则发出批准单和提货单
  • 如果金额大于500元,但已过期,则不发出批准单和提货单
  • 如果金额不大于500元,则无论是否过期,都发出批准单和提货单
  • 无论金额大小,只要过期,都要发出通知单

若想覆盖所以测试点,就要按照判定表法列出所有条件的每一个取值,并根据给出的条件写出正确操作

金额是否过期正确操作
大于500通知单
大于500批准单、提货单
小于500批准单、提货单、通知单
小于500批准单、提货单

三、缺陷管理

3.1缺陷认定标准

  1. 多/少功能

  2. 功能错误

  3. 隐形功能缺失:产品文档没有明确提出但是应该有的功能

    例如:登陆成功后应该自动跳转到主页

  4. 易用性建议、是否好用(测试人员主观观点)

3.2缺陷管理流程

  1. 提交缺陷
  2. 分派缺陷
  3. 处理缺陷(由开发人员负责)
  4. 回归测试
  5. 关闭缺陷

3.3缺陷管理工具

Excel/禅道

3.4缺陷的相关信息

  • 缺陷ID
  • 缺陷标题:测试步骤描述+预期+实际
  • 状态
    • 新建
    • 打开
    • 关闭:缺陷已经处理完成
    • 拒绝:开发人员认为这不是缺陷/缺陷无法复现
    • 延期
  • 优先级:参考用例优先级
  • 模块:改缺陷位于哪个功能模块
  • 缺陷描述
    • 前置
    • 步骤
    • 预期
    • 实际
  • 附件/备注:日志或者截图来辅助说明

四、接口测试

4.1接口测试基础理论

**概念:**对系统或组件之间的接口进行测试。校验传递的数据正确性和逻辑依赖关系的正确性。

**测试方法:**模拟客户端想服务器发送请求,但是不是从前端页面,而是借助工具直接向接口发送请求,这样可以绕开前端页面的限制,更好地测试后端,发现一些通过操作页面发现不了的问题。

测试手段:

  • 专门的测试工具:
    • postman
    • fiddler
    • Jmeter
  • 代码实现自动化测试:python + requests + pytest

4.2接口测试流程

  1. 需求分析,产出需求文档
  2. 开发人员撰写接口文档
  3. 编写接口测试用例
  4. 执行测试用例
  5. 提交、跟踪缺陷
  6. 提交测试报告
  7. 自动化持续集成

4.3接口测试的测试点

接口的测试又可以细分为对接口的功能测试、对接口的性能测试、对接口的安全测试

4.3.1接口功能测试

单功能接口测试

  • 功能测试的一个业务模块,对应一个接口
  • 借助工具、代码,绕开前端界面,组织接口所需要的数据,展开接口测试

业务场景功能测试:在确保单功能使用正常后,按用户的实际使用场景,设计接口业务场景

  • 即把多个单功能串接起来
  • 例:登陆–添加员工–查询员工–修改员工–分页查询员工–删除员工
4.3.2接口性能测试
  • 响应时长
  • 兼容性
  • 并发性
  • 服务器资源利用率(CPU、磁盘IO、内存等)
4.3.3接口安全测试
  • 攻击安全:由安全工程师负责,与测试人员无关
  • 业务安全
    • 敏感数据加密处理
    • SQL注入
    • ……

4.4接口测试与功能测试设计的异同

与功能测试相同的点:针对每个数据框/参数,分别设置正向/反向的参数值

与功能测试不同的点:功能测试受到前端页面的限制,但是接口测试中参数的名称、数量不受限制,所以对参数本身也可以进行测试

  • 正向参数:必选参、可选参、全部参数
  • 反向参数:多参/少参/无参/错误参数(即自己乱写的参数)

4.5接口测试用例要素

相较于功能测试,接口测试具有统一的操作步骤(借助接口测试工具或者自动化代码);且”测试数据“这一部分更加复杂,除了参数值,还要有相关的http/https请求参数(请求头、请求行、url等)

两者共有的部分:

  • 用例编号
  • 用例标题
  • 模块
  • 优先级
  • 前置条件
  • 预期结果

接口测试用例特有的要素

  • 请求方法
  • URL
  • 请求头
  • 请求体(请求数据)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值