Day01

认识软件及测试

  • 什么是软件:控制计算机硬件工作的工具
  • 什么是软件测试:使用技术手段验证软件是否满足使用需求
  • 软件测试目的:减少软件bug,保障软件质量

测试主流技能

  1. 功能测试
  • 按测试文档的每个用例数据,得到实际结果,与预期结果对比

  • 功能测试主要验证程序的功能是否满足需求

  1. 自动化测试
  • 使用工具或代码执行批量测试输入,最终再生成个报告
  • 好处是效率更高
  1. 接口测试
  • 使用工具或代码对服务端提供的接口测试
  1. 性能测试
  • 使用工具或代码,模拟多人使用软件,查找服务器缺陷

常见的测试分类7种

一共有7种,可以分成阶段和代码可见度划分两类

按测试阶段划分

有四个阶段

  1. 单元测试

针对程序源代码进行测试(一般是开发自己做),条件是否判断正确等;

  • 测每一块砖
  1. 集成测试

又叫接口测试,针对模块之间访问地址进行测试

  • 测砖与砖之间
  1. 系统测试

对整个系统进行测试,包括功能、非功能(兼容、文档)等测试

  1. 验收测试

特殊项目,站在不同视角(内测,alpha测,beta测,灰度测试)

内测、公测、使用不同人群来发扬项目缺陷(免费劳动力)

按代码可见度划分

  1. 黑盒测试

源代码不可见,UI功能可见(是系统测试)

  1. 灰盒测试

部分源代码可见,UI功能不可见(是集成/接口测试)

  1. 白盒测试

全部代码可见,UI功能不可见(还是单元测试)

模型-质量模型(评价指标)

从哪些角度进行评价

衡量一个优秀软件的维度

功能、性能、兼容、易用、安全等8个指标

  1. 功能

需求:10个功能、功能详情

测试:功能数量为10个、功能正确实现(按需求说明书)、错误处理情况(引导性,报错内容)

  1. 性能

需求:预估每日在线人数20w

测试:服务器每秒处理请求数(20w在线服务器需求的处理数)、服务器硬件配置是否满足

  1. 兼容性

需求:浏览器、APP可以用

测试:chrome, edge, ie 几个内核服务器、操作系统(win7, 8, 10, 11, Mac, linux, android)、手机(分辨率、品牌、系统、网络、其它)

  1. 易用性

简洁(对比竞品)、友好、流畅、美观,对比竞品

  1. 可靠性(鲁棒性)

无响应(无响应)、卡顿(响应慢)、死机(系统崩溃)

  1. 安全

信息传输与信息存储,传输加密、存储加密

比如最近google的数据库泄露,因为密码明文存储

  1. 可移植性

网站数据迁移,比如原来预计40w用户,但现在需要扩张到200w,需要将服务器升迁,需要方便数据迁移

  1. 可维护性

代码的可维度性,核心代码要分离、有说明(网线打标、不纠缠)

软件测试流程6步骤

需求评审、计划编写、用例设计、用命执行、缺陷管理、测试报告

  1. 需求评审

让测试和开发都保持一致的需求理解,要知道哪些核心功能(要有优先级)

  1. 计划编写

测什么、谁来测、怎么测

  1. 用例设计

验证项目是否符合需求的操作文档

  1. 用例执行

项目模块开发完成开始执行用例文档实施测试

  1. 缺陷管理

对缺陷进行管理的过程,这个状态的结束时,bug一定被修复了

  1. 测试报告

实施测试结果文档

需求->计划->用例设计->用例执行->bug管理->测试报告

测试用例

什么是用例、什么是测试用例、用例的作用、用例编写格式、用例练习

  1. 什么是用例

户使用的案(它是个简称)

是否能开机:打开手机按下电源键3秒钏,看是否能开机

验证内在:打开手机设置查看内在是否为64G

验证屏幕:打开手机在白屏背景下检查屏幕是否有黑色点

