【持续更新】《测试52讲》--测试基础篇
5.14:
1、工作之余,无法抽出更多的时间去学习新知识:
将工作中用到的技术,学深,学实现原理,设计思路。之后就是滚雪球随着时间的推移,知识体系越来越广,越来越深
2、降低被淘汰的风险:
降低被替换的可行性
两个方向:专一一个方向做到前5%,涉猎两个方向都做到前20%(可以都懂,但是一定要有专长)
3、安全测试/性能测试方向:
不推荐,原因:1、要求很高,需要的知识面很广,很深 2、岗位需求小,大厂或对性能/安全有特别要求的公司会有招聘 3、测试标准化,以后会被标准化自动化工具替代
5.18:
1、单元测试
对功能的最小单元函数进行调用,设计各类入参覆盖逻辑
非所有模块都需要单元测试,逻辑复杂重要业务单元适合单元测试
单元测试分为驱动代码,桩代码,mock代码。驱动代码是驱动被测函数的运行,桩代码是被测函数调用的对象,mock代码和桩代码作用一样
单元测试流程:1、确定单元测试的业务范围 2、确定单元测试框架,桩 mock框架的选型,3、统计代码覆盖率工具的引入 4、与CI/CD结合,做到持续集成
2、自动化测试
不是所有的测试都可自动化,自动化测试维护成本过高,不适合自动化。自动化适合需要频繁回归测试的项目
适合自动化的项目:1、需求稳定,不会频繁变更 2、产品研发维护周期长,单个测试用例需要频繁回归 3、需要多平台测试相同测试点 4、难以用手工实现的测试 如:压力测试性能测试稳定性测试 5、开发愿意配合提供一些帮助 6、测试团队(领导对自动化的看法,团队的代码水平)
类型:
1、单元测试自动化:用例框架自动化生产,测试数据自动化生成,自动化桩代码生成,抽桩,静态代码扫描,自动化统计代码覆盖率
2、webservice自动化:含soapAPI,restAPI
测试脚手架代码自动化生成,可解决代码层面的测试用例组织,测试数据驱动测试,api调用的数据代码分离,response验证
测试数据自动生成
response验证
基于postman等工具自动生成自动化脚本,转化为api测试框架的用例
3、GUI层自动化:
web:selenium
APP:appium
5.19:
测试覆盖率:分为需求覆盖率和代码覆盖率
需求覆盖率:需求定义的内容,测试点覆盖情况
代码覆盖率:每行代码,测试点覆盖情况。又细分为行覆盖率,分支覆盖率,判定覆盖率。在单元测试阶段更关注代码覆盖率
关注代码覆盖率可能存在的问题:关注代码覆盖率可为我们设计测试点提供帮助,但如果是开发人员本身设计逻辑缺失,从关注代码覆盖率则无法解决
现有很多工具可运用于统计代码覆盖率,如Java的jacoco,实现是在被测代码中注入探针代码(多种分类,每种分类又有多种的实现方式),且探针代码并不影响原代码执行。学习时除了要知道这个工具怎么用还应了解其实现原理
5.20:
好的bug单:
1、标题:什么情况下出现什么问题(必现,偶现?)
2、bug详细描述:减少对问题现象的描述,多描述问题本质
3、重要程度/紧急程度:两者概念不一样,重要程度是此bug造成的影响范围,紧急程度是此bug被修复是否上线前必要是否紧急
4、测试环境:描述特殊的测试环境
5、复现步骤:自己多看几遍,根据自己描述的复现步骤是否能复现此问题
6、附件:偶现问题尤其重要,不易描述问题(如UI错位)附件截图更高效
5.21:
测试计划的制定:
1、测试范围,系统可测性:测试范围:新功能测试范围是整个功能,优化功能除功能本身还应考虑改动点影响范围,测试范围的确定可以更有针对性的去测试。系统可测性分析:明确需要兼容的设备,涉及到的测试数据
2、测试策略 明确先测什么后测什么怎么测(测试方案)的过程 ,确定测试类型,测试方法(黑盒,白盒,灰盒?),明确使用到的测试技术(功能?自动化?)
3、测试资源 明确现有资源(人力,设备),及资源的分配,将任务明确落实到个人(谁测怎么测哪里测)
4、测试环境 明确现有环境准备,待解决什么?需要什么?
5、测试进度 测试开始前的准备工作,各类测试开始时间,工作量评估
6、测试风险预估 提前预估可能存在的风险(时间,人力,需求变更,其他不可控因素?)及风险出现后应对方案
5.22:
核心竞争力:
一、测试工程师:和业务知识解绑,看自己有多少可以拿走的测试技能。在工作中应该深入了解业务,但业务知识的增长不等同于测试技术的增长
1、测试策略的设计能力 明确测试目标(要将被测系统测试到什么程度),明确使用什么测试方法,资源的分配,风险预估及应对
2、测试用例设计能力 好的测试用例高效发现更多的缺陷
3、快速学习能力 分为不同业务知识快速学习能力和新测试技术的学习 不同业务知识快速学习:看需求文档,设计文档,看bug库 新测试技术学习:官方文档
4、探索性测试思维 是测试用例设计能力和快速学习能力的有机结合 是指在测试过程中边测边学,根据经验使用错误推测法对容易出现问题的点有针对性的设计测试用例,这样是低成本又高效的一种手段
5、bug分析定位能力 分三层:一是要根据bug分析定位问题出现的原因 二是根据bug分析可能出现的同类型bug的测试点(探索性测试) 三是根据近期bug的类型和分布的模块,对软件质量有整体的评估,对此类问题有提早发现的解决方案
6、自动化测试技术 自动化测试是高效测试手段,测试才是核心,切忌一味追求自动化测试技术忽略测试本身
7、沟通能力 分问问题的能力(良好清晰),问题协调处理能力
二、测试开发工程师:
1、测试系统需求分析能力 能解决测试工程师日常工作的实际问题,提高测试效率
2、宽广的知识体系 开发技术(代码能力,架构能力),CI/CD,系统部署搭建