工作路线
一、测试介绍
-
什么是软件测试?
使用技术手段验证软件是否满足需求 软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
-
测试主流技能
1、功能测试 2、自动化测试 3、接口测试 4、性能测试 主流方向建议: 1、功能测试+接口测试 2、自动化测试+接口 3、功能+性能
二、测试常用分类
- 分类
- 阶段划分(阶段:软件产出过程顺序)
- 代码可见度
2.1 阶段划分
- 单元测试
- 说明:针对程序源代码进行测试(单元:最小独立功能代码段)
- 提示:
- 1、国内单元测试一般开发自测
- 2、单元测试可以解决-快速定位缺陷
- 3、提高测试执行效率
- 集成测试
- 说明:针对单元与单元之间的接口进行测试
- 提示:又称接口测试。
- 系统测试
- 说明:针对系统整体功能+兼容+文档(说明、安装文档)
- 验收测试
- 内测:公司内部人员使用,发觉缺陷并修复。
- 公测:让用户帮忙测试
- 提示:验收测试,一般要根据项目类型决定是否使用。
2.2 代码可见度划分
代码可见度:代码可见的程度上划分
黑盒测试:主要针对功能(阶段划分->系统测试)
灰盒测试:针对接口测试(阶段划分->集成测试) --- 部分代码就是指接口
白盒测试:针对程序源代码进行测试(阶段划分->单元测试)
2.3 总结
系统测试和黑盒测试重点核心是功能测试
集成测试和灰盒测试又称接口测试
单元测试和白盒测试是对代码进行测试
自动化测试归属功能测试
性能测试、安全测试归属专项测试
三、模型
-
角度
1、质量模型 2、测试模型
3.1 质量模型
说明:质量模型能告诉我们,测试时应该考虑的方面
重点:功能、性能、兼容、易用性、安全
结论:无论测试硬件或软件,都应该从以上几点来进行分类验证
四、测试流程
-
需求分析(评审)
前提:阅读1遍需求文档,记录不明确之处。 参与人员:前端、后端、测试、产品 目的: 1、确保各部门需求理解一致 2、各角色对需求进行查漏补缺 3、了解软件有些功能 提示:需求分析阶段->软件还未实现(刚立项)
-
测试计划
说明:指导测试执行的文档(重要) 测什么(目标、范围) 谁来测(人员进度及安排) 怎么测(测试工具、测试策略)
-
用例设计
说明:保证能准确验证软件测试点执行的文档。 1、分析需求 2、提取测试点 3、设计用例覆盖测试点
-
用例执行
说明:实施测试
-
缺陷管理
提交->验证->关闭
-
测试报告
1、bug分析及统计 2、测试中遇到的问题 3、测试总结(本次测试中的优点和不足)
五、测试用例
-
用例:用户使用的案例
-
生活中的用例:
-
用例的作用
1、防止漏测 2、衡量软件是否通过的标准
-
用例模板
-
八大要素编写规范
-
练习案例
1.穷举–等价类划分
用例编号 | 用例标题 | 模块/项目 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 |
---|---|---|---|---|---|---|---|
QQ_login_01 | 登陆失败(账号为空) | 登录 | 1.打开登录界面;2.网络正常; | p0 | 1.输入账号;2.输入密码;3.点击登陆; | 1.账号:空;2.密码:123456; | 登陆失败,提示:账号不为空 |
QQ_login_02 | 登陆失败(账号未注册) | 登录 | 1.打开登录界面;2.网络正常;3.账号未注册; | p0 | 1.输入账号;2.输入密码;3.点击登陆; | 1.账号:未注册账号;2.密码:123456; | 登陆失败,提示:账号不存在 |
QQ_login_03 | 登陆失败(密码为空) | 登录 | 1.打开登录界面;2.网络正常;3.账号已注册; | p0 | 1.输入账号;2.输入密码;3.点击登陆; | 1.账号:已注册账号;2.密码:空; | 登陆失败,提示:密码不为空 |
QQ_login_04 | 登陆失败(密码未注册) | 登录 | 1.打开登录界面;2.网络正常;3.账号已注册; | p0 | 1.输入账号;2.输入密码;3.点击登陆; | 1.账号:已注册账号;2.密码:错误密码; | 登陆失败,提示:密码错误 |
2.解决边界限制问题–边界值划分
优化
边界值划分法:
重点:开内闭外(开区间选包含的点,闭区选不包含的点)
开区间:不包含边界上的点(没有等号)。如:a<10
闭区间:包含边界上的点(有等号)。 如:a<=10
总结
强调:单个输入框,常用的方式 边界+等价类
面试题:最常用的用例设计方法有哪些?–等价类、边界值
在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
典型代表:有边界范围的输入框类测试
3.解决多条件有依赖关系测试–判定表法
明确需求
画判定表
列测试用例·
判定表总结
提示:
1、多条件之间有依赖关系,使用判定表来进行测试覆盖。
2、判定表一般适合4个以内条件依赖关系
3、如果条件超过4个,就不适合覆盖所有条件,应采用(正交法)来解决。
4.业务测试覆盖
重点:
1、覆盖业务测试,需要使用流程图法
2、先测试业务,在测试单功能、单模块、单页面
4.1流程图
作用:梳理业务用例
练习流程图工具:
1、线上工具:https://processon.com/diagraming/605880af07912927bd71c388
2、离线工具:visio
3、其他工具:Excel
5.错误推荐法
应用场景:当项目用例都执行完毕,且BUG修复完成,离上线还有一段时间,在这段时间中可是使用错误推荐法复测主要业务或测试未覆盖的功能。
时间紧,任务量大——根据产品人员确认业务分清主次,先覆盖主要业务,再覆盖主功能,按照正向逆向时间节点,再覆盖主要模块,测试用例先不测
六、缺陷相关知识
能够说出软件缺陷判定标准
能够说出项目中缺陷的管理流程
能够使用Excel对于缺陷进行管理
能使用工具管理缺陷
说明:执行结果与用例的期望结果不一致(含义),为缺陷。
1. 缺陷的定义
软件中存在的各种问题,都为缺陷,简称bug;
2. 缺陷标准
1、少功能
2、功能错误
3、多功能
4、缺少隐性功能
5、易用性(软件测试人员专业角度)
3. 缺陷出现的原因
1、需求文档
2、架构设计
3、编码实现
4、环境(硬件、软件)
4. 缺陷生命周期
5. 缺陷的核心要素
6. 缺陷的提交要素
7. 缺陷类型
1、功能错误
2、UI页面错误
3、兼容性
4、数据(数据库)
5、易用性
6、建议
7、架构缺陷
七、阶段总结
过程
- 设计用例——等待开发完成——执行用例(执行测试的过程)——存在用例不通过——进行缺陷相关的管理(提交、验证、关闭)
- 缺陷定义:发现的任何问题(Bug)
- 缺陷标准:多功能|少功能|功能错误|缺少隐性功能|易用性
- 描述缺陷:缺陷标题|复现步骤|预期结果|实际结果|前缀条件|附件备注
- 提交缺陷:指派人|缺陷等级|修复的优先级|类型
八、练习
1. 注册模块
- 测试用例,eg 【尽量一条覆盖】
- 正向【条数 – 可以覆盖 – 看最多的哪一项 – 密码3条】
- 格式正确未注册——6位(数字+字母)——验证码正确未过期——邀请人存在——协议勾选
- 格式正确未注册——16位(数字+字母)——验证码正确未过期——邀请人存在——协议勾选
- 格式正确未注册——11位(数字+字母)——验证码正确未过期——邀请人存在——协议勾选
- 逆向【18条】
- 兼容【6条】
- 正向【条数 – 可以覆盖 – 看最多的哪一项 – 密码3条】
九、缺陷管理
3.1 excel示例(了解即可,不用记住)
3.2 缺陷跟踪流程(了解大概流程)
提示:知道测试和开发流程中涉及的工作即可。
3.3 提交注意事项(重点)
【重要】面试题:发现缺陷后,首先回怎么办?--确定Bug可复现、确定是Bug。(*复现:缺陷可以重复出现)
提交时,要检查缺陷是否已存在。
3.4 缺陷管理工具
1、项目管理工具-管理缺陷 (禅道、JIRA、TFS)
2、Excel管理缺陷
3.5 禅道(项目管理工具)
-
地址:https://demo.zentao.net/user-login.html
-
特点:
-
使用流程图
-
使用禅道管理缺陷
- 登录
-
创建缺陷
[前置]
1.网络正常
[步骤]
1.打开小程序
2.选中商品加购并下单
3.点击支付
[结果]
无响应
[期望]
能够呼起微信支付
点击确认
- 关闭缺陷
用例扩展(不如Excel)
3.6 缺陷标题扩展
eg:输出值不是预期结果L、M === 转标题
输入第一列A或B,第二列不是数字,输出结果L(预期:输出L、M)
输入第一列A或B,第二列不是数字,预期输出L、M(实际:L)
十、HTML标签补充点
1. 注释
- 作用:描述的内容不会被浏览器执行
- 说明:解析程序给程序员看
- 快捷键:ctrl+/
<!--注释区域-->
- 测试点:
前端页面上线之前检查注释描述或去除注释
2. 超链接
- 易错点: href 的拼写问题
- 新窗口打开:target = “_blank”
3. 图片
必须要有 title 属性
4. input标签
-
文本框:
<input type="text" />
-
密码框:
<input type="password" />
-
单选按钮:
-
复选框:
-
按钮:
-
普通:type=button
-
提交:type=submit
-
重置: type=reset
<!-- 按钮测试点:统一使用value进行赋值 提示:普通按钮默认没有执行效果,需要配合Js来实现。 -->
-
5. form标签
- 作用:提交页面输入的数据到指定页面或后台
<!--
form
作用:将页面输入的数据提交到后台或指定页面
属性:
action: 指定将数据提交到那个页面。
method:提交参数的方法(get、post)
get:查询使用
1、参数url明文显示
2、提交速度快
3、提交参数有长度限制
post:提交数据、登录、注册
1、非明文显示
2、提交速度慢
3、提交参数的长度无限制
-->
<form action="10-接受数据.html" method="get">
用户名:<input type="text" name="username"/>
<br />
密码框:<input type="password" name="password"/>
<br />
<!--
单选效果:
1、相同一组的radio才能做单选。
2、设置相同(组名)name属性值为一组。
-->
性别:
<input type="radio" name="one"/>男
<input type="radio" name="one"/>女
<br />
您的爱好:
<input type="checkbox" />挣钱
<input type="checkbox" />吃饭
<input type="checkbox" />欣赏美
<input type="checkbox" />个人发挥
<br />
<input type="submit" />
<input type="reset" />
<input type="button" value="点我试试"/>
</form>
十一、项目功能实操
1. 需求分析(登录需求)
登录模块设计用例
发布文章需求
2. 提取测试点
登录
发布文章
上传图片
3. 设计用例
登录模块
非功能(登录能用&显示正常 == 兼容)
滑块
文章发布功能模块(正向4条)
文章发布功能(逆向7条)
文章发布非功能模块
文章发布上传模块