自动化测试团队组建与建设

上一篇 / 下一篇  2013-09-23 12:41:43 / 个人分类:QTP脚本技术

对于软件技术行业,人无疑是最重要也是最有价值的资源。一个好的自动化测试团队是我们能够成功开展自动化工作的基石。基于自动化团队组建与建设经验,浅谈点自己的看法。

什么样的自动化团队是一个好的自动化团队,个人认为应该从二维角度来看待,一个维度是自动化团队人员特质,另一个维度则是团队人员配置和被测项目架构能够很好的匹配。

先说自动化团队人员特质这一维度

1.      技术能力

自动化技术是一门相对来说比较专业的技术,没有一定工作经验,很难开发出稳定且易于维护脚本。因此我们要根据团队需要选择合理的自动化技术人员。选择应该基于目前团队现状,例如前期缺少架构人员,可以更关注与寻找一些具有一定自动化框架设计和实现能力的自动化人员,后期脚本基本开发完成,可以需要的具有脚本维护能力的人员。以常见的QTP自动化技术来说,一些自动化测试人员采用混合驱动框架思想设计的一些自己框架,在团队组建前期这部分人员我们可以优先考虑。后期,可能更关注与一些调试脚本的能力,例如调试代码的常用的一些快捷键使用,Debug view功能的使用等等。如果团队需要开发自动测试控制台,这部分则可以与开发团队合作共同开发,或直接与开发团队商量借用一些特定开发技术人员,而不需要特定寻找一些人员,例如C#程序设计开发人员。因此在团队建设过程中,团队人员技术能力提高和培养是很需要关注的。

2.      沟通能力

沟通至关重要,一个好的自动化技术人员是专业的技术领域很牛,沟通能力也很牛。有技术没沟通,是才而不是能,工作中我们需要的是有才能的人员。在工作中我们需要跟组内同事沟通,可能还需要跟管理层沟通,或其它项目组同事,沟通技巧是一门很专业的学问。现在很多大的公司都会在外面找一些专门的培训机构来对公司内部员工培训,如果有这资源,应该鼓励团队成员多去学习此类知识。如果没有这类资源,那我们也要通过一些其它手段来提高团队成员这方面的技巧。

3.      逻辑思维能力

自动化脚本是实现手工的Case为自动化的Case,由手工执行变成机器执行,而这些Case都是有逻辑技巧的,在编写脚本代码过程中,如何提高我们脚本的逻辑性,使我们的脚本逻辑清晰,结构合理,不仅仅是自动化架构人员的关注的,每一个自动化测试人员也都应该关注,并提高自己的编码逻辑能力。除此以外,对测试数据准备,根据业务场景的逻辑,我们也需要具备一定的逻辑思维能力才能更好的准备出合理的测试数据。更何况对于开发人员来说,无论是脚本开发还是程序开发,逻辑能力都至关重要。举个例子,如果For循环的逻辑都理不清,还如果进行开发工作呢。因此这方面在团队建设过程中,我们可以在开展代码Review和开展头脑风暴这类会议过程中针对不同特点人员,刻意的来提高其逻辑表达与逻辑思考能力。

4.      创新能力

创新能力这是各行各业都梦寐以求的,看苹果的乔布斯就知道其价值所在。对于自动化团队来说,我们要在团队内部鼓励创新,例如估计大家对已有的框架提出改善意见,对现有自动化工作流程提出改善意见,编写一些辅助自动化测试工作小工具,来提高我们的自动化工作效率。例如以配置ODBC来说,通过程序提供的ODBC Drive可以手工配置,那是否能直接写一个Function来通过修改注册表实现呢,答案是肯定的。以及一些其它的,例如自动化控制台,代码自动生成器的一些的自动化测试辅助小工具等。可以给一些特定人员提供一个思考方向,鼓励他们去思考去创新。例如对于自动化测试报告,你能自动生成哪些图形清晰直白的告诉我关于你脚本测试结果呢?当然这方面的在团队建设过程中要注意把握度和时间段,要在保证不影响正常工作和进度前提下来开展。

5.      学习能力

