测试的进阶之道
目录
测试的阶梯(角色) 2
管理类 2
技术类 2
如何拾级而上 3
技能获取的德雷福斯模型 3
参考 3
关键任务 3
测试管理(目标) 3
测试计划和策略 4
测试系统建设 4
看结果,更看过程 4
测试过程的定义 5
角色的定义 5
关键动作(输入,处理,输出 IBO模型) 5
TMMi 5
方法论 5
测试设计 6
测试执行 6
专项测试 6
日常执行 7
测试设计 7
测试执行 7
用例管理,缺陷管理 7
测试评估 7
手工、自动化之辩 7
每一个部分都可以展开成一篇文章,一本书,甚至多本书来讨论,这里只是概述;提纲挈领。不免挂一漏万,只要能够领会主干应该就够了。
测试的阶梯(角色)
按照不宜混淆的层次,大题上可以分为这么一些关键角色/阶段
管理类
测试总监 TD
负责公司级,产品线级别的测试管理工作;保障产品快速,高质量的交付。
测试经理 PM
一个产品的测试管理任务,质量看门人。
测试组长 PL
一个模块,一个版本的日常管理,如用例管理,缺陷管理,人员管理,环境,资源管理等
技术类
测试系统工程师(架构类) TST/TAE
全局统筹,环境,计划,策略的协同能力;
基于风险的测试能力,测试计划和策略的拟定;环境规划设计;
测试设计(功能,专项)TDE
要求的是对需求,业务的理解;
开放的测试思维;
专业的测试设计方法和技巧;不断丰富的实践经验;
测试执行(功能,专项)TE
功能测试,业务的理解能力;
利用各种执行工具的能力,操作系统,数据库等;
测试开发(自动化,单元测试)
这个是开发类方向发展; 需要的更多的是开发的能力;测试算式业务;
自动化是方式,工具,讲的是规模效应,适合的才好;
要结合团队的规模,资源,能力来采用何种程度、类型的自动化;
前期投入大,维护成本,小团队不一定适合;
如何拾级而上
- 确定自己的特点,喜欢什么,擅长什么?
技术还是管理;
- 细分的领域,需要专注
技能获取的“德雷福斯模型”
专家
精通
胜任
高级新手
新手
参考
一万小时天才理论
程序员的思维修炼
软件架构师的12项修炼
关键任务
测试管理(目标)
管理的本质
基于环境(需求)和资源制定目标,
提供基础设施,人力,物料资源等保障;
- 制定目标,准备资源
拟定计划,策略;如何达成目标
这个其实是一个偏重管理的层次,
当然对测试工作本身的理解是拟定目标的前提条件;
符合SMART原则
- 好坏的体现;
尽早发现问题,降低项目的总体成本,保证质量;
测试的目的不是发现的问题越多越好;而是越早越好,预防问题,减少问题;
- 测试过程管理、过程改进
- 测试资源管理
- 测试人员管理等
测试计划和策略
- RBT - 基于风险的测试;评估风险等级,优先考虑高风险的问题,
测试的本质,其实是基于统计概率来发现常见的问题
理论上讲,测试的空间是无限大的,所以只能选择有效的测试集来保证 有限的质量保证;学问在于选择什么样的测试集,数据来测试;
- 计划的执行,执行,跟踪,回顾等 PDCA 循环,来保证质量
测试系统建设
看结果,更看过程
再次说明,测试不是发现的问题越多越好,要看测试的覆盖度,测试集的选择是否合理,有效;看结果,更要看过程,通过过程来保证质量。
测试过程的定义
采取的模型,
和开发模型的协同(瀑布,迭代等,TDD)
角色的定义
根据分工,职责范围;测试相关的关键的角色可以分为;
测试经理、测试组长(管理 PL/PM)
测试系统工程师(TSE设计)
测试设计工程师(TDE设计)
测试开发工程师(TDE开发)
测试工程师(TE);
自动化测试工程师(开发 ATE)
专项测试工程师(性能,安全,易用性,可移植性,文档等)
关键动作(输入,处理,输出 IBO模型)
IBO模型和开发的一样的道理,可以使用到有关过程的活动中。
适合于线性的系统;
测试日常
角色之间如何配合,相互分工;
TMMi
TMAP/Next
测试能力成熟度模型
方法论
使用的工具,方法,模板,系统,质量要求等;
针对每个关键的动作,都有对应的
测试设计
环境的设计
过程的设计
用例的设计(执行的过程,数据设计)
测试执行
手工执行
自动化执行
专项测试
- ISO9126 质量体系
功能测试
性能测试
易用性测试
安全测试
可移植性测试
兼容性测试
文档测试
安装测试
国际化测试
本地化测试
- MonkeyTest
随机测试;当然可以很快,但是需要验证,这个是人的
- Explorer Test 探索性测试
- Model Based Test 基于模型的测试
日常执行
测试设计
环境设计,
用例设计
数据设计
自动化设计(框架,用例等)
测试执行
单元测试
集成测试
系统测试
功能测试
专项测试
用例管理,缺陷管理
执行任务分配,执行等,日常的小的管理
测试组长的角色就可以了
测试评估
测试过程的评估
测试结果的评估
产品质量的评估
手工、自动化之辩
手工方式,自动化方式不同而已,自动化不是全部;
自动化的定位,
1. 应该是辅助的,保护网的角色;
2. 创造性的,设计的工作还是要人来完成;
3. 结果的检查,异常情况的处理还是需要借助人;依赖人;
自动化的范围,理论上讲
计划,策略,设计,执行,结果检查;
评估等都可以全部,或者部分的自动化;
适合 数据类型,接口类,标准化操作的测试,
规则明确(输入,输出,关系明确,可以通过计算处理的情况)
不要夸大,也不要贬低自动化的作用; 适合才是最好的。
目的是为了提升效率和质量;在这里要体现投资收益的平衡。