检查运行速度:打开手机下载游戏,测试是否流畅

  1. 什么是测试用例

为测试项目而设计的执行文档

  1. 测试用例的作用
  • 防止漏测(没有执行文档,一定会漏测)
  • 实施测试的标准
  1. 用例设计编写格式

用例编号、用例标题、项目/模块、优先级、前置条件、测试步骤、测试数据、预期结果 一共8个

  • 用例编号: 项目_模块_编号
  • 用例标题:预期结果(测试点)
  • 模块/项目:所属项目或模块
  • 优先级:用例的重要程序或影响力P0~P4(P0最高),用户频率用得最高的才是核心功能
  • 前置条件:有哪些前置操作
  • 测试步骤:描述操作步骤
  • 测试数据:操作步骤需要用的数据,没有可以为空
  • 预期结果:期望达到的结果

练习

需求:QQ登录(4条)

1、账号为空

2、账号未注册

3、密码为空

4、密码错误

答案

用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
QQ_登录_01 登录失败(账号为空) 登录 P1 打开登录页面、保持网络正确 1、输入账号;2、输入密码;3、点击登录 账号:空;密码:12345 登录失败,提示账号不可为空
QQ_登录_02 登录失败(账号未注册) 登录 P1 打开登录页面、保持网络正确、账号未注册 1、输入账号;2、输入密码;3、点击登录 账号:未注册的账号;密码:12345 登录失败,提示账号不存在
QQ_登录_03 登录失败(密码为空) 登录 P1 打开登录页面、保持网络正确、账号已注册 1、输入账号;2、输入密码;3、点击登录 账号:已注册的账号;密码:空 登录失败,提示密码不可为空
QQ_登录_04 登录失败(密码错误) 登录 P1 打开登录页面、保持网络正确、账号已注册 1、输入账号;2、输入密码;3、点击登录 账号:已注册的账号;密码:1234 登录失败,提示密码错误

测试用例写什么?

  1. 能对穷举场景设计测试点

等价类划分法

  1. 能对限定边界规则设计测试点

  2. 能对多条件依赖关系进行设计测试

省、市、区的依赖关系

  1. 能对项目业务进行设计测试点

Day02

学习目标

  1. 能对穷举场景设计测试点
  2. 能对限定边界规则设计测试点
  3. 能对多条件依赖关系进行设计测试点
  4. 能对于项目业务进行设计测试点

等价类划分法、边界值分析法、判定表法、场景法可以依次解决上面四个目标

等价类划分法(类型)

定义:在所有测试数据中,具有某种共同特征的数据集合进行划分(按年龄、性别)

分类

有效等价类:满足需求的数据集合

无效等价类:不满足需求的数据集合

从有效取一个,无效里取至少一个(若有效等价类是范围6~8的数字,那无效类有大小6和大于8)

步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 提取数据编写测试用例

案例一(长度校验)

  1. 要求:6~10位自然数

步骤

  1. 明确需求:6~10位自然数
  2. 划分有效等价和无效等价:有效8位,无效(3位、12位)
  3. 数据编写测试用例:12312312(有效)、123(无效)、123123123123(无效)
用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
QQ_01 qq合法(8位自然数) qq账号 P0 打开qq程序 1、输入账号;2、点击认证 账号:12312312 账号合法
QQ_02 qq不合法(3位自然数) qq账号 P1 打开qq程序 1、输入账号;2、点击认证 账号:123 账号不合法
QQ_03 qq不合法(12位自然数) qq账号 P1 打开qq程序 1、输入账号;2、点击认证 账号:123123123123 账号不合法

案例一(类型校验)

  1. 要求:6~10位自然数

步骤

  1. 明确需求:6~10位自然数
  2. 划分有效等价和无效等价:有效8位自然数,无效8位非自然数、为空
  3. 数据编写测试用例:12312312(有效)、123123AB(无效)、空(无效)
