测试基础--Day01--软件测试基础理论
本文系统介绍了软件测试的核心知识体系,包括:1.基础概念:软件是管理硬件的指令集合,测试旨在验证软件是否满足需求;2.主流技能:涵盖功能测试、自动化测试、接口测试和性能测试;3.测试分类:按阶段分为单元/集成/系统/验收测试,按可见度分为黑盒/灰盒/白盒测试;4.质量模型:从功能、性能、兼容等维度评估软件质量;5.测试流程:需求分析、计划、设计、执行、缺陷管理和报告;6.测试用例:详细说明编写要素
一、认识软件及测试
学习目标
1、具备做软件测试的入门常识


页面/客户端---前端;代码服务器和数据服务器---后端



总结:
1、什么是软件?
管理计算机硬件的指令集合(工具)
2、什么是软件测试:
使用技术手段验证软件是否满足使用需求
3、软件测试的目的?
减少软件缺陷(bug),保障软件质量
二、测试主流技能
学习目标:
1、能够根据自身学习目标明确未来重点方向








总结:
1、功能测试
通过手工方式验证程序的功能是否满足需求
2、自动化测试
使用代码或工具代替手工,对项目进行功能测试
3、接口测试
使用代码或工具验证程序中的接口(服务器)是否访问正常
4、性能测试
模拟多人使用软件,查找服务器缺陷
思考:
就业方向该如何选择?
1、方向(一):功能测试+接口测试
2、方向(二):功能测试+web自动化
3、方向(三):功能测试+性能测试
4、方向(四):功能测试+接口测试+性能测试
5、方向(五):功能+UI自动化+接口+性能测试
三、软件测试分类
学习目标:
1、具备应对面试中常见测试分类相关问题




-
单元测试(UT unit test) : 对于开发的源代码进行测试 [一般由开发做]
-
集成测试 : 也叫接口测试,测试系统和系统,模块和模块之间数据交互(能否正常使用) [一般由测试人员做]
-
系统测试 : 也叫功能测试.测试整个软件产品的功能能否满足需求(包含兼容,文档等测试) [一般由测试人员做]
-
验收测试 : 模拟用户验证是否满足用户的需求(分为内测和公测) [一般由用户/用户代表做]
-
内测:alpha测试 --> α
-
公测:beta测试 --> β
-
候选版:gamma测试 --> γ
-

黑盒测试等价于功能测试,灰盒测试等价于接口测试,
-
黑盒测试 : 看不到源代码,进行功能级别的测试
-
灰盒测试 : 部分代码可见,相当于做接口测试
-
白盒测试 : 通过源代码测试源代码(单元测试)



总结:
1、软件测试分类
知道一个软件系统常常做哪些测试
2、按照阶段划分
①单元测试:针对程序源代码的测试【开发】
②集成测试:针对功能模块组装的测试
③系统测试:针对整个系统(功能、非功能)进行测试
④验收测试:以用户身份验证系统是否满足需求【用户】
3、按代码可见度划分
①黑盒测试:针对有UI界面软件系统输入输出类测试
②灰盒测试:针对无UI界面软件系统输入输出和内部逻辑结构的测试(能看到部分源代码)
③白盒测试:针对程序源代码及内部逻辑本身进行测试
4、其他划分
① 冒烟测试:保障提测内容具备可测性
② 回归测试:对已修复功能\更新后对已测内容再次测试
四、质量模型
作用: 给测试设计人员提供一个思考的方向【被测软件产品质量的思考方向】


其中基本上我们都是从:功能性、性能、兼容性、易用性、可靠性、安全 6个维度入手
可维护性、可移植性是运维侧需要考了的问题








4.1、案例:如何验证某系统质量呢?以微信为例
1、功能性:能不能
2、性能:响应快、占用资源少
3、兼容性:不同设备平台正常使用
4、易用性:用户体验好
5、安全性:敏感信息无泄密存储有保障
6、可靠性:持久运行无异常
7、可移植性:升级迁移数据不丢失
8、可维护性:出现异常恢复简单

4.2、案例:给你一部电梯如何测试?
要求:从软件质量模型角度如何思考


总结:
1、介绍质量模型目的
衡量(测试)优秀软件质量的维度 确定测试覆盖的范围和重点
2、质量模型
功能、性能、兼容、易用、安全、 ------基本上从这五个维度进行软件测试
可靠性、移植性、维护性
五、软件测试流程
作用 : 指导测试在实际工作中如何具体开展测试活动
面试 : 在公司中你们是如何开展测试工作的? 你是如何做测试的?
学习目标
1、具备在企业中如何开展测试工作的能力

