第4章 测试架构的设计
本章从思索测试架构开始,探讨了测试架构是什么,包含哪些方面的内容,接着就测试人员最为关心的话题,测试职业发展线路的设计进行了剖析,引导不同的相关测试领域的读者找到自己的位置与努力的方向。本章在接下来提出了一种架构设计模型,然后围绕此模型,结合日常生活中大家熟悉的相框为例对处于模型中最底层的“测试框架”这个抽象概念进行了讲述。最后对框架应包括的内容及其设计方法进行介绍。
4.1 思索测试架构
“测试架构”这个词不太好理解,本节从架构的解释开始,依托人们实际生活中熟悉的建筑架构设计,旁征博引,引出测试架构的设计是怎么一回事,它的发展与独特之处又是什么。测试架构都要解决哪些问题,测试架构之路在哪里。
4.1.1 认知测试架构
起初,听到测试架构设计时,如同听到软件架构设计一样,觉得很神圣,也很神秘。神圣,是因为这两个职位分别是软件测试,以及软件开发在技术线路上发展的顶尖职位,一般都是专家级职位。神秘,是因为不清楚它们具体是做什么的,不说专业外的人,即便同是软件界的人士,也不一定都能说得清楚。下面就让我们一起来解读。
首先,弄明白什么是架构。架构(Architecture)在汉语词典中有以下3种解释:
①建造;构筑。
②框架;支架。
③比喻事物的组织、结构、格局。
在架构的解释中,首先提到的是建筑方面的架构,这也是最初的来源。后来人们对其他行业有着类似特性的工程设计也称为架构设计,如软件架构设计,测试架构设计等。架构设计凝集了设计师们的智慧,是一种高屋建瓴的高层设计。成功的设计,它是有灵魂的,是艺术与科学技术的完美结合体。根据设计的结果,架构设计又有层次之分,包括合格的架构设计、优秀的架构设计、卓越的架构设计,再有就是世上罕见的卓绝的架构设计。如图4-1所示,架构设计本身亦有它的梯度进阶发展规律。
图4-1 架构设计进阶图
建筑行业中的合格与优秀的架构设计,在我们的生活周围并不罕见,然而堪称卓越,特别是卓绝的产品并不多见,比如深圳的地王与北京的鸟巢。地王,它是深圳的标志性建筑,高383.95米,集建筑与人文景观于一身,堪称是一个卓越的创新型建筑设计;而2008年北京奥运会的巨型体育场——“鸟巢”,则是一个卓绝的架构设计,它不仅以美妙绝伦的外观给世人留下了深刻的印象,更重要的是它所蕴涵的意义和折射出来的思想,深邃而又遥远。“巢”象征着孕育生命,“鸟巢”就像一个摇篮,寄托着人类对未来的希望。
建筑行业的架构设计可以做到如此美妙绝伦,相比之于软件的架构设计、测试架构设计情况又如何呢?建筑行业已有几千年的历史,而软件工程体系则是在近几十年随着信息产业的高速发展而逐步形成的。对于测试架构在业界的提及,更是近几年随着软件测试这个新兴行业的出现而出现的事。任何一个事物的发展,都有它的变化发展规律。在国外,软件测试行业的发展已有二三十年的历史了,测试已得到行业的普遍认识,对测试架构工作的认知度也较高。而在国内,它确实太新了,据智联招聘(www.zhaopin.com)2007年关于软测行业认知度的调查,广大职场人员对软测行业的认知度并不算高。选择非常了解的只有8.8%,不到一成,选择“知道一些”的不足四成,其余超过半数的职场人都选择不了解甚至没听说过,如图4-2所示。这些数据也说明国内的软测行业还处于发展初期,但是国内的软件产业已处于高速发展期,一些大公司及对质量要求较高的公司已把软件测试的重要性提到了企业发展的战略日程上,对招聘测试架构师这个高端职位的需求也越来越多。
图4-2 软测行业认知度调查
尽管一些规模很小的公司没有专门的测试架构岗位,但并不说明没有这个角色。实际上,测试架构自从有了测试岗位以来,这个角色就已存在。只是这个角色可能落在某个测试经理、测试主管,或者某个测试工程师,甚至还可能落在某个开发负责人的头上。所谓“麻雀虽小,五脏俱全”,只是对这个“五脏”的体现与发展程度会千差万别。测试架构的设计同其他方向的架构设计一样,需要纵横全局思考,不仅考虑测试技术的应用、研究,还需考虑测试人员的管理、测试流程的设计等。
测试相对于设计行业而言,如软件设计和建筑设计,是一种技术性服务行业,当然它也可以有自己的产品,即服务产品,如一批优秀的专业测试团队,一套合适的测试流程、方法等。如图4-3所示,以软件为圆心,所有测试服务产品,包括测试人力资源,都围绕圆心而转动,推动软件的不断优化,最终输出优质软件产品。测试架构要考虑的事不止包括所有为软件服务的产品,同时还要考虑这些产品与接口部门的关系,甚至整个项目链各环节与软测之间的关系,是一个测试总体设计的工作。
图4-3 测试架构设计范围示意图
4.1.2 测试架构设计不仅仅在技术上
提到测试架构的设计,很多人认为指的就是技术上的高端设计,而在工程实践中,笔者觉得架构的设计不能仅考虑事,还要考虑人,即测试团队的管理。测试架构可以分为测试管理架构与测试技术架构两方面如图4-4所示。对于测试团队的管理,既有行政上的管理,也有技术上的管理,两者之间相辅相成。比如在对公司测试人员的发展规划中,人员梯队如何构建属团队管理架构的范畴,而具体每一个梯队在技术上有哪些要求应由技术架构师定义更合适等。测试架构师应分为测试管理架构师和测试技术架构师。一般而言,目前管理上的架构师被别的头衔所覆盖,如测试经理或测试总监。
图4-4 测试架构划分