测试
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
测试基础
软件是控制计算机硬件的工具
软件产生过程:

软件测试:使用技术手段验证软件是否满足使用需求
软件测试目的:减少软件缺陷,保证软件质量
主流技术
功能测试:测试主要验证程序的功能是否满足需求
自动化测试:使用代码或者工具代替手工,对项目进行测试
接口测试:使用代码或者工具验证程序中的接口是否访问正常
性能测试:模拟多人使用软件,查找服务器缺陷
常见的测试分类
按照测试阶段划分:

按照代码可见度划分:

模型
质量模型:衡量一个优秀软件的维度

功能:
- 功能数量
- 功能能否正确实现
- 错误处理情况
性能:

兼容性:

易用性:
- 简介
- 友好
- 流畅
- 美观
可靠性:
安全性:
- 传输加密
- 存储加密
可移植性:
- 数据迁移
可维护性
测试流程

测试用例
为测试项目而设计的执行文档
测试用例的作用:
- 防止漏测
- 实施测试的标准
用例设计编写格式
| 用例编号 | 用例标题 | 项目/模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预测结果 |
|---|
- 用例编号:项目_模块_编号
- 用例标题:预测结果(测试点)
- 模块:所属项目或者模块
- 优先级:表示用例的重要程度或者影响力p9——p4(p0最高)
- 前置条件:要执行此条用例,有哪些前置条件
- 测试步骤:描述操作步骤
- 测试数据:操作用的数据,没有的话为空
- 预测结果:期望得到的结果
联系:


测试设计
等价类划分法
解决穷举场景

实例:账号限制为6-10位自然数
| 步骤 | 描述 | 描述 |
|---|---|---|
| 明确要求 | 限制为6-10位自然数 | 限制为6-10位自然数 |
| 划分有效等价和无效等价 | 有效8位自然数 | 无效3位自然数,12位自然数,8位非自然数,空 |
| 提取数据编写用例 | 12345678 | 123,123456789012 |

案例 :
要求:
- 区号:空号或者是三位数字
- 前缀码:非0且非1开头的三位数字
- 后缀码:四位数字


适用场景
针对:需要有大量数据测试输入,但是美哦有办法穷举测试的地方
- 输入框
- 下拉列表
- 单选复选框
典型代表:页面的输入框类测试
边界值分析法
解决边界限制问题
边界范围节点
- 上点:边界上的点(正好等于)
- 离点:距离上点最近的点(刚好大于,刚好小于)
- 内点:范围内的点(区间范围内的数据)

- 有关范围限制,最多7条用例
- 边界值能解决位数限制问题,但是不能解决类型问题(要结合等价类)
优化后的:

步骤
- 明确要求
- 确定有效和无效等价(类型)
- 确定边界范围值
- 提取数据编写测试用例
总结
单个输入框,常用的方式:等价类+边界
1 | 在等价类的基础上对有边界范围的测试数据输入的地方(重点关注边界) |
判定表法
条件依赖关系
定义:是一种以表格形式表达条件逻辑判断的工具
组成:
- 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
- 动作桩:列出 问题中可能采取的操作,操作的排列顺序没有约束
- 条件项:列出条件对应的取值,所有可能情况下的真假值
- 动作项:列出条件项的,各种取值情况下应该采取的动作结果
案例:
验证:若用户欠费或者关机,则不允许主被叫功能的测试

规则:
- 判定表中贯穿条件项和动作项的一列就是一条规则
- 假设有n个条件, 每个条件的取值有两个(0,1),全组合有2的n次方种规则
步骤
- 明确需求
- 分析条件桩,动作桩,画判定表
- 提取数据,编写用例
案例:



使用场景
- 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖关系
- 判定表一般适用于条件组合数量比较少的情况(比如4个条件以下)
1 | 提示: |
场景法
根据实际的应用场景,来测试业务用例,可以使用场景法


1 | 1、开始->验证银行不成功->结束 |

错误推荐法
当项目用例执行完毕,且BUG修复完成,离上线还有一段时间,在那段时间中可使用错误推荐法复测主要业务或者未覆盖的功能

缺陷管理
用例执行
说明:执行结果与用例的的期望结果不一致,为缺陷

缺陷介绍
✔定义
软件在使用过程中存在的任何问题都叫软件的缺陷,简称bug
✔判定标准
- 软件未实现需 求(规格)说明书中明确要求的功能-少功能
- 软件 出现了需求(规格)说明书中指明不应该出现的错误-功能错误
- 软件实现的功 能超出需求(规格)说明书指明的范围多功能
- 软件未实现需 求(规格)说明书中虽未明确指明但应该实现的要求-隐性功能错误
- 软件难以理解, 不易使用,运行缓慢,用户体验不好-不易使用
缺陷核心内容

缺陷提交要素

缺陷类型

用例


✔缺陷编写
缺陷报告实例:

缺陷的跟踪流程:
- 编写
- 验证
- 关闭

提交缺陷的注意事项:
- 可重现:缺陷可以复现、
- 唯一性:一个缺陷上报一个问题
- 规范性:符合公司或者项目要求
✔缺陷管理工具
禅道
流程图

特点

使用流程:

禅道管理缺陷
登录软件

创建缺陷:

验证和关闭缺陷:

缺陷标题分析
描述测试数据+实际结果(预测结果)
输入不正确的取款金额 结果取款成功(预期:取款失败,提示:不是正确金额)
web常用标签
HTML:https://smashdog1.gitee.io/2022/03/25/html/
JavaScript:JavaScript - Hexo (gitee.io)
项目实战
项目介绍
项目背景
- 传智作为一个IT教育机构,拥有子级开发实际运营的产品
- 将开发和运营的技术作为授课的内容,对于学院而言学到的都是一手的真是案例和实际经验
产品定位
- 一款汇集科技咨询,技术文章和回答交流的用户移动终端产品
- 用户通过该产品,可以获取最新的科技资讯,发表或者学习技术文章,讨论交流技术问题
项目目标
- 研发并上线运营头条产品
- 从实际的产品技术中孵化Python人工智能,Python数据分析,PythonWeb,测试,运维等课程案例
产品功能架构

- 用户端:APP,用户可以查询资料,文章内容,进行回答讨论交流
- 自媒体运营平台:PC网站,自媒体用户可以管理文章,评论,查看分析粉丝数据
- 系统后台:PC网,内部运营管理系统
⭐发项目功能测试
测试对象
- 完成黑马头条web登录功能测试
- 完成黑马头条web发布文章功能测试

登录需求-1
- 输入正确的中国手机号(11位)
- 当文本框失去焦点的时候验证, 红色为失败,绿色为成功
- 点击发送验证码
- 如果手机号文本框状态为绿色, 弹出“点击按钮进行验证”;
- 如果手机号文本框为红色, 提示手机号不正确
- 点击按钮进行验证
- 拖拽图形 到指定位置,按钮消失;
- 拖拽图形未到指定位置, 晃动提醒,滑块回到初始位置;
- 超过5次, 提示尝试过多,请点击重试;

登录需求-2
- 输入验证码
- 正确的验证码, 并“勾选我已阅读并同意”,点击登录,进入系统;
- 错误的验证码, 并“勾选我已阅读并同意’”,点击登录,提示验证码错误;
- 正确的验证码, 未“勾选我已阅读并同意”,点击登录,提示请勾选;
- 点击登录
- 手机号、 验证码都为绿色,勾选“我已阅读并同意”,登录成功
开始测试
分析需求
提取测试点

设计用例
- 登录
- 滑块
- 非功能