联系我:新浪微博@架构师Jack 或 dongjietest#163.com联系.(#换为@)

测试架构师必须具备的第四个能力—第四篇 “参与架构工作的能力”

上一篇 / 下一篇  2009-10-26 00:00:12 / 个人分类:测试架构师的必备能力

此篇由于涉及一些职业道德规范,为了不损害雇主的利益,因此内容稍简,还请大家谅解。但是本篇可以给大家提供一些破冰的方向,然后自己去实践摸索。我唯一可以证明的是:我所提供的破冰方向是已经被证明可行有效的。 

)fY3x0Xk8y&F IW0

总体而言测试架构师参与产品架构工作的主要方向为三个:

$_0o,Gh }%g'd?5` P0

1、 发现产品架构设计中欠考虑的部分,并提供设计补充意见和方案;

9~SF?%Z:j `0

2、 证明架构或设计方案中算法设计,有错误或风险的地方;

C'Hc ~*Hz H1X0

3、 承担架构设计中可测试性模块的架构设计工作; 51Testing软件测试网sb1];|&_m

系统的可以使用的知识来源:51Testing软件测试网:_3s~u2n+I*LhH2v

http://www.sei.cmu.edu/architecture/51Testing软件测试网z"c+Y7u{`.T?

ISO9126

8g8r&M PLx.fHk0

我再分享一句通用的架构设计核心思想:

n-X,JlPtS,L9W+Q0

  “质量属性决定架构设计”

`X9} x_b&b!T$f9I0

那么我们要系统地进行架构设计的缺陷识别,就可以考虑从这句话入手突破。 

0} wB&m2z$Y0

首先:什么样的人能够具备参与架构或设计方案缺陷识别的能力呢?

+KdD#r1tHcy@o0

1、             如果一直是在同一个产品的黑盒测试工作,并且很聪明,之前也明白产品的设计方案,通过黑盒测试发现过多个设计缺陷。那么1年经验的人也勉强能做,他可以通过异常处理分析,以及功能组合分析来发现部分设计缺陷,但是生产率较低。

Z6D3D!mgEf7@0

2、             5年以上测试经验,并且5年中每年都发现并定位过多个产品架构和设计方案的bug,那么可以在一定时间通过了解新产品的架构和设计方案后,进行架构和设计方案的评审,生产率较高。51Testing软件测试网V-y1\S b{-jh

3、             做黑盒系统测试的人更适合做产品架构和设计的静态测试。做测试工具开发和自动化测试开发的人反而不适合,因为他们没有足够多的通过手工测试发现产品设计缺陷的经验,总得来说:他们是开发人员不是测试人员。51Testing软件测试网6fc2gGzc^

4、             必须具备很强的发散思维能力和非常严谨的思维能力。发散能给你提供很多可能出错的假设场景,严谨能够让你发现设计中的漏洞。

5~"@,wj}L,R3HV0

   误区:架构和设计方案缺陷的识别不能只依赖参加评审会。因为评审会的时间最多也就816个小时,且大家你一言我一句,自己用于思考的时间是不多的,所以到评审现场再进行架构缺陷的识别工作,就明显有些摸着石头过河效率不高,产出也不多。51Testing软件测试网$b L9y:D)j/umk5~4_

 重要经验分享:

2n6`He]~x,nW&^:{0

    架构和设计方案缺陷识别也是一个系统性工程。至少需要分为:学习准备期;系统专项测试期;开发确认期;51Testing软件测试网NUu [ W3F|dg)~R

   学习准确期:就是专门花时间12周学习产品需求,学习产品架构所选用的技术背景和算法;

cH(z+d:]p0

系统专项测试期:针对开发已有的设计文档,专门花12周的时间全身心的分析其中可能会有的设计缺陷,和100%是错误的缺陷。并把所有可能的和确认的缺陷全记录下来,并且每个缺陷都必须有场景支撑,证明其存在不足。【用一些我自研的系统方法支撑活动效率,但暂不能公开了】

;M:_.ib,i [0

开发确认期:拿着你已发现的可能和确认的设计缺陷与开发人员进行一对一的沟通确认,双方达成一致认识,是否真的是缺陷。【用一些我自研的系统方法支撑活动效率,暂不能公开】 51Testing软件测试网2u I.sm:q2n

信心:

4SG8hFK,K0

   如果你是1个通过黑盒测试发现过上百个(性能,压力,可靠性,异常处理)设计缺陷bug的老测试人员,你就应该能有足够的信心敢于怀疑开发的设计方案。敢于和开发进行沟通确认。这里分享一个案例:一次我在食堂碰到某产品首席架构师(一位在工业界工作10年以上的博士,且刚在美国干了3年回国),他问我主要做什么?我说是测试架构师。他还不理解的说:“测试还有架构师啊”。然后,他给我说:“他在美国时,美国那位测试经理很厉害,能写好多自动化测试脚本,每天运行多少自动化测试。”我心想:“这位同事对测试理解太浅,见识太少了。”后来,我经过近2个月的学习和系统专项测试期,拿出一份他所设计架构的可能缺陷列表找他确认时,开始他不愿意理我。后来,他说:“为了完成公司的要求,就给我1个小时时间”。结果呢?我们进行了3个多小时,他从开始的应付,到中间非常好奇的问我:“这是你们测试做的吗?”到最后,他和我沟通完所有的缺陷列表,最终他本人确认了设计和架构的缺陷几十个。并在后续的架构评审中,主动邀请我参加。

RU)?,EDA0x,N0

结果:

UWq!}d?Uzq0

   产品所有的架构和设计缺陷不可能只靠开发人员或只靠测试人员就都能发现。因为开发人员能发现的一些缺陷,测试是做不到的。而测试能发现的缺陷,则是开发做不好的。因为测试在系统测试活动中积累了丰富的设计缺陷经验,一个经验丰富的系统测试人员记忆中的设计缺陷经验是多个开发设计人员的总和。这些经验最直接的就是:异常处理;功能组合处理;算法选取考虑不周全;以及非功能属性的设计需求。51Testing软件测试网r} CIf6W nl-o

     现在通过使用我所推荐的系统方法,在每个项目中测试人员所发现的产品架构和设计方案中的缺陷数量是开发人员内部评审的几倍以上。不要怀疑几倍的数字,09年我的一名员工使用我们测试架构师团队09年输出的系列架构设计缺陷识别解决方案,带领某产品的高级测试工程师和测试经理,三人在2周内通过静态测试共发现了近200个设计方案中的缺陷。当然除了产品设计本身问题较多以外,针对设计缺陷静态测试经验和方法的积累也是一个大大提高生产率的重要因素。

TAG:

幻雪如昔的个人空间 引用 删除 幻雪如昔   /   2013-07-11 18:11:53
牛~学习了~
chxdyw的个人空间 引用 删除 chxdyw   /   2013-03-17 12:56:44
谢谢Jack老师,可以顺着jack老师指引的方向前进了。
引用 删除 galaxy515   /   2010-02-24 16:42:04
5
huih78的个人空间 引用 删除 huih78   /   2010-01-04 15:53:23
佩服。以后多请教啊。
feeling_6的个人空间 引用 删除 feeling_6   /   2009-10-30 17:37:07
敬佩
feeling_6的个人空间 引用 删除 feeling_6   /   2009-10-30 17:36:40
5
引用 删除 markfong0565   /   2009-10-26 20:08:22
强!靠实力说话!
引用 删除 pktest   /   2009-10-26 02:12:32
测试架构师,是修道之人,除了悟性,更多的是对测试事业的执着
 

评分:0

我来说两句

Open Toolbar