学习能力这是干什么都需要的,这方面在团队建设过程中相对是容易有产出的。但同时也是最难的。每个人都有惰性,如何提高学习的极性,这得要针对不同人特点给出不同的方法,但一些通用做法也能起到一定效果,例如项目组内部开展一些大家感兴趣的课题研究与讨论,建立知识分享体制等等。

其它一些关于团队文化建设,团队认同感,信任感等等这都是每个团队都需要关注的,采用方法也可以借用,就不一一说明了。

再说团队人员配置和被测项目架构能够很好的匹配这一维度。

1.      选择合适的自动脚本开发团队结构

举例说明我们的程序结构不同,版本更新迭代周期也不同,因此在自动化团队组建与建设过程中我们要让我们的团队切合程序结构。具体来说明,例如程序有前台UI方面和后台基于LinuxServer方面,那么首先我们要分析,是否可以分开进行测试,如果可以,并且已经有了对应的手工测试组和测试用例,那我们可以先建立Server方面的自动化团队,寻找一些精通Linux Shell编程或者Perl,Python编程的这一类人员来完成server端自动化测试脚本开发工作。后进行UI方面的。为什么呢?因为Server端测试受到UI变动影响很小。相信很多自动化开发人员对由于程序UI变化而不得不对脚本维护的人员深有感触,如果UI测试,UI变化很大,那对UI的自动化测试脚本就是灾难,这也就是为什么很多自动化专家都共同认可的,自动化要在程序后期,程序基本稳定后再开展。如果只有UI测试,那么就看UI是否适合做自动化了,如果适合那组建一个UI自动化测试团队。如果程序适合用做接口测试,那就组建对应接口测试团队。因此我们自动化测试团队需要根据程序架构,和已有的手工测试团队,覆盖到Server测试,接口测试,UI测试一部分或全部。而不是紧紧局限于哪一个部分。这样团队成员结构清晰,分工明确,技术点各自有所擅长,利于提高工作效率和团队的健康发展。

2.      给团队成员自由选择测试工具的自由。

选择合适的自动化测试工具需要考虑很多方面。自动化测试人员都会有自己擅长的自动化工具和自动化经验,合适的人使用合适的工具做合适的事,同样的资源产生的效率和效益才会最大化。因此我们不应该限制团队成员在这方面选择的权利。如果有合理的建议,觉得使用自己推荐的工具可以提高效率,那提交申请,评估后,可以允许其进行实践性开展。实践是检验真理的唯一途径。所以通过实践结果分析对比。我们选用最优方案。举个例子,如果团队成员中已经有一部分擅长QTP,一部分擅长selenium,之前大家进行WinForm程序,都用的QTP,那现在新项目改为WEB,那么一部分人擅长Selenium的可能想要改用Selenium那如果这部分人确实实践结果证明其效率更高,效益更好,那我们可以组内的自动化,保留QTP和Selenium共同存在。所以一切以实际为主。给团队选择合适的工具和技术架构自由。

3.      根据公司大小和现状选择合适的自动化团队开发模式

一个好的自动化团队是要符合公司现有流程和现状的,大的公司因为有了很规范的测试开发流程,有很高的测试技术人员素质,所以对应的自动化流程都有其特点。而这一类团队的开发模式未必在一些中小公司就适用。也许一个大公司自动化团队在中小公司会出现,效率低下,和项目其它成员矛盾冲突增多问题。所以自动化团队一定要根据公司现有开发流程和手头人员现状来决定自动化开发团队的开发模式。目前主流模式是两种,其它也都是这两类的变体。一类是,手工测试人员和自动化测试人员不分开,即手工测试人员也是自动化测试人员。既要完成手工测试任务也要完成自动化测试任务。另一类是手工测试人员和自动化测试人员分开,有专门的自动化测试组来开展自动化测试脚本编写和手工测试人员一起完成项目的自动化和手工测试工作。这两类都有优缺点,具体优缺点分析起来估计要几千字,在此就不累述了。所以不能说哪一类更好。适合公司现有流程,团队资源现有能力的自动化开发模式就是好的模式。

浅谈点个人看法,欢迎各位同行分享自己的自动化测试管理经验


TAG:

 

评分:0

我来说两句

Open Toolbar