软件测试从零开始之十一:测试架构师

上一篇 / 下一篇  2014-03-16 18:19:21 / 个人分类:软件测试从零开始

测试架构师应该是一个测试人员在测试技术领域追求的一个理想的高度了,我们应该怎样达到这个高度呢?

这里先来说说测试架构师的工作内容吧(包括但是不限于)!

一、项目的技术分析和改进工作,能够通过技术的手段来保证项目的质量。

二、团队的技术规划工作,能够指引团队的技术向前不断的发展。

三、技术人员的培养工作,能够让团队成员的技术快速的提升起来。

四、新技术的研究工作,能够不断的引入新的技术来改进当前的工作。

项目工作:

1、需求分析:笔者一直觉得测试架构师要尽量的和需求分析师去划开界限,所以测试架构师在设计没有开始前可以不用去关注。

2、理解开发的设计架构,并且能够提出优化意见。

3、开始从测试角度去思考如何去更好的测试该项目,并且有一些准备,包括:自动化框架的选择和优化、相关的背景知识掌握、相关的测试接口分析、测试工具的需求、测试环境的准备等等。

4、参与开发的设计评审,并且能够提出设计不合理的地方或者欠考虑的地方。

5、开始去实现或者指导人员去实现对应的框架、接口以及工具。

6、接口完成并且质量ok后开始准备持续构建的环境,来及时发现开发编码过程中存在的问题。

7、测试策略的制定,如何去通过最短的时间来保证项目的质量,哪些测试是可以通过自动化来实现的,哪些测试是可以进行优化的,还可能存在的风险是什么等等。

8、测试过程中的质量实时分析和跟踪,并且及时发现有效的风险并且解决。

其实上面的工作大概就是测试开发工程师和测试分析工程师的结合,需要的技能前面也已经有提到,这里就不再累述了。当然,这里只是测试架构师的工作之一。

技术规划工作:

    测试架构师应该最主要的工作就是负责整个团队的技术规划,并且按照计划去达成目标吧。所以,对于测试架构师来说,技术规划能力是一个很重要的能力。下面以笔者的经验来说下整个技术规划的过程(另外,不得不说在没有测试架构师的情况下,测试经理确实需要做很多事情,同时也学到了很多的能力)。

1. 确定团队未来2-3年内的技术发展方向和目标(向测试领域的领先水平看齐)。

2. 准确的分析出团队当前的技术现状。

3. 根据目标和现状的差距来分析如何达成目标。

4. 将目标根据时间来分解从而形成具体的实施计划。

5. 能够根据计划保证每个阶段都能够达成目标,过程中能够根据当前的技术发展水平来不断的调整计划,以便最后能够达成目标。

以上工作大概需要如下几个方面的能力:

l 系统思考的能力,这样能够保证目标是没有问题的以及能够达成的。

l 解决问题的能力,这样在过程中碰到一些技术难题自己能够及时解决。

l 风险分析能力,这样能够及时的识别出过程中可能碰到的问题。

l 协调沟通能力,这样过程中能够及时的协调对应的人员来一起达成目标。

下面提供笔者做过的一份团队技术规划工作的模板,供参考

如何打造一个理想的测试技术团队

一、确认好团队的目标(即该团队未来2-3年或者更长时间内期望发展成什么样)。
    测试团队的核心任务应该就是保证自己负责项目的质量,并且通过不断的改进来缩短项目的周期吧!
我们可以先想象下2-3年后,期望整个团队的测试模式是怎样的?
比如:一个新的版本开始后(这里指增量版本),我们确认该版本的测试模式是:
1
、新增模块在版本前期就开始研究测试方法(比如:
单元测试接口测试自动化测试等),并且能够让开发配合提供一些支持。通过这种方式能够覆盖到70%以上的测试点。然后再通过对该模块以及对整个系统的把握,准确的分析出那些可能还是有风险的,并且进行探索性测试和整体场景的测试。
2
、关联模块的测试点分析出来后能够很快的实现自动化。
3
、老模块已经全部实现自动化了。
4
、测试人员发现的问题基本上都能够自己定位,甚至能够指导研发进行修改。研发修改后能够准确的分析出可能有影响的地方,并补充测试。

达到这样的程度(或者达到这样程度的80%以上),相信对于版本的快速迭代以及质量都是很有帮助的,而且对于测试团队以及测试人员的成长来说,也是比较好的。
  
那么,怎样才能够达到这样的程度呢?
   1
、整个团队自动化的程度非常高,只要是老模块全部实现自动化了。
    2
、整个团队对于产品内部业务逻辑非常清楚,甚至达到研发的程度(不用到代码的每行),能够对研发的设计提出有效的意见,并能够指导研发进行设计。
    3
、整个团队成员的质量意识非常高,会有应该是自己发现的

bug结果没有发现感到羞愧的思想。

4、整个团队具备前期测试和缺陷预防的能力,能够更开发一起配合在前期就做好相关工作,比如:前期的缺陷预防,测试方法研究等等!

达到这样的程度后,整个团队至少有部分人应该具备如下技术能力:
1
、自动化开发能力:这样的人员越多越好(至少要有1/3以上),这样能够让自动化成为一种常用的改进技术,让自动化成为一种习惯。
2
、业务能力:对于产品的内部实现和整个业务逻辑都非常熟悉,能够有效的指导该模块的设计,并且发现该模块的问题能够自己定位。至少每个模块都找得到这样的人。
3
、单元测试和接口测试能力:能够在前期通过对代码或者借口进行测试,尽量在前期就能够保证质量(需要
学习相关的开发语言)。
4
、对于产品的理解比较深,能够有效的指导产品后面的改进方向。
5
项目管理能力,对于一个不大的团队来说有2-3个差不多了。