用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
QQ_04 qq不合法(8位自然数) qq账号 P1 打开qq程序 1、输入账号;2、点击认证 账号:123123AB 账号不合法
QQ_05 qq不合法(8位非自然数) qq账号 P1 打开qq程序 1、输入账号;2、点击认证 账号:空 账号不合法

案例二

要求:

区号:空或三位数字

前缀码:非“0”且非“1”开关的三位数字

后缀码:四位数字

步骤

  1. 明确需求:长度、类型、规则

  2. 划分有效无效:

参数 说明 有效 有效数据 无效 无效数据
区号 长度 空、3位数字 空;123 非3位数字 1234
前缀码 长度 3位 234 非3位 23
后缀码 长度 4位 1234 非4位 123
区号 类型 数字 / 非数字 12A
前缀码 类型 数字 / 非数字 23A
后缀码 类型 数字 / 非数字 123A
区号 规划 / / / /
前缀码 规划 非0且非1 / 0开头、1开头 012、123
后缀码 规划 / / / /

需要10条用例(有效数据2条,无效数据8条)

  1. 数据编写测试用例
用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
tel_01 合法(区号为空+其它正确) qq账号 P0 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:空;234;1234 电话合法
tel_02 合法(区号3位+其它正确) qq账号 P0 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;234;1234 电话合法
tel_03 不合法(区号4位+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:1234;234;1234 电话不合法
tel_04 不合法(非0非1前缀2位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;23;1234 电话不合法
tel_05 不合法(后缀3位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;234;234 电话不合法
tel_06 不合法(区号3位非数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:12A;234;1234 电话不合法
tel_07 不合法(前缀为非0且非1开头的非3位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;23A;1234 电话不合法
tel_08 不合法(后缀为非4位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;234;123A 电话不合法
tel_09 不合法(前缀为0开头3位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;012;1234 电话不合法
tel_010 不合法(前缀为1开头3位数字+其它正确) qq账号 P1 打开验证程序 1、输入区号、前缀、后续;2、点击认证 账号:123;123;1234 电话不合法

重点:

  1. 正向用例:一条尽可能覆盖多条
  2. 逆向用例:每一条数据,都是一条单独用例

这里写个总结,快速地划分等价类,依然用上面的号码判断问题

正向 逆向
空+3位前缀(非0非1)开头+后缀 四位数字+3位前缀(非0非1)开头+后缀
三位数字+3位前缀(非0非1)开头+后缀

适用场景

  • 需要有大量数据测试输入,但是没法穷举测试的地方
    • 输入框
    • 下拉列表
    • 单选复选框
  • 典型代表:页面的输入框类测试

边界值分析法(位数)

边界值说明

  • 选取正好等于、刚好大于、刚好小于边界的值作为测试数据
    • 上点:边界上的点(正好等于),两个点
    • 离点:距上点最近的(刚好大于,刚好小于),四个点
    • 内点:范围内的点(区间范围内的数据),内点一般取居中,与离点区分出来,一个点

按位数的角度,用例最多7条

用例设计步骤

  1. 明确需求
  2. 确定有效和无效等价类
  3. 确定边界范围值
  4. 提取数据编写测试用例

提示

  1. 边界值能解决位数限制问题,但无法解决类型问题,所以需要结合等价类
  2. 有关范围限制,最多7条用例(暂时未优化)

练习一

需求:通过边界值法验证标题长度的合法性

需求:标题长度大于0,小于等于30个字符

  1. 明确需求:标题长度大于0,小于等于30个字符

  2. 有效、无效等价类(只考虑类型)

有效:长度于[1~30]之间的字符

无效:长度于[1~30]之间的数字

  1. 边界范围

上点:0位和30位

离点:-1,1位,29位,31位 (因为-1是不可能的长度,可以删除)

内点:15位

如果全写一共9条,但-1这条不可能,而有效类和内点重复了,所以一共7条

  1. 编写测试用例
用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
tel_01 不合法(标题为15位非字符串) 标题 P1 打开验证程序 1、输入标题;2、点击认证 账号:123451234512345 不合法
tel_02 不合法(标题为0位) 标题 P1 打开验证程序 1、输入标题;2、点击认证 账号:空 不合法
tel_03 合法(标题为30位字符串) 标题 P0 打开验证程序 1、输入标题;2、点击认证 账号:30个字符串 合法
tel_04 合法(标题为1位字符串) 标题 P0 打开验证程序 1、输入标题;2、点击认证 账号:A 合法
tel_05 合法(标题为29位字符串) 标题 P0 打开验证程序 1、输入标题;2、点击认证 账号:29个字符串 合法
tel_06 不合法(标题为31位字符串) 标题 P1 打开验证程序 1、输入标题;2、点击认证 账号:31个字符串 合法
tel_07 合法(标题为15位字符串) 标题 P0 打开验证程序 1、输入标题;2、点击认证 账号:15个字符串 合法

练习二

需求:通过边界值法验证QQ号码合法性

要求:6~10位自然数

  1. 明确需求:6~10位自然数
  2. 有效、无效类划分:
    1. 有效类:6~10位自然数
    2. 无效类:6~10位包含非自然数
  3. 边界范围
    1. 上点:6位自然数、10位自然数
    2. 离点:5位自然数、7位自然数、9位自然数、11位自然数
    3. 内点:8位自然数
  4. 编写测试用例
用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
qq_登录_01 不合法(QQ号为6位非自然数) QQ号验证 P1 打开验证程序 1、输入qq号;2、点击认证 账号:12345A 不合法
qq_登录_02 合法(QQ号为6位自然数) QQ号验证 P0 打开验证程序 1、输入qq号;2、点击认证 账号:123456 合法
qq_登录_03 合法(QQ号为10位自然数) QQ号验证 P0 打开验证程序 1、输入qq号;2、点击认证 账号:1234567890 合法
qq_登录_04 不合法(QQ号为5位自然数) QQ号验证 P1 打开验证程序 1、输入qq号;2、点击认证 账号:12345 不合法
qq_登录_05 合法(QQ号为7位自然数) QQ号验证 P0 打开验证程序 1、输入qq号;2、点击认证 账号:1234567 合法
qq_登录_06 合法(QQ号为9位自然数) QQ号验证 P0 打开验证程序 1、输入qq号;2、点击认证 账号:123456789 合法
qq_登录_07 不合法(QQ号为11位自然数) QQ号验证 P1 打开验证程序 1、输入qq号;2、点击认证 账号:12345678901 不合法
qq_登录_08 合法(QQ号为8位自然数) QQ号验证 P0 打开验证程序 1、输入qq号;2、点击认证 账号:12345678 合法

上面的用例可以再次优化,有些用例数据在同一个范围内,比如7、8、9中,7和9包含在内点里了,可以不用考虑

结论:7个可以优化为5个点

上点:必选(不考虑区间开闭)

内点:必选(建议选择中间范围)

离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)

使用场景

  • 在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
  • 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少
  • 有边界范围的输入框类测试

判定表法(条件)

针对依赖关系的需求

判定表定义及组成部分

  • 定义:一种以表格形式表达多条件逻辑判断的工具
  • 组成:
    • 条件桩:列出问题中的所有条件,列出条件的次序不重要
    • 动作桩:列出问题可能采取的操作,顺序不重要
    • 条件项:列出问题对应的取值,所有可能情况下的真假值
    • 动作项:列出条件项的、各种聚会情况下应该采取的动作结果
条件 是否欠费
是否关机
操作 是否允许主被叫
  • 规则:
    • 判断表中贯穿条件项和动作项的一列就是一条规则
    • 假设有n个条件,每个条件的聚会有两个(0,1), 全组合有2的n次方种规则

步骤

  1. 明确需求
  2. 画出判定表
    1. 列出条件桩和动作桩
    2. 填写条件项、对条件进行全组合
    3. 根据条件项的组合确定动作项
    4. 简化、合并相似规则(有相同的动作)
  3. 根据规则编写测试用例

练习一

规则:

  1. 如果金额大于500元,又未过期,则发出批准单和提货单
  2. 如果金额大于500元,但过期了,则不发批准单与提货单;
  3. 如果金额小于等于500元,不论是否过期都发出批准单和提货单;
  4. 在过期的情况下不论金额大小还需要发出通知单

判断表

  1. 条件桩:是否大于500
  2. 条件桩:是否过期
  3. 动作桩:批准单
  4. 动作桩:提货单
  5. 动作桩:通知单
是否大于500
是否过期
批准单 0 1 1 1
提货单 0 1 1 1
通知单 1 0 1 0

编写测试用例

用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
order_01 通知单(大于500,过期) 订单 P0 打开验证程序 1、输入金额;2、输入是否过期;3、点击验证 金额:600;过期 只发通知单
order_02 批准单、提货单(大于500,未过期) 订单 P0 打开验证程序 1、输入金额;2、输入是否过期;3、点击验证 金额:600;未过期 只发批准单、提货单
order_03 批准单、提货单、通知单(不大于500,过期) 订单 P0 打开验证程序 1、输入金额;2、输入是否过期;3、点击验证 金额:400;过期 只发批准单、提货单、通知单
order_04 批准单、提货单(不大于500,未过期) 订单 P0 打开验证程序 1、输入金额;2、输入是否过期;3、点击验证 金额:400;未过期 只发批准单、提货单

练习二

需求:

  1. 输入的第一列字符必须是A或B
  2. 输入的第二列字符必须是个数字
  3. 如果第一列字符不正确,则给出信息L
  4. 如果第二列字符不正确,则给出信息M
  5. 如果两列字符输入正确,则修改文件成功

判定表

  1. 条件:第一列是A或B
  2. 条件:第二列是个数字
  3. 动作:输出L
  4. 动作:输出M
  5. 动作:修改文件成功

对应的判定表如下

第一列是A或B
第二列是个数字
输出L 0 0 1 1
输出M 0 1 0 1
修改文件成功 1 0 0 0

对应的测试用例如下

用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
order_01 修改文件成功(第一列A第二列数字) 文件 P0 打开验证程序 1、输入字符串;2、点击验证 A2 修改文件成功
order_02 输出M(第一列A第二列非数字) 文件 P1 打开验证程序 1、输入字符串;2、点击验证 AA 输出M
order_03 输出L(第一列非A非B第二列数字 文件 P1 打开验证程序 1、输入字符串;2、点击验证 C2 输出L
order_04 输出L输出M(第一列非A非B第二列非数字) 文件 P1 打开验证程序 1、输入字符串;2、点击验证 CC 输出L输出M

使用场景

  • 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖关系
  • 判定表一般适用于条件组合数量较少的情况(四个条件以下)
  • 如果条件太多,比如5个及以上,说明业务设计得有问题,如果一个条件出错其它都会出错,应该要把它拆分开;或者使用正交法

场景法

如果测试一个项目,先测试“业务”;

而对业务测试,使用场景法

  1. 需要使用流程图法
  2. 先测试业务,再测试单功能、单模块、单页面

流程图

业务用例是根据流程图来梳理,需要先了解流程图

作用:梳理业务用例

适用场景

测试业务用例,可以使用场景法

练习

![image-20250830194642361](/Users/lthero/Library/Application Support/typora-user-images/image-20250830194642361.png)

下面是对应的流程图

![image-20250830194859755](/Users/lthero/Library/Application Support/typora-user-images/image-20250830194859755.png)

应该先验证取钱金额再验证账户余额

用例编号 用例标题(预期结果+测试点) 模块/项目 优先级 前置条件 测试步骤 测试数据 预期结果
ATM_01 取款失败(验证银行卡失败) ATM P1 打开验证程序 1、插入卡 网卡 取钱失败;退卡
ATM_02 取款失败(密码错误3次) ATM P1 打开验证程序 1、插入卡;2、密码错误 银行卡、非银行卡密码 吞卡
ATM_03 取款失败(取钱金额不正确) ATM P1 打开验证程序; 1、插入卡;2、密码正确;3、输入金额 银行卡、银行卡密码、金额 取钱失败;退卡
ATM_04 取款失败(账户余额不足) ATM P1 打开验证程序;卡余额为0 1、插入卡;2、密码正确;3、输入金额 银行卡、银行卡密码、金额1 取钱失败;退卡
ATM_05 取款失败(ATM余额不足) ATM P1 打开验证程序;卡余额充足;ATM余额为0 1、插入卡;2、密码正确;3、输入金额 银行卡、银行卡密码、金额100 提示故障
ATM_06 取款成功 ATM P0 打开验证程序;卡余额充足;ATM余额为充足 1、插入卡;2、密码正确;3、输入金额 银行卡、银行卡密码、金额100 提取成功

错误推荐法

定义:通过经验推测系统可能出现的问题

根据经验列举可能出现问题的清单,根据清单分析分析可能的原因

场景

  1. 间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试
  2. 实践宽裕通过该方法列出之前出现问题较多的模块再次测试

当所有用例都测试完了,bug都修复完了,如果此时离上线还有几个小时,此时使用错误推荐法,不要根据用例执行,使用经验来覆盖那些未测试到的功能和业务

先确定最核心的业务,把测试点列出来,先验证核心业务再测试功能测试单元测试等

Day03

学习目标

  1. 说出软件缺陷判定标准
  2. 说出项目中缺陷的管理流程
  3. 使用Excel对于缺陷进行管理
  4. 使用工具管理缺陷

缺陷的定义

软件在使用过程中存在的任何问题,都可以叫软件的缺陷,bug

缺陷的判定标准

软件未实现需求(规格)说明书中明确要求的功能-少功能

软件实现的功能超出需求(规格)说明书指明的范围-多功能

软件出现了需求(规格)说明书中指明不应该出现 的错误-显性功能错误

软件未实现需求(规格)说明书中虽未明确指明但应该实现 的要求-隐性功能错误

如果测试人员认为软件难以理解,不易使用,运行缓慢,用户体验不好,都为缺陷-不易使用

缺陷产生的原因

一个软件开发需要经过需求->设计->编码->运行->上线几个过程,而每个过程都可能出现错误或缺陷

  1. 需求阶段:需求描述不易理解、有歧义、错误(项目
  2. 设计阶段:设计文档存在错误或缺陷(架构师
  3. 编码阶段:代码出现错误
  4. 运行阶段:软件硬件系统本身故障导致

软件缺陷的生命周期

![image-20250831105419860](/Users/lthero/Library/Application Support/typora-user-images/image-20250831105419860.png)

在故障解决时,解决了A缺陷,可能会引发新的B/C缺陷,所以在故障解决里会引入其它缺陷

发现bug后,按故障分类->故障隔离->故障解决对缺陷进行清除

缺陷的核心内容

重点:

缺陷的描述:发现缺陷后,如何描述,让别人看懂(缺陷标题、条件、复现步骤)

缺陷的提交:指派人、优先级、类型等

包含:缺陷的标题、缺陷的预置条件、缺陷的复现步骤、缺陷的预期结果、缺陷的实际结果、缺陷的必要附件

缺陷提交要素

![image-20250831110817935](/Users/lthero/Library/Application Support/typora-user-images/image-20250831110817935.png)

严重程度:表示问题严重程度,严重(主功能、核心业务受到影响)

优先级:主要是解决时间的区别;严重问题一天内解决,如果是一些建议性问题(严重程度低的)可以推迟下个版本解决

状态:New新缺陷;Open表示开发已经接管;Closed缺陷已经完成

缺陷类型

![image-20250831111045539](/Users/lthero/Library/Application Support/typora-user-images/image-20250831111045539.png)

其中功能错误、UI错误、兼容性问题 是最重要的三个

工程流程

设计用例->执行用例(执行测试)->缺陷(提交、验证、关闭)

缺陷定义:任何问题(Bug)

缺陷标准:多功能、少功能、显示功能错误、隐性功能错误、易用性

描述缺陷重点:缺陷标题、前置条件、复现步骤、预期结果、实际结果、附件备注

提交缺陷信息:指派人、缺陷编号、缺陷严重程序(严重、一般、建议)、优先级、缺陷类型

练习

测试一个注册页面

![image-20250831132001319](/Users/lthero/Library/Application Support/typora-user-images/image-20250831132001319.png)

下面就是对这个测试页面进行的分析

练习-测试注册页面

缺陷编写

缺陷的跟踪流程

![image-20250831140114482](/Users/lthero/Library/Application Support/typora-user-images/image-20250831140114482.png)

这里的黄色部分是测试;而绿色部分是开发人员

提交缺陷注意事项

可重现:缺陷可以复现

规范性:符合公司或项目要求

唯一性:一个缺陷只上报一个问题

问题:当你发现缺陷后,首先会怎么办?

回答:确定缺陷可以复现,以及确定是否为bug(是否有偶然性)

缺陷编写规范

准确:描述信息正确

具体:有细节且真实特定

简洁易懂:描述简单容量理解

次序清晰:描述缺陷过程有条件,有先后顺序

Day04

缺陷管理工具

下面是软件开发不同岗位的职责

![image-20250831141324215](/Users/lthero/Library/Application Support/typora-user-images/image-20250831141324215.png)

![image-20250831141513427](/Users/lthero/Library/Application Support/typora-user-images/image-20250831141513427.png)

  1. 可以使用excel或项目管理工具(禅道,JIRA)

练习

![image-20250831201337869](/Users/lthero/Library/Application Support/typora-user-images/image-20250831201337869.png)

![image-20250831201350946](/Users/lthero/Library/Application Support/typora-user-images/image-20250831201350946.png)

分析需求、提取测试点、设计用例、用例评审、执行用例、缺陷管理、测试报告

练习-测试登录页面

登录功能用例实现

用例编号 用例标题 项目/模块 优先级 前置条件 测试步骤 测试数据 预期结果
qq_login_001 登录成功 登录 P0 1.打开登录页面;2.手机号已经注册 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.勾选协议;7.点击登录 1. 手机号:注册手机号;2.验证码:正确 登录成功,跳转到个人主页;手机号文本框失去焦点,变绿色
qq_login_002 登录失败(手机号为空) 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.拖动滑块;4.输入验证码;5.勾选协议;6.点击登录 1. 手机号:空;2.验证码:1234 登录失败:提示手机号不能为空;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_003 登录失败(手机号11位非自然数 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.拖动滑块;4.输入验证码;5.勾选协议;6.点击登录 1. 手机号:1350000111A;2.验证码:1234 登录失败:提示输入正确手机号;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_004 登录失败(手机号10位自然数 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.拖动滑块;4.输入验证码;5.勾选协议;6.点击登录 1. 手机号:135000111A;2.验证码:1234 登录失败:提示手机号未注册;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_005 登录失败(手机号12位自然数 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.拖动滑块;4.输入验证码;5.勾选协议;6.点击登录 1. 手机号:13500000111A;2.验证码:1234 登录失败:提示手机号未注册;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_006 登录失败(手机号未注册 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.勾选协议;7.点击登录 1. 手机号:1350000111;2.验证码:1234 登录失败:提示手机号未注册;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_007 登录失败(验证码为空 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.勾选协议;7.点击登录 1. 手机号:1350000111;2.验证码: 登录失败:提示验证码为空;手机号文本框推动焦点,变红;滑块按钮不可点
qq_login_008 登录失败(验证码为错误 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.勾选协议;7.点击登录 1. 手机号:1350000111;2.验证码:AAxx(错误) 登录失败:提示验证码错误;手机号文本框推动焦点,变绿;滑块按钮不可点
qq_login_009 登录失败(验证码为过期 登录 P1 1.打开登录页面;2.验证码超时 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.勾选协议;7.点击登录 1. 手机号:1350000111;2.验证码:AAxx(错误) 登录失败:提示验证码错误;手机号文本框推动焦点,变绿;滑块按钮不可点
qq_login_010 登录失败(未同意协议 登录 P1 1.打开登录页面; 1.输入测试手机号;2.点击发送验证码;3.点击滑块按钮;4.拖动滑块;5.输入验证码;6.不勾选协议;7.点击登录 1. 手机号:注册手机号;2.验证码:正确;3.不勾选协议 登录失败:提示请勾选协议;手机号文本框推动焦点,变绿;滑块按钮不可点

登录非功能用例实现

用例编号 用例标题 项目/模块 优先级 前置条件 测试步骤 测试数据 预期结果
qq_login_0011 显示和功能正常 登录 P2 1.安装Chrome;2使用Chrome打开登录页面 1.查看登录页面显示不正常;2.登录成功 1.显示与UI;1. 手机号:注册手机号;2.验证码:正确 1.显示正常;2.登录成功,跳转到个人主页;手机号文本框失去焦点,变绿色
qq_login_0012 显示和功能正常 登录 P2 1.安装FireFox;2使用FireFox打开登录页面 1.查看登录页面显示不正常;2.登录成功 1.显示与UI;1. 手机号:注册手机号;2.验证码:正确 1.显示正常;2.登录成功,跳转到个人主页;手机号文本框失去焦点,变绿色

后面重复测试其它浏览器

用例编号 用例标题 项目/模块 优先级 前置条件 测试步骤 测试数据 预期结果
qq_login_0016 显示与UI一致(布局) 登录 P3 1.打开登录页面;2.打开UI原型图 1.检查页面布局; 1.产品原型布局数据 1.页面与原型UI一致
qq_login_0017 显示与UI一致(图片与文字) 登录 P3 1.打开登录页面;2.打开UI原型图 1.检查页面图片与文字 1.产品原型布局数据 1.页面与真实数据一致,无错字

滑块用例

用例编号 用例标题 项目/模块 优先级 前置条件 测试步骤 测试数据 预期结果
qq_login_0018 发送验证码成功(滑动到指定位置) 滑块 P0 1.打开滑块界面 拖动滑块到指定空缺位置 手机号,正确手机号 发送验证码成功
qq_login_0019 发送验证码成功(1次未滑动到指定位置) 滑块 P1 1.打开滑块界面 拖动滑块1次未到指定空缺位置 手机号,正确手机号 验证码获取失败,滑块抖动效果,回到初始位置
qq_login_0020 发送验证码成功(3次未滑动到指定位置) 滑块 P1 1.打开滑块界面 拖动滑块3次未到指定空缺位置 手机号,正确手机号 验证码获取失败,滑块抖动效果,回到初始位置
qq_login_0021 发送验证码成功(5次未滑动到指定位置) 滑块 P1 1.打开滑块界面 拖动滑块5次未到指定空缺位置 手机号,正确手机号 验证码获取失败,滑块抖动效果,回到初始位置
qq_login_0022 发送验证码成功(错误达6次重试) 滑块 P1 1.打开滑块界面 拖动滑块6次未到指定空缺位置 手机号,正确手机号 验证码获取失败,滑块抖动效果,错误达6次重试
  1. 按用户的字段:不同用户是否显示正常1,2,3,
  2. 按功能的个数分页是否正常,每页固定多少个,超页是否显示,