-
需求分析
-
目的: 产品 开发 测试对于需求理解一致 , 查漏补缺
-
结论: 确定好需求
-
-
测试计划与方案
-
目的 : 保障测试工作有效有序进行下去
-
结论 : 测试什么 测多少 谁来测 怎么测试
-
-
测试设计
-
目的 : 确保测试工作全面无遗漏
-
结论 : 按照需求文档编写操作文档(测试用例)
-
-
测试执行
-
目的 : 验证软件能否满足需求
-
结论 : 测试满足需求(通过) 测试不满足需求(失败)
-
-
缺陷管理
-
目的 : 和开发确认沟通确保问题被解决
-
结论: 对于发现的bug进行跟踪验证直到修复(通过)
-
-
测试报告
-
目的 : 对于软件质量结果说明
-
结论 : 测试活动结束标志
-
总结:
1、如何开展软件测试工作
①需求评审 ②编写测试计划 ③用例设计 ④用例执行 ⑤缺陷管理 ⑥测试报告
2、注意事项:需要结合项目应用
六、测试执行入门与进阶
学习目标
1、能够独立设计编写测试用例,全面验证产品质量
6.1、测试用例介绍



-
概念: 为了特定的目的而设计编写的执行文档
-
作用
根据产品的需求文档转化为可验证的测试用例文档,方便后续测试验证
-
防止漏测
-
测试实施标准
-
测试任务量化体现
-

要求:能够说出测试用例构成内容/要素
-
用例编号
-
作用: 表示用例的唯一性
-
构成: 项目_ 模块_数字序号
-
-
用例标题
-
作用: 表示测试目的(干什么?)
-
构成: 预期结果 + 测试条件
-
-
模块/项目
-
作用 : 测试范围
-
构成 : 根据需求文档简写模块名/项目名
-
-
优先级
-
作用: 该用例的重要程度
-
构成: P0(最高)~P4(最低)
-
-
预置条件
-
作用: 执行的时候需要的前提是什么(没有可以不写)
-
构成: 文字描述前提条件
-
-
测试步骤
-
作用: 描述测试执行的过程
-
构成: 按照序号编写操作过程
-
-
测试数据
-
作用: 测试执行过程中需要输入的数据(没有可以不写)
-
构成: 有直接输入具体数据
-
-
预期结果
-
作用: 描述是否和需求一致的结果
-

6.2、案例:根据以下测试点编写用例
需求: QQ登录(4条)
1、账号为空
2、账号未注册
3、密码为空
4、密码错误

思考:上述需求的测试目的是啥?
【能不能,登陆成功】
使用AI输出测试用例

以下是一个符合您要求的Excel表格格式的测试用例文档,内容覆盖了账号为空、账号未注册、密码为空、密码错误四种情况:
Excel表格文档:测试用例
| 序号 | 用例编号 | 用例标题 | 所属模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| 1 | TC001 | 账号为空登录测试 | 登录模块 | 高 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 不输入账号 3. 输入密码(任意值) 4. 点击登录按钮 |
账号:<空> 密码:任意值 |
提示“账号不能为空” |
| 2 | TC002 | 账号未注册登录测试 | 登录模块 | 高 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 输入未注册的账号 3. 输入密码(任意值) 4. 点击登录按钮 |
账号:unregistered_user 密码:任意值 |
提示“账号未注册”或“账号或密码错误” |
| 3 | TC003 | 密码为空登录测试 | 登录模块 | 高 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 输入已注册的账号 3. 不输入密码 4. 点击登录按钮 |
账号:registered_user 密码:<空> |
提示“密码不能为空” |
| 4 | TC004 | 密码错误登录测试 | 登录模块 | 高 | 系统已启动,登录页面已加载,且已知一个已注册的账号 | 1. 打开登录页面 2. 输入已注册的账号 3. 输入错误的密码 4. 点击登录按钮 |
账号:registered_user 密码:wrong_password |
提示“账号或密码错误” |
在上述的输出结果后面,继续使用AI进行优化用例的优先级

