一、认识软件及测试

学习目标

        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个维度入手

可维护性、可移植性是运维侧需要考了的问题

说明:软件满足明确和隐含的功能需求的能力,即软件提供哪些功能以及这些功能是否符合用户需求。
解释:软件是否具备完成其设计任务的能力。

说明:在规定条件下(如:多用户)执行其功能时的资源利用效率(时间效率和空间效率)。
解释:性能效率涉及软件运行的速度(如:响应时间、处理时间等)和资源消耗(如:内存、CPU、磁盘、网络等)

说明:软件在不同环境中运行的能力,包括与其他软件、硬件、操作系统和网络环境的兼容。
解释:兼容性确保软件可以在不同的系统配置和平台上能正常工作,没有冲突、性能等问题。

说明:软件对用户而言,容易学习和使用的程度,包括用户界面直观性、易懂、易操作性。
解释:关注用户如何与软件交互,以及他们在使用软件时的体验是否愉悦和高效。

说明:软件保护数据和系统免受未经授权的访问、使用、修改等破坏的能力。
解释:软件关注如何防恶意攻击、数据泄漏和其他安全威胁,保护用户信息和系统的完整性。

说明:软件在规定条件下和规定时间内执行所需功能的能力,即软件是否稳定可靠、持续正常运行。
解释:关注软件面对各种情况(如:错误输入、系统故障等)时的容错能力和恢复能力。

说明:软件从一个环境迁移到另一个环境的能力,包含硬件、操作系统、网络等。
解释:关注软件在不同环境的适应性,以及迁移过程中所需的工作量和成本。

说明:软件在生命周期内进行修改(如:修复缺陷、适应新需求)的容易程度。
解释:涉及软件的可理解性、可测试性和灵活性,以便于未来的维护和升级。

4.1、案例:如何验证某系统质量呢?以微信为例

        1、功能性:能不能

        2、性能:响应快、占用资源少

        3、兼容性:不同设备平台正常使用

        4、易用性:用户体验好

        5、安全性:敏感信息无泄密存储有保障

        6、可靠性:持久运行无异常

        7、可移植性:升级迁移数据不丢失

        8、可维护性:出现异常恢复简单

4.2、案例:给你一部电梯如何测试?

要求:从软件质量模型角度如何思考

总结:

        1、介绍质量模型目的

                衡量(测试)优秀软件质量的维度  确定测试覆盖的范围和重点

        2、质量模型

                功能、性能、兼容、易用、安全、    ------基本上从这五个维度进行软件测试

                 可靠性、移植性、维护性

五、软件测试流程

作用 : 指导测试在实际工作中如何具体开展测试活动

面试 : 在公司中你们是如何开展测试工作的? 你是如何做测试的?

学习目标

        1、具备在企业中如何开展测试工作的能力

  • 需求分析

    • 目的: 产品 开发 测试对于需求理解一致 , 查漏补缺

    • 结论: 确定好需求

  • 测试计划与方案

    • 目的 : 保障测试工作有效有序进行下去

    • 结论 : 测试什么 测多少 谁来测 怎么测试

  • 测试设计

    • 目的 : 确保测试工作全面无遗漏

    • 结论 : 按照需求文档编写操作文档(测试用例)

  • 测试执行

    • 目的 : 验证软件能否满足需求

    • 结论 : 测试满足需求(通过) 测试不满足需求(失败)

  • 缺陷管理

    • 目的 : 和开发确认沟通确保问题被解决

    • 结论: 对于发现的bug进行跟踪验证直到修复(通过)

  • 测试报告

    • 目的 : 对于软件质量结果说明

    • 结论 : 测试活动结束标志

总结:

        1、如何开展软件测试工作

                ①需求评审 ②编写测试计划 ③用例设计 ④用例执行 ⑤缺陷管理 ⑥测试报告

        2、注意事项:需要结合项目应用

六、测试执行入门与进阶

学习目标

        1、能够独立设计编写测试用例,全面验证产品质量

6.1、测试用例介绍

  • 概念: 为了特定的目的而设计编写的执行文档

  • 作用

    根据产品的需求文档转化为可验证的测试用例文档,方便后续测试验证

    • 防止漏测

    • 测试实施标准

    • 测试任务量化体现

