1.理论

1.理论
星仔- 方向(一):功能测试+接口测试
- 方向(二):功能测试+性能测试
- 方向(三):功能测试+ web自动化
C/S架构(客户端):比如微信、QQ
B/S架构(浏览器):browser-server浏览器服务器比如淘宝京东
预发布环境(UAT 环境)验收测试进行的环境
Vaild:V 有效,Invalid:I 无效
动态测试:运行被测系统而进行的测试
静态测试:不需要运行被测系统,而进行的测试(界面检测、文档检测、代码走查)
功能测试:验证软件的业务功能是否符合需求
界面测试:被测系统界面与原型图是否一致
安全测试:对被测系统的安全进行测试(对账号进行输入用户名密码、是否允许输入、sql 注入)
兼容性测试:被测系统不同的测试环境下是否正常
易用性测试:被测系统各个功能是否操作方便,是否容易理解、容易上手
性能测试(负载测试、压力测试):某个特定时间,用户数量剧增,软件是否正常
冒烟测试:批量开始测试之前,执行业务正向用例,验证软件是否具备可测性。一般由开发或测试主管负责
回归测试:开发对存在的问题的功能进行修改后,再一次进行的测试
探索性测试:根据自己的项目经验而进行的随意测试
测试点:软件包含多个功能点,每个功能点包含多个子功能(测试点),测试点是软件功能细分的最小单元
it:集成测试,st:系统测试,uat:验收测试
DRAFT:初稿,MODIFY:修订,RELEASE:终稿
软件测试定义:使用技术手段验证软件是否满足需求
常见测试分类
按阶段划分
单元测试:针对程序源代码进行测试,确保各单元模块被正确的编译,比如有具体到模块的测试,也有具体到类,函数、方法的测试等
集成测试:又称接口测试,针对模块之间访问地址进行测试。----比如说注册和充值这两个功能是否能够连通
系统测试:针对程序功能、非功能(界面、文档、兼容性、易用性、性能)进行测试
验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷。
Alpha 测试:把用户请到开发方进行测试,测试环境受到开发方控制,测试人数不多,测试时间集中
Beta 测试:测试环境不受到开发方控制,测试人数较多,测试时间不集中
按代码可见度划分
黑盒测试
不关注源代码,针对程序UI功能进行测试。也是功能测试
白盒测试
全部代码可见,UI 界面不可见(注重内部逻辑)也是单元测测试
灰盒测试
针对程序部分代码进行测试(接口),功能可见,也是接口测试
模型
开发模型
- 瀑布模型(一般不使用)
- 问题定义及规划(需求规格说明书 SRS)–>需求分析–>设计–>编码–>测试–>运行维护
- 特点:自上而下,有顺序性
- 缺点:测试介入较晚,回溯成本较高
- V 模型
- 敏捷开发模型
- 迭代周期短,整个项目分为多个独立小项目
测试模型
质量模型(衡量一个优秀软件的维度)
- 功能性
- 性能
- 兼容性
- 易用性
- 可靠性
- 安全性
- 可维护性
- 可移植性
测试流程
- 需求评审
- 计划编写
- 用例设计
- 用例执行
- 缺陷管理
- 测试报告
用例设计编写格式
- 用例编号::项目简称 _ 功能 _ 编号
- 用例标题:预期结果(测试点)
- 项目/模块:对应一个功能模块(细分功能)
- 优先级:P0 ~ P4(P0 最高)
- 前置条件:需要满足一些前提条件,否则用例无法执行
- 测试数据:需要加工的输入信息,根据具体情况来设计
- 测试步骤:明确给出每个步骤的描述,执行人员可以根据该步骤完成执行工作
- 预期结果:执行用例期望得到的结果(预期结果唯一,不能出现“是否或者”)
用例设计方法(黑盒测试)
等价类划分法
根据相同特征数据集合进行划分
有效等价类(合法输入)和无效等价类(非法输入)
正向:一次尽可能将多个正确数据组合
逆向(错误):一次只能覆盖一个
适用场景:需要有大量数据测试输入,但是没法穷举测试的地方(如输入框、下拉列表、单选复选框)
步骤:
- 明确需求
- 确定有效和无效等价类(长度、类型、规则)
- 提取数据编写测试用例
案例:验证手机号合法性
- 区号:空或者是三位数字
- 前缀码:非“0”且非“1”开头的三位数字
- 后缀码:四位数字
边界值分析法
在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
选取正好等于、刚好大于、刚好小于边界的值作为测试数据
上点:边界上的点(正好等于)(必选)
离点:距离上点最近的点(刚好大于、刚好小于)(闭外开内)
内点:范围内的点(区间范围内的数据)(取中间数)(必选)
测试类似账号密码默认加上:空和已存在
步骤:
- 明确需求
- 确定有效和无效等价类(只关注类型)
- 确定边界范围值(长度)
- 提取数据编写测试用例
需求:通过边界值法验证QQ号码的合法性
6~10位自然数
因果图法
当需求中存在多个条件,不同条件中存在不同的结果
列出需求中的因子(条件)和结果
转换为判定表:将因果图转化为判定表,覆盖所有组合。
判定表法
解决多条件依赖的问题
条件桩:列出问题中的所有条件,列出条件的次序无关紧要。
动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。
条件项:列出条件对应的取值,所有可能情况下的真假值。
动作项:到出条件项的、各种取值情况下应该采取的动作结果。
判定表中贯穿条件项和动作项的一列就是一条规则
假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则
使用场景:
- 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
- 判定表一般适用于条件组合数量较少的情况 (比如 4 个条件以下)
需求(⽂件修改) :
- 输入的第一列字符必须是A或B
- 第二列字符必须是一个数字
- 如果第一列字符不正确,则给出信息L
- 如果第二列字符不正确,则给出信息M
- 如果两列字符输入正确,则修改文件成功
场景法(流程图法)
基于用户实际使用场景设计测试用例,模拟端到端的业务流程,验证系统的交互和功能完整性。
画流程图(格式)
步骤:
- 分析用户业务流程。
- 设计覆盖主流程、备选流程和异常流程的测试场景。
错误推测法(反推法)
基于经验或直觉推测可能出错的场景,针对性设计测试用例。通常结合历史缺陷数据或常见编程错误。
测试文件上传功能:
上传超大文件、空文件、病毒文件、重复文件名等。
适用场景:经验丰富的测试人员、回归测试或补充其他测试方法。
正交实验法
因果关系比较庞大的情况下,条件很多,组合很多,输出结果很多
什么是bug:漏洞缺陷+改进建议+不符合需求
Bug 等级
- 致命错误:—blocker
- 常规操作引起的系统崩溃、死机、死循环、闪退
- 造成数据泄漏的安全性问题,比如恶意攻击造成的账户私密信息泄露
- 涉及金钱计算
- 阻断性测试,所有测试工作进行不下去(冒烟测试)
- 严重错误:critical
- 重要功能不能实现;
- 错误的波及面广,影响到其它重要功能正常实现
- 非常规操作导致的程序崩溃、死机、死循环、闪退
- 外观(界面)难以接受的缺陷;
- 密码明文显冠; (界面+数据库)
- 偶现的致命性bug
- 一般错误:major最多
- 不影响产品的运行、不会成为故障起因,但对产品外观和下道工序影响较大的缺陷
- 次要功能不能正常实现
- 操作界面错误(包括数据窗口内列名定义、含义不一致);
- 查询错误,数据错误显示;
- 简单的输入限制未放在前端进行控制;
- 删除操作未给出提示;
- 偶现的严重性bug
缺陷管理
项⽬管理⼯具-管理缺陷 (禅道、 JIRA、 TFS)
Excel管理缺陷
缺陷核⼼要素
- 缺陷的标题
- 缺陷的预期结果
- 缺陷的预置条件
- 缺陷的实际结果
- 缺陷的复现步骤
- 缺陷的必要附件
缺陷提交要素
缺陷报告编号
严重程度
- 严重(S1):主功能
- 一般(S2):次要功能
- 微小(S3):易用性、界面
- 建议(S4):建议性问题
缺陷优先级
- Priority0:24小时之内解决
- Priority1:发布前必须修复
- Priority2:可以在下一个版本中修复
Bug类型
缺陷状态
- new:新建
- Open:打开
- Closed:关闭
- Postponed:延期
缺陷编写
缺陷标题
- 方式1:测试数据+执行结果(预期)
- 方式2:测试数据+执行结果(需求)
- 方式3:测试数据+预期+执行结果