以下是优化后的Excel表格格式测试用例文档,其中优先级使用 P1(最高优先级)和 P2(次高优先级)表示,并覆盖了账号为空、账号未注册、密码为空、密码错误四种场景:
Excel表格文档:测试用例
| 序号 | 用例编号 | 用例标题 | 所属模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
|---|---|---|---|---|---|---|---|---|
| 1 | TC001 | 账号为空登录测试 | 登录模块 | P1 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 不输入账号 3. 输入任意密码 4. 点击登录按钮 |
账号:<空> 密码: 123456 |
提示“账号不能为空”或“用户名不能为空” |
| 2 | TC002 | 账号未注册登录测试 | 登录模块 | P1 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 输入未注册的账号 3. 输入任意密码 4. 点击登录按钮 |
账号:unregistered_user密码: 123456 |
提示“账号未注册”或“账号或密码错误” |
| 3 | TC003 | 密码为空登录测试 | 登录模块 | P1 | 系统已启动,登录页面已加载 | 1. 打开登录页面 2. 输入已注册的账号 3. 不输入密码 4. 点击登录按钮 |
账号:registered_user密码:<空> |
提示“密码不能为空”或“请输入密码” |
| 4 | TC004 | 密码错误登录测试 | 登录模块 | P2 | 系统已启动,登录页面已加载,且已知一个已注册账号 | 1. 打开登录页面 2. 输入已注册的账号 3. 输入错误密码 4. 点击登录按钮 |
账号:registered_user密码: wrong_pass |
提示“账号或密码错误” |
总结:
1、什么是测试用例
为了特定目的而设计编写的可执行文档
2、写测试用例的目的
1)防止漏测
2)测试实施的标准
3)测试任务的量化体现
3、测试用例包含内容
用例编号、用例标题、所属模块、优先级、 预置条件、测试数据、执行步骤、预期结果
4、如何编写测试用例
①明确测试目的 ②基于需求覆盖各种可能场景 ③根据用例模版编写对应文档
6.3、测试用例执行准备
总结:1. 执行步骤
① 搭建测试环境(测试/预生产环境)② 执行冒烟测试(验证主流程)③ 按照用例步骤执行,并记录实际结果
6.4、测试用例执行辅助
6.4.1、案例:F12抓取指定URL的登录接口,获取HTTP请求数据
总结:1. 协议:网络传输数据遵循的规则2. URL构成①协议:按照何种规则通信的应用服务②域名/IP:请求目的地③端口:应用程序通信出入口④资源路径:服务器资源具体路径⑤查询参数:可携带的参数3. HTTP:超文本传输协议,网络中传输资源常用。①HTTP请求:请求行、请求头、请求体②HTTP响应:响应行、响应头、响应体4. HTTP重点关注请求行:请求方法和URL请求体:发送请求携带的数据5. HTTP响应状态码:2xx:响应成功3xx:重定向4xx:客户端错误5xx:服务端错误6. 常见响应体数据类型HTML、JSON、图片
6.5、抓包工具(Charles)
01 抓包介绍
⚫ 抓包(packet capture):使用工具抓取客户端与服务器交互数据包的操作。
⚫ 数据包:客户端与服务器相互交互的内容。
⚫ 常见抓包工具:F12,Charles,Fiddler等
⚫ 为什么抓包?
⚫定位前后端bug
⚫弱网测试
⚫ 绕过界面限制进行测试
⚫ 如何区分前后端 bug?
总结:1. 抓包使用工具抓取客户端与服务器交互数据包的操作2. 为什么需要抓包?⚫ 定位前后端bug⚫ 弱网测试⚫ 绕过界面限制进行测试3. 如何定位前后端bug?看请求、看响应、分析结果
七、AI赋能测试
-
AI(Artificial Intelligence):即人工智能,让计算机系统模拟人类智能来执行各种复杂任务的技术。
-
AI对软件测试作用:赋能测试+提效品控 协助测试人员高效完成测试工作
-
AI对软件测试应用
-
文档编辑:制做测试相关文档,降低时间成本; 需求文档分析完善,减轻人力成本 比如:功能测试、自动化测试、性能测试
-
代码编程:一键生成代码,高效编程更简单; 代码注释与纠错,问题排查更高效,比如:自动化测试、性能测试
-
-
AI使用步骤
-
指令典型格式
-
角色(身份):你是谁?比如:【你是测试工程师】
-
指示(任务):要干啥?比如:【分析登录功能需求】
-
输入(要求):啥要求?比如:【要求:账号:必填,已注册的合法手机号,密码:必填,和注册密码一致】
-
背景(当前状况,可选):比如:【当前用户对软件测试不熟悉】
-
输出(结果):想要啥?比如:【将补充完善后的需求以md形式输出】
-
参考(示例,可选):模仿示例?【按照你提供的示例输出更贴近自己要求】
-




八、今日总结

更多推荐



所有评论(0)