二、挑选合适的人员
理想的测试人员应该具备如下几个特点:
1
、有激情:这是杰克韦尔奇最认可的一点,笔者深有同感,相信对
生活有激情的人,对工作也同样有激情。
2
、喜欢测试:有探索未知世界的好奇心,能够在测试中找到成就感。
3
、热爱技术并且有一定的技术能力:老实说,测试入门是技术门槛相对比较浅的,但是真的要做到很好程度确实需要比较好的技术,比如:上面的几点,都是有一定的技术门槛的,只有热爱技术的人才会愿意去主动去深入学习技术。
三、如何实现目标:
1、团队的文化和制度:所谓无规矩不成方圆,如果一个团队要健康的发展,团队的文化和制度是非常重要的。当然,我们团队的文化和制度也是为了更好的实现我们的目标而服务的,比如:我们期望大家主动去学习模块的原理知识,那么我们就可以形成这样的文化和制度。并且有了制度后一定要坚决的去执行(但是可以更加的人性化),然后根据大家的意见去不断的完善制度和管理。没有制度的话很难保证团队的执行力,那样目标也很难实现,所以,这个非常重要,也是一个初入管理者很容易出现的问题。
2、业务熟悉:对于早期来说,我们的直接学习对象肯定是开发,学习的资料大概就是需求文档和设计文档,这个时候可以让测试人员每个人负责一个模块,先去学习设计文档,并且要求测试人员自己能够画出该模块的整个业务逻辑图,并且跟研发确认是ok的(要求内部培训和讲解,并请研发过来旁听)。

然后根据业务逻辑图分析可能存在问题的地方,并结合代码进行详细分析(这个时候可不要求测试人员具备单元测试或接口测试能力),后面测试的过程中发现问题后,自己能够尝试的定位问题,并且完成一份模块的定位问题经验文档。(后面随着自己的深入学习来不断的完善)

3、自动化:自动化的起步确实是很难的,刚开始的成本很高,再加上项目的工作本身也比较紧,这样很容易让团队对自动化望而止步。但是,经验证明自动化的工作确实是越早开始研究越好。一个比较好的方法是团队负责人自己先花时间去分析下,目前哪个功能模块的测试是重复率最高的,并且实现难度稍微比较小的(模块的选择很重要),然后思考如何去实现自动化(多关注同类产品,看下别人是怎么做的)。      确定好怎么做后,如果自己技术比较好的话就自己尝试去实现(推荐方式,当然也会花费自己的一些额外时间,但是肯定是值得的),如果团队里面有更适合的人的话,则可以自己去承担对方的工作(比如:测试任务),然后让对方投入时间去做这件事情(当然,这个人一定要选好)。

等到有效果后(这部分的工作能够节省下来),这个时候就可以利用节省的这部分时间继续做这个工作了(相信上面看到效果后也会提供更多的支持),通过这种方式持续改进应该会比较好。

4、接口和单元测试:对于整个模块的业务逻辑比较熟悉后,这里需要的另外一个能力就是我们对于开发使用的语言本身也比较熟悉,至少静态走读开发的代码没有太大问题(当然,可能一个团队这样的人不会很多,我们可以先培养这样的人)。

并且随着我们的自动化工作已经有了很大效果后(这个时候大家的代码开发能力实际上也比较好了),就可以专门投入人员做这些事情了。当然,这个需要跟开发的配合,但是前面2者做好后,后面的改进其实就是水到渠成的事情了。而且也最好是先完成前面的2点,再开始第3点,毕竟步子迈大了容易扯着蛋。

将以上几点的目标进行细化,具体要做到什么程度?怎么去一步一步去做?每一步的完成时间点是怎样的?如何评估是否达成该目标呢?将这些问题搞清楚后就可以开始做了,定期分析和总结,相信应该是能够达成上面的目标的。


 技术人员的培养能力:

技术的发展需要对应的技术人员,而一个好的技术团队肯定是要求整体的团队成员技术都能够持续提升。所以,人员的培养能力也是一个测试架构师很重要的能力,那么如何去提升技术人员的水平呢?

每个人培养人员的方式都不同,下面主要的3个步骤,然后过程中不断的总结和完善。

1、根据技术人员的特点来制定技术人员的培养方向和目标。

2、过程中不断的指导、跟踪来帮助其达成自己的目标。

3、能够识别出团队当前的技术短板,并且能够找到合适的人员来培养。

 

 新技术的研究工作:

作为一个技术人员,需要随时保持对于技术的热情,而作为测试架构师,对于这块的要求也很高,否则整个团队的技术可能很容易碰到瓶颈而难以突破。那么,如何去做好新技术的研究工作呢?下面几个方法提供下参考。

1、不断的发现当前的技术问题并且解决。

2、能够及时的发现业界的一些好的技术并且引入进来,来进一步提高测试效率。

3、不断的思考当前的测试质量和测试效果可能存在的技术问题,并且有好的解决方法。

 

   从上面来看,对于测试架构师的要求还是非常高的,而要达到测试架构师或者说一个好的测试架构师级别,也确实是一个很难的事情,需要我们保证对技术和测试有着持续的热情,这样才能够不断的前行。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 12032
  • 日志数: 14
  • 建立时间: 2014-03-16
  • 更新时间: 2014-03-16

RSS订阅

Open Toolbar