要求:能够说出测试用例构成内容/要素

  • 用例编号

    • 作用: 表示用例的唯一性

    • 构成: 项目_ 模块_数字序号

  • 用例标题

    • 作用: 表示测试目的(干什么?)

    • 构成: 预期结果 + 测试条件

  • 模块/项目

    • 作用 : 测试范围

    • 构成 : 根据需求文档简写模块名/项目名

  • 优先级

    • 作用: 该用例的重要程度

    • 构成: P0(最高)~P4(最低)

  • 预置条件

    • 作用: 执行的时候需要的前提是什么(没有可以不写)

    • 构成: 文字描述前提条件

  • 测试步骤

    • 作用: 描述测试执行的过程

    • 构成: 按照序号编写操作过程

  • 测试数据

    • 作用: 测试执行过程中需要输入的数据(没有可以不写)

    • 构成: 有直接输入具体数据

  • 预期结果

    • 作用: 描述是否和需求一致的结果

1. 分析需求明确测试目的(要验证什么/干什么?条件有哪些?)
2. 基于需求条件覆盖各种可能场景(梳理测试点)
3. 按照用例模版编写文档(转测试用例)
        人工编写(首次)
        AI生成

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、测试用例执行准备

01 用例执行准备
        说明:软件测试需要通过技术手段 运行软件 找出软件缺陷的过程
        执行步骤:
                ① 搭建测试环境(测试/预生产环境)
                ② 执行冒烟测试(验证主流程)
                ③ 按照用例步骤执行,并记录实际结果
        环境扩展
                测试环境:被测项目运行所需要的硬件和软件的集合
                环境分类:开发环境(开发用)、测试测试(测试用)、生产(用户用)
                环境搭建人员:一般是运维、开发,最后才是测试人员
                如何搭建:需要按照环境搭建文档进行安装及配置(一般服务器涉及Linux操作系统应用)
        执行要点:
                1. 按照测试用例顺序执行/优先级执行,添加实际结果(执行结果)
                2. 及时反馈问题,确保缺陷能够被开发团队及时修复
总结:

        1. 执行步骤

                ① 搭建测试环境(测试/预生产环境)
                ② 执行冒烟测试(验证主流程)
                ③ 按照用例步骤执行,并记录实际结果

6.4、测试用例执行辅助

01 网络资源
        利用网络可以获取任何信息资源
                例如:浏览器输入某个网站的域名,就打开某个网站的首页
        资源怎么表示?
                通过URL表示
02 URL介绍
        URL: (Uniform Resource Locator)统一资源定位符,用来表示网络中资源存放的位置
        URL的组成:
                ◆ 协议:按照什么规则通信的应用服务。例如:HTTP、HTTPS
                ◆ 域名或主机:访问的资源服务器的IP或者域名。例如:www.baidu.com
                ◆ 端口:标识特定的应用程序/服务,程序通信的出入口。例如:HTTP默认端口80,HTTPS默认端口443
                ◆ 资源路径(可选):存放的具体路径。
                ◆ 查询参数(可选):请求携带的参数。通过 ? 进行分隔,多个参数之间通过&符号连接。
        URL表示形式: 协议 ://hostname[:port]/path/[? 查询参数 1& 查询参数 2]
03 网络传输协议(HTTP)
        协议:网络中数据传输遵循的规则
                常见协议:HTTP/HTTPS、SSH、FTP等
        HTTP是啥?
                HTTP(Hyper Text Transfer Protocol):超文本传输协议,网络中传输类似于网页类型的文档的协议
        HTTP访问过程
                ①HTTP请求:请求行、请求头、请求体
                ②HTTP响应:响应行、响应头、响应体
04 http请求
        HTTP请求说明
                ◆ 请求行:请求数据包的 第一行 内容
                ◆ 请求头:从第二行到空行之间内容
                ◆ 请求体:空行下方的内容
05 http响应
        HTTP响应说明
                ◆ 响应行:响应数据包 第一行 内容
                ◆ 响应头:从第二行开的到空行之间内容
                ◆ 响应体:空行下方的内容
06 http请求-请求行
        位置:HTTP请求的第一行
        作用:描述 请求的方法 URL 、协议版本信息
        请求方法作用:按照什么方式操作资源
        常见的HTTP请求方法:
                ◆ GET:从服务器获取资源(查)
                ◆ POST:在服务器新建一个资源(增)
                ◆ PUT:在服务器更新资源(改)
                ◆ DELETE:从服务器删除资源(删)
07 http请求-请求头
        位置:HTTP请求的第二行到空行之间
        作用:描述请求客户端的属性信息
        请求头的Content-Type:表示请求体的数据类型
                ◆ text/html: HTML格式
                ◆ text/plain:纯文本格式
                ◆ image/jpeg:jpg图片格式
                ◆ application/json: JSON数据格式
                ◆ application/x-www-form-urlencoded: 表单默认的提交数据格式
                ◆ multipart/form-data: 在表单中进行文件上传时使用
08 http请求-请求体
        位置:空行下面内容
        作用:描述请求携带的数据
        请求体:表示传输的数据;在post和put方法中使用,配合请求头Content-Type
        备注:请求体只会出现在Post和Put中
