测试架构支撑商业成功(第一部分)
上一篇 / 下一篇 2010-02-12 21:12:18 / 个人分类:测试架构师的必备能力
测试架构支撑商业成功(第一部分)
作者:架构师Jack
&RkI\pZN0联系方式:TestArchitectJie@gmail.com51Testing软件测试网"K0CnB4}L_
什么是测试架构?商业成功的关键是什么?测试仅仅是找bug吗?经过多年商业环境中测试工作的经验和实践,我将在本文分享心中的——测试架构支撑商业成功。
Vc0p-YeF `\ o{i0首先,请大家看图一,后续的内容将是对图一的一个全面阐述,告诉大家测试架构,测试活动的执行对商业成功的价值和意义。
0NL RU-@ve0`+z0N$G&bk0
图一
_H+Fx9rJ'Y0什么是商业成功?
以我这些年在工业界的经验和体会,我总结出一个机构的商业目标要成功必然要有两个阶段:第一阶段是吸引客户;第二阶段是留住客户。如果我们不能很好的吸引客户购买你的价值,那就没有任何商业价值了。但是吸引了客户后,为了让商业目标能持续下去,就需要你能继续留住客户,因为留住客户,才能吸引真正大部分的客户,你的商业价值才能越滚越大,才能基业长青。我们可以看2个案例:百度靠自己独特的功能,和较高质量的中文搜索结果,吸引了第一批客户,第一批客户又由于搜索结果的满意度,而口碑相传为百度创造了第二批,第三批客户。阿里巴巴依靠自己独特的功能和定位,以及配合营销的支持,吸引了第一批阿里巴巴的客户,在第一批客户得到满意的服务后,才能支持后续不断扩大着新的客户。倘若阿里巴巴的后台系统质量欠佳,例如:经常导致客户的网上业务中断,或是导致客户的数据丢失,或是客户的网页被黑客修改。那么可以肯定,阿里巴巴的现有客户会放弃阿里巴巴的服务,同时,质量差的口碑也会传播开,导致无法吸引新的客户。那么目前为止无论是百度还是阿里巴巴都在不断的扩大着自己的客户群,就证明了它们两家公司的测试质量还是令人满意的,没有因为质量拖累了商业目标的达成。
}/|#n(kU0那么我们测试人员在这两个阶段如何发挥作用,体现自己的价值呢?
在“吸引客户”阶段:吸引客户的关键是产品的规划设计,规划的产品能解决客户的某些问题,这样自然会有客户愿意尝试产品,并成为第一批客户。在这一阶段,如果你不是一个刚进入工业界的新人,而是一个工业界的“老兵”测试人员那么你可以发挥你过去在其他项目中积累的对客户需求的理解,以一个代表“用户”的角色与老板,与开发负责人一起商讨产品应该具备哪些功能,如何才能满足用户的需求。对于能力很强,经验丰富的测试人员还可以参与产品的架构评审,设计方案质量的把关。确保产品的设计满足最初的需求规划,产品的设计缺陷不会留给用户。我把这个阶段的测试活动都定义为“测试驱动设计”。51Testing软件测试网+BJh5}L6|`Y:k
在“留住客户”阶段:其实留住客户的贡献,测试人员从一个项目开始就在支持了。从代表“用户”来敲打需求的必要性和需求的正确性,到对产品进行的各种类型的测试,目的都是尽可能的保障产品的质量,不让产品缺陷伤害到客户。我把这个阶段的测试活动定义为“测试驱动开发”。51Testing软件测试网 o&^1LO@,Em8f(M}
测试驱动设计——“吸引客户”
此处的测试驱动设计,不是写一段测试代码或一个工具来动态测试产品的设计方案。而是采用静态测试的方式,利用测试人员特有的产品系统经验,与开发人员一起完善产品的设计质量,需求质量。我把测试人员在产品设计阶段对开发人员的影响力,称为“测试驱动设计”。“测试驱动设计”解决的是产品设计质量的需求,确保产品的设计能“吸引客户”。在我的blog中有一篇文章,《测试架构师与产品架构师的合作》有更多的介绍。
2Y]'s xR(mf'q0http://www.51testing.com/index.php?uid-293557-action-viewspace-itemid-17948251Testing软件测试网+E~vF,U}"pm&wQ C
这是测试人员未来发展的一个方向,更高价值的体现。成为产品设计的主导,而不只是在最后阶段发现一些程序员粗心大意的错误。51Testing软件测试网EM}s*^ { O%] v(iZH
测试驱动开发——“留住客户”
测试驱动开发不仅仅是TDD的范畴,不只是测试人员先写好单元测试代码然后进行TDD活动,测试驱动开发还包含后期系统黑盒测试。大多数单元测试只能发现编程技术上或人为粗心的问题,很难发现产品需求和设计方案的问题。因此,我把单元测试和使用一些测试工具对产品进行的黑盒测试都定义为“测试驱动开发”。“测试驱动开发”解决的是开发质量的需求,确保客户不会因产品实现过程中的人为错误而受伤害,离开我们。51Testing软件测试网BG&\/}&F ]0f_o
“测试驱动设计”如何实施?
P w6Z)xEb0需求/规划/设计/编码阶段的测试——“吸引客户”
需求阶段、规划阶段、设计阶段、编码阶段开展的测试在国际上有一个专业的词汇叫“early testing”,大家有兴趣可以在google上搜索“early testing”可以有更多的了解。早期测试与我们平时传统测试的区别更多在于测试在产品周期的哪个阶段介入。是开发人员做还是测试人员做更好呢?我依然认为还是专业的测试人员来做更有效,因为测试人员具有更好的发散思维和更严谨的思维,很适合在早期阶段进行测试。虽然欠缺一些产品代码编写的经验,但不影响早期测试的开展。最多在编码阶段的测试活动上效率低一些,但单元测试代码本身编写并不复杂。关于如何开展早期测试,欢迎大家关注我的blog文章之一《需求质量如何测试》http://www.51testing.com/?uid-293557-action-viewspace-itemid-19736751Testing软件测试网^)Q?"uI%B
“早期测试的目的”就是要确保产品后续的活动是在一个正确的方向上。
“测试驱动开发”如何实施?51Testing软件测试网O6n&c1r;o Vt_$B
调测阶段的测试——“留住客户”
后期测试主要就是大部分测试人员日常所做的测试活动,这一阶段的测试活动基本都属于动态测试,测试技术的入门门槛并不高,但却是保障产品质量的最低底线。后期测试包含了平时我们所涉及的:性能测试,压力测试,可靠性测试,兼容性测试,测试方案,测试用例设计,等价类划分等活动。任何一个公司都必须把这些测试活动做扎实,才能守好最后的一道门。相对于早期测试活动的开展,对测试人员能力的要求相对较低,不存在是否测试活动能够有足够技术积累支撑开展的风险,所以成为了主流的测试活动。但是后期测试相对早期测试的不足就是:发现产品bug的成本高,发现产品bug后修复的成本大和难度大,而且发现一些产品设计缺陷的难度比早期测试大。因此,如果有条件,测试团队应该尽力抽精兵强将在早期测试阶段进行投入,能有多大能力就投入多大,不让“缺陷越早发现,成本越低”成为永远的不去努力的目标。
a)Sj VM)S0“后期测试的目的”就是要确保产品实现工作是在既定的方向上得到了无偏差的实现。
静态测试——“吸引客户”
早期测试的主要测试活动都属于静态测试,例如:需求评审,架构评审,代码静态检视,代码静态测试工具都是属于静态测试。静态测试是所有测试活动中发现缺陷时间最多,效率最高,缺陷定位时间最短(发现缺陷了就定位缺陷了),修改缺陷成本最低(只有一些图线或文字描述的修改)。但是静态测试对人能力的要求却更高了,因此目前在大部分中国的公司还无法开展起来。对于已开展静态测试的测试人员,要清楚你正在做的工作是“吸引客户”的第一步,这样会给你更大的责任感,让你更有动力做好静态测试的质量。静态测试的结果就是确保你们在做正确的产品,能满足新客户的需求,吸引到新客户。51Testing软件测试网&n9HAw A+d
动态测试——“留住客户”
动态测试顾名思义就是需要软件动起来,才能进行的测试。我们传统的黑盒测试都属于动态测试,一些动态测试工具能帮我们大大提升黑盒测试的效率,如:动态内存自动检测工具,压力测试工具等。采用动态测试基本都是在产品的后期阶段了,这时测试关注重心是产品得到了正确的实现,能留住老客户,而不会因为修改了一个bug,引入了新缺陷破坏了老客户原有功能。
6|k1Gu,T0目前为止,本文的上半部分结束了。从宏观层面给读者们分析了测试支撑商业目标的主要活动类型,以及各阶段测试活动的价值和意义。我们要在确立测试架构时,可以从以上大类划分测试活动的组合策略,清楚明白后续测试计划所解决的商业问题。
~#|x6D+j7k:a0后面的内容将是本文的下半部分内容,从微观层面分解支撑测试架构的具体测试活动。
"c K:n;u/x%J+B?0一、测试架构的国际通用标准和活动:51Testing软件测试网(^ie(MDH'_
TMM(测试能力成熟度):是类似于CMMI的一套评估体系,可以帮助我们了解当前所在的测试组织在国际标准中所处的成熟阶段。
ga,I]M0ISO9126:是一个国际质量标准,它定义了很多非功能属性的内容。可以帮助我们完善产品非功能属性的设计,以及非功能测试所应该包含的内容。51Testing软件测试网+z w_ mx4rC9pd;G
TPI(Test Process Improvement):是一个国际测试改进活动,没有唯一的国际标准,但是它提供了一种评估测试活动质量的维度矩阵,一种思想启发。目前国际上有一些测试顾问公司在使用TPI来进行测试咨询服务,识别出测试团队的短木板,给出改进建议。51Testing软件测试网5d gWc!q8MH3| i:mt
以上内容在测试架构中的作用和价值是提升测试活动本身的质量。测试活动质量提升后的效果就是产品质量的提升。因此,测试活动的质量如何知道,测试团队提升的方向在哪,都可以参考这些国际通用的方法来帮助我们。