在开始正文以前咱们首先来作一次思惟推导。咱们来尝试回答下面的问题:单元测试
反复称重可否帮你减肥?学习
这个答案显然是:否测试
测试工做自己并不能直接产出质量,就如使用体重计称重并不能让人减肥同样。测试能够被看作信息收集和评估过程,但反复评估一件事物,并不能直接改善这件事物。优化
软件测试能够经过数据的收集,缺陷的汇报,用于促进产品质量的改进,质量风险的规避,然而质量最终的改进还要来自于研发过程自己。ui
实际上咱们认为过程质量决定产品质量。那么改进项目的过程质量,才是推进产品质量提高的根本办法。编码
在软件行业内,过程改进是许多企业,特别是大型企业很是关注的,咱们耳熟能详的CMMi软件成熟度模型,就旨在帮助企业提高自身的组织和过程成熟度。spa
CMMI成熟度模型是关注质量的,实际上咱们谈过程改进,但愿达到的目标应该是成本,效率和质量的三方收益。设计
除了CMMi这种着眼于研发过程全局改进的模型,专一于测试过程的改进模型也有许多的应用场景。3d
经常使用的测试改进模型包括:blog
之因此在过程改进中,咱们倾向于使用模型,其实是秉承着“借鉴”的思想。直接使用业界先驱们成功经验的总结,与本身的项目进行比对和匹配。
以上这些模型中,有一些模型多是比较重量型的,相似CMMi,会和企业成熟度认证结合起来,须要外部助推力来帮助达成。
不过也有一些是以小团队甚至我的为出发点也是能够应用的,下面咱们就介绍其中的一种:TPI-Next。
TPI模型将测试改进方向划分为三个区域:
在此基础之上,继续将他们划分为16个域,并用“受控级”、“高效级”和“优化级”定义其成熟度。
经过将自身项目特性与TPI-Next16个域的三级成熟度标准进行对比,咱们能够很容易获得自身项目测试的改进方向。
除了使用模型来帮助咱们进行过程改进,其实针对特定问题而改进特定过程是更经常使用的作法。使用这种方式的改进过程,可能会缺少系统性和结构性,可是倒是最贴近现实,可以最有效带来直观收益的。
固然这种问题驱动式的改进,也一样能够参照过程模型和改进模型,以便于找到改进方向。咱们来看几个例子:
在测试活动中,咱们经常会赶上一些窘局,好比某系统的测试,爆出大量(远超预期)缺陷。
咱们先来论断一下,测试报出大量缺陷到底是不是一个问题?有的人可能会说,这不是问题,测试报出缺陷,这不是天经地义的吗。
实际上咱们简单来讲,咱们对项目缺陷的预期数量实际是存在边界的(CMMi3级标准,测试密度不该超过2.39%),测试的理想状态应该是在边界以内揭示问题。
缺陷数量超出边际值会带来显而易见的风险:
那么经过过程改进,咱们如何解决这一问题呢?
咱们能够从TPI模型中找出几个关键域,用于改进这个问题:
测试团队常常会面临时间压力,测试时间的争夺是测试团队夹在产品质量和市场压力之间的反复博弈过程。
如何改进这一现象呢?咱们一样尝试找出几个改进的关键域:
以上是两个问题驱动的过程改进的例子,咱们能够触类旁通,经过对于相应问题的分析,对应标准的解决办法来逐步实现测试过程的改进。
最后,过程改进实际上是一个很是大的课题,从事过程改进的人员一般具有很是高的团队地位(想要改变什么事情一般都没有那么容易)。
过程改进也必须遵循IDEAL模型:
最重要的是,取得利益干系人的支持,是过程改进得以推进的必备条件。