09 http响应-响应行
        位置:HTTP响应的第一行
        作用:描述服务器处理结果
        常见响应状态码(三位数字组成):
                ◆ 2xx:成功
                ◆ 3xx:重定向
                ◆ 4xx:客户端错误
                ◆ 5xx:服务器端错误
10 http响应-响应头
        位置:HTTP响应第二行到空白行
        作用:描述服务器属性信息
        组成:由键值对组成
11 http响应-响应体
        位置:HTTP响应空白行以下
        作用:服务器返回的数据
        类型:有图片、 json html 、xml等

6.4.1、案例:F12抓取指定URL的登录接口,获取HTTP请求数据

1. 请求的接口URL:
2. 请求的方法:
3. 请求数据类型:
4. 请求数据:
总结:   
        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?

                ① 如果抓不到请求或请求有误是前端问题;
                ② 如果有请求且正确但是没响应或者响应错误,那就是后端的问题;
                ③ 如果抓包有请求也有响应且都正确,但是页面显示还是报错了,则还是前端问题(页面渲染)。
02 Charles介绍
        ⚫ 工具介绍: C harles是一款在Windows/Mac下常用 数据包截取工具,支持Web/APP端网络数据包的抓取分析。
        ⚫ 抓包原理:
备注:浏览器建议使用火狐,比较好设置代理
03 模拟弱网测试:模拟带宽比较低的网络测试延迟
        需求:模拟3G网络带宽,访问tpshop首页,查看延时多少?是否有异常?
        设置:
                1. 设置网络带宽
                2. 操作对应页面/APP应用
                3. Charles查看延迟时间/趋势变化
                4. 确认应用程序是否有异常
附:常见网络带宽参考
04 异常数据测试:绕过界面直接测试服务器
需求:购物车商品数量有上限200的限制,页面无法输入201,可以绕过页面做服务端测试
设置:
        ◆打开浏览器输入待测地址
        ◆在Charles的 Proxy->Breakpoints
                勾选:Enable Breakpoints
                点击:Add 添加设置断点的URL信息
                【可设置:`protocol`、`host`、`request`、`response`】
        ◆确认:设置完成后点击 OK
        ◆在浏览器模拟用户进行操作测试
        ◆Charles开始抓取到当前数据包并闪烁提示
        ◆在Charles的 Breakpoints 修改请求的数据 → 点击 Execute
        ◆在Charles的 Breakpoints 修改响应的数据 → 点击 Execute(注:可跳过修改响应,直接执行)
        ◆弹出的断点数据包含一路 Execute 执行完毕 → 最后点击 关闭断点按钮
总结:
        
        1. 抓包
                使用工具抓取客户端与服务器交互数据包的操作
        2. 为什么需要抓包?
                ⚫ 定位前后端bug
                ⚫ 弱网测试
                ⚫ 绕过界面限制进行测试
3. 如何定位前后端bug?
        看请求、看响应、分析结果

七、AI赋能测试

  • AI(Artificial Intelligence):即人工智能让计算机系统模拟人类智能来执行各种复杂任务的技术

  • AI对软件测试作用:赋能测试+提效品控   协助测试人员高效完成测试工作

  • AI对软件测试应用

    • 文档编辑:制做测试相关文档,降低时间成本; 需求文档分析完善,减轻人力成本  比如:功能测试、自动化测试、性能测试

    • 代码编程:一键生成代码,高效编程更简单; 代码注释与纠错,问题排查更高效,比如:自动化测试、性能测试

  • AI使用步骤

    • 1.选择AI工具

      • 文档:文心一言    ---写文档

        • 豆包:https://www.doubao.com/chat/    ---写文档

        • Deepseek:https://chat.deepseek.com/    ---写文档

        • Kimi:https://kimi.moonshot.cn/

      • 编程:

    • 2.输入指令(Prompt)

      • 格式1: 针对xx,输出xx

      • 格式2:使用xx语言,实现/生成xxx代码

    • 3.人工辨别、优化整理分析结果

  • 指令典型格式

    • 角色(身份):你是谁?比如:【你是测试工程师】

    • 指示(任务):要干啥?比如:【分析登录功能需求】

    • 输入(要求):啥要求?比如:【要求:账号:必填,已注册的合法手机号,密码:必填,和注册密码一致】

    • 背景(当前状况,可选):比如:【当前用户对软件测试不熟悉】

    • 输出(结果):想要啥?比如:【将补充完善后的需求以md形式输出】

    • 参考(示例,可选):模仿示例?【按照你提供的示例输出更贴近自己要求】

八、今日总结

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