《测试架构师修炼之道》一书,笔者入行一年多的时候拜读过。虽然这本书主要偏向业务测试、质量管理的方向,而并非技术测试、测试开发的方向,但只要是测试行业从业者,笔者认为都值得一看。
从笔者本人角度,对于测试人员的职业发展,是极端推崇技术方向的。但工作最终总会落实到人,测试近年来被划分为偏向技术的岗位,那么技术本身就一定要搞起来,这样才能使得这类职业能够在工作框架体系里处于不屈之地。
但即便如此,测试本身也有很多技术/管理方法论的积淀,有很多old school的东西是值得尊重的。不论技术做成什么样,从测试工作的最终目标而言,都需要贴合传统测试遗留下来的的概念。《测试架构师修炼之道》一书,对传统测试,尤其质量管理方向相关的知识点、工作目标、工作方法都概括的非常明确,是测试行业不可多得的智慧积淀(嗯,测试行业确实缺乏沉淀!)。
技术方向的测试同学阅读这本书,能够更好地把握技术研发的方向;业务方向的测试同学阅读这本书,能够更全面地规划自己的发展。
在阅读的过程中,笔者也做了相关的读书笔记,提炼了其中的精要。本文也将把笔者的读书笔记全部分享出来:
第三年的瓶颈:基本的技术与业务都已掌握,但不知道该如何深入,工作缺乏挑战性与成就感
软件测试的能力:
测试工程师的两条路:
产品测试是端到端的
验证是否符合需求->非功能/隐性需求?
质量六属性:
指定条件下使用时,满足显性/隐性功能的能力
从用户习惯的角度
产品性能
可被修改的能力
从一种环境迁移到另外一种环境的能力
车轮图——围绕产品质量模型的相应测试方法
单/多运行:测试人员的一次/多次操作或行为
从设计的角度划分功能,比如“用户和服务器建立了连接”这种叙述,并不算是运行
而“用户通过点击xxx” -> 输出结果为和服务器建立了连接,前者算是“运行”
针对一个用户执行操作(多个用户,考虑可靠性测试法)
分析性能测试的影响因素:考虑用户发邮件,因变量为邮件大小(1bit~10MB)与邮件过滤策略(1~1000条),通过拟合曲线观察趋势。或者采用混合因变量的方法,模拟真实业务情况。
测试用例是测试点的加工,需要对测试点进行去重、合并、细化
需要保证用例的可执行性,是一份真正能够直到测试的说明书
一边学习、一边设计、一边执行
优点:更快测试,更快寻找到有效测试点,更高效发现缺陷
缺点:基本测试覆盖易不足,测试点不易复用
总成本 = 前期开发 + 后期维护成本
前期开发成本:人力、时间、金钱
后期维护成本:产品变更、定位/修复自动化运行环境可靠性与代码健壮性,以及其它杂项因素
自动化测试的收益 = 自动化测试的运行次数
实施成本计算方式:p = k * n / (c1 + c2)
基本沟通原则:尽早沟通,既要对事,也要对人——换位思考(了解项目各组成员的业务与立场)
测试用例包含:
与其它名词的不同:
评估维度:
通信公司的分层:
敏捷环境下的分层:
制定测试策略之前,需要进行信息收集,比如:
然后采用四步测试策略制定法:
产品分为4个等级:
对产品每个特性,也根据四个质量等级来划分。将特性的质量目标确定后,就可以进行风险分析
风险分析后就能够确定测试策略的结构,可以采用总分式
对质量目标进行分解,比如:
并为每一个测试分层确定目标,采用老功能分析法对特性进行分类。
新特性进行全面测试,老特性对变化的部分进行全面测试,没有变化的可以适量回归+探索
通过产品质量评估模型与老功能分析,可以初步确定测试深度:
老功能分析可以用来确认测试广度:
之后根据质量目标与分类,确定测试优先级与总体框架:
采用测试分析设计表保证测试设计符合策略
之后可以对测试用例进行分级
集成测试位于开发阶段,相当于联调。集成测试是黑盒性质的测试,包括以下几项:
集成测试的条件(入口准则):
集成测试结束条件(出口准则):
系统测试主要是针对全局,而非像集成测试一样针对单个功能
入口准则:
系统测试会对功能、可靠性、性能、易用性等各方面进行测试,不考虑测试执行顺序容易阻塞,需要考虑以下情况:
出口准则:
产品发布前的测试,是对用户需求的确认
验收测试的入口准则:
出口准则:
版本测试时,应当有一份版本计划与一份测试计划,分别由开发人员和测试人员输出
版本测试主要工作是指定版本测试策略,然后跟进测试执行并进行评估。
第一个版本策略的制定方式,也可以按照目标——风险——流程——顺序的思路来制定
当某一个build的提交并不完整的时候,可以根据对测试人员是否可测为基准,进行测试
对于测试目标,比较好的描述方式是:对某个功能(测试对象),进行哪些测试(测试方法),发现产品哪些方面的缺陷(测试结果)
每个版本测试策略中,需要注明哪些是重点关注的内容。首先要对提交功能进行分析,提出测试团队重点关注内容,其次要确定版本测试功能优先级表。实际开发过程中,不同功能可能分为不同的提交,因此测试功能的优先级需要实时定制更新,而后在版本策略中向测试团队说明。同时可以对测试用例进行分级,从而更加容易选择测试用例。
在测试执行顺序方面,可以遵循如下的原则:
测试的时候会遇到一些全局因素,比如浏览器、测试工具、操作系统等运行环境,需要策略性地进行试探测试。也可在不同配置下,对相同功能进行测试。
“接收测试”指开发人员将版本转移给测试人员是,测试人员对这个版本进行一次测试,确认没有阻塞问题能够按照测试策略完成测试。有两种结果——通过和不通过,判断标准是是否有阻塞问题。如果不通过,但有规避阻塞地方法,可以继续进行测试。接收测试适合level1的测试用例。
跟踪测试执行的目的有3个:
要保证测试团队按照测试策略来执行测试,需要保证以下三点:
在进行下个版本测试之前,需要进行版本质量评估
质量评估的方法:
在每个阶段完成时对整体质量进行评估,判断是否能够达到出口标准,进入下一阶段评估
质量评估可以按照质量评估模型进行评估,需要持续跟踪测试执行、评估版本与阶段质量。具体工作如下: