文章目录
- 1、什么是软件测试?
- 2、软件测试的职业发展
- 3、软件测试的分类
- 4、研发管理模型
- 5、测试流程
- 6、测试方法
- 7、评审
- 8、BUG的管理
- 9、测试应用
- 10、软件结构
- 11、版本迭代
1、什么是软件测试?
检查软件上的功能是不是符合预期结果,即实际结果是不是和预期结果相同。
软件测试的最高境界就是预防bug。
2、软件测试的职业发展
- 功能测试
- 自动化测试(测试开发、持续集成、testops)
- 性能测试(高级性能测试、架构师)
- 转行(开发、产品、运维等)
3、软件测试的分类
1、按方法:
- 黑盒测试(检查输入输出是否正确,不需要懂原理)
- 白盒测试(要懂内部结构,看代码对不对)
- 灰盒测试(黑盒白盒结合)
2、按方向:
- 功能测试
- 性能测试(压力测试——发现软件的性能瓶颈、负载测试、并发测试——同一时间多人做同一件事情,例如秒杀会不会2人同时抢到)
- 安全测试——黑客
3、按阶段:
- 单元测试——方法、函数、类
- 集成测试——接口
- 系统测试——功能、安全、性能、兼容性(web、app)、易用性(用户体验)、稳定性(7*24小时是否都稳定)、UI(界面)
- 验收测试
4、按对象:
- APP测试
- WEB测试
- 物联网测试
- 车联网测试
- 小程序测试
- 嵌入式测试
- 大数据测试
- AI测试
5、按状态:
- 静态测试(白盒看代码)
- 动态测试(黑盒或灰盒)
6、其他:冒烟测试(测试前的测试)、回归测试(检查bug有没有被修改)、α测试(内测)、β测试(公测)
4、研发管理模型
1、瀑布流:
2、V字型:
3、W字型:
4、敏捷模型:高效的工作、及时的沟通、日报、白板、早会/站立会、集中办公
5、测试流程
1、需求分析阶段:
- 需求分析——需求文档、产品原型、口述;
- 学习业务流程;
- 提取功能点;
- 编写需求分析说明书;没有需求怎么办——参考市面上已经成熟的同类型的产品的实现
2、测试设计阶段:
- 测试计划——5W1H,重点是时间和人员以及资源的安排分配
- 测试方案:重点是针对每个测试内容如何开展测试、采用什么测试计划、什么测试工具
- 测试策略:哪些测试内容先测、哪些内容后测试、开始测试和结束测试的标准是什么
- 测试用例:用例编号(唯一的)、用例名称(言简意赅,用最少的字描述清楚这个用例是做什么的)、前置条件(执行这条用例之前,软件必须满足的条件)、优先级(执行这条用例的时间要求紧急的登记)、重要级(这个被测的功能在系统里面的重要级别)、测试数据、测试步骤、预期结果、实际结果
3、测试执行阶段
- 预期结果和实际结果作对比,如果一样则通过,不一样则有问题
- 提交bug
- 回归测试:在版本2上检查在版本1上发现的问题有没有被解决
4、测试总结阶段
编写测试报告:
- 对工作的总结
- 对BUG的统计分析:测试、开发、软件模块、等级、解决的时间、每个版本、状态
- 对被测软件的质量评估:一二级的BUG全部关闭了,三级的BUG关闭了80%,四级的BUG无所谓
6、测试方法
-
等价类:通过少数部分代表大部分
无效等价类、有效等价类 -
边界值
-
场景法
-
因果图
-
判定表
-
路径覆盖法
7、评审
- 同行评审
- 小组评审
- 部门评审
- 项目评审
- 第三方评审
- 邮件评审
8、BUG的管理
-
BUG的管理平台/系统/工具
禅道、BUGFree、ALM/QC、JIRA -
BUG的六要素
1、编号2、BUG的名称(言简意赅,看到题目就知道是什么问题)
3、BUG的优先级(根据实际的情况,这个BUG需要优先解决吗,高中低)
4、BUG的等级(致命的——影响产品的核心流程的正常使用,导致软件挂了、闪退、崩,和钱有关;严重的——导致功能无法正常使用;一般的——功能的某些场景有问题;轻微的——建议性的东西,如用户体验的,UI上的问题)
5、BUG的复现步骤
可以把用例的步骤复制过来、预期结果、实际结果6、附件
截图/日志/视频(目的是为BUG佐证) -
BUG的生命周期
-
BUG的状态
新建、打开、已确认、已解决、拒绝、重新打开、关闭、延期处理、重复BUG -
BUG的等级
9、测试应用
1、APP测试
- 安装/卸载
- 消息推送
- 更新
- 弱网测试(2G/3G/4G/5G/WIFI)
- 场景交互测试(来电话了、正在听音乐、调用相机、前后台的切换)
- 权限测试
- 离线测试
2、WEB测试
10、软件结构
1、B/S
browser 浏览器
server 服务器
2、C/S
client 客户端(需要单独安装,比如APP)
server 服务器
11、版本迭代
- 随着时间/测试次数的推进,会发布很多版本,其中版本号是不断叠加的
- 增量测试:只测试已知的有变化的功能
- 全量测试:测试软件的所有功能