敏捷中自动化测试策略
2013-03-19尹宇
尹 宇
(施耐德电气(中国)有限公司西安分公司AOCC 陕西 710075)
0 前言
自动化测试是我们应用在敏捷中的类似万能的法宝。但是世界上没有万能的东西。这个就需要我们深刻理解自动化测试,并且有好的测试策略来应用在自动化测试中。
1 自动化测试中人员的选配
我们的测试团队中,人员的选配是,有专门的测试人员,但是开发人员也会在时间不够的情况下,加入测试的队伍。在一个敏捷的团队中,测试人员一般也是具有一定的编程能力的,当与开发人员沟通一个BUG的时候,能理解开发人员的话,沟通更加顺畅。并且在项目需要的情况下,也会加入开发的队伍中。
2 可以和不可以自动化的测试
2.1 可以自动化的测试
当代码改变,有新的代码迁入迁出的时候,这个时候,需要触发自动化构建。我们通常使用Jenkins这样的持续集成工具,用于做重复的工作。
自动化单元测试,我们通常应用junit的单元测试工具,进行TDD(测试驱动开发)。
在UI比较稳定的情况下,做GUI测试。
在回归的时候,做功能性测试。
在接口测试,我们可以用Excel,把测试数据放入其中,并且跟实际数据进行比较。
负载测试,我们就必须用自动化了。因为手工测试肯定不准确。我们可以找一些开源的工具来测试。
2.2 不可以自动化的测试
对于可用性测试和探索性测试,我们需要手工去执行。
3 自动化测试应用的时机
3.1 自动化测试的应用的原因
手动测试的时间远远大于自动化测试。一些重复性的工作最好应用自动化测试。回归测试的时候需要自动化。自动化可以发现手动中一些发现不了的BUG,比如内存泄露。
3.2 自动化测试的应用的不同部分
在一个敏捷的团队中,测试可以有自动和手动测试,比如功能测试。必须手动的测试,比如探索性测试。必须自动化的测试,比如单元测试,性能和压力等。
3.3 自动化测试的应用不同时机
初始的投入,对于自动化测试来说,是很大的投资。我们首先评价我们已经已有的工具,看其价值,和应用的复杂度。一般来说一些开源工具,也可以满足我们的需要。而且这样的投入一般是有意义的。
对于变化非常频繁的代码。我们可以根据功能和目的去组织代码。
如果开始自动化呢?并不是非要股买昂贵的商业工具。一般来说,自动化开始于单元测试,这样收益是很大的。接着开展可以用于自动化的测试,我们可以选择一些开源工具。我们并且用一些自动化的构建工具,比如JENKINS等。我们可以选择开源的功能性验证工具,比如selenium等。
4 组织测试
在敏捷开发中,高效的沟通同样也适用于自动化测试。因为在迭代开发中,当我们用自动化工具发现昨天的测试用例,今天的版本失败了。我们就必须立刻去找开发沟通。看是,更改那些地方了,需求是不是有变化了。以便,我们的自动化测试,适应迭代的变化。
在整个团队中,开发会更多的考虑代码的可测性,有的时候,还会给测试人员提供一定的接口,来实现自动化测试。
工具的选择很重要。在我们的测试团队,我们有TC,但是selenium对功能性的验证测试,有很大的好处,又比TC好学。就用selenium了。对于开源工具很多都是比较好上手。但是,对于商业工具,虽然感觉上很好。但是,在我们实际的应用的时候,发现,难学,代码维护繁杂。如果,我们有商业工具的专家,那么用商业工具,更能保证项目的质量。
5 结 束语
自动化测试策略的应用,对于我们实现自动化,是必须经历的过程。好的而自动化测试是质量保证的利器。
[1] Sehwaber K,Beedle M.Agile Software Development With Scrum[M].[S.1.]:Prentice Hall,2001.
[2] Jonathan Rasmusson.敏捷武士看敏捷高手交付卓越软件.李忠利,译.人民邮电出版社.2012
[3] Lisa Crispin, Janet Gregory,著.敏捷软件测试:测试人员与敏捷团队的时间指南.孙伟峰,崔康,译.清华大学出版社.2010
[4] Martin R G.敏捷软件开发一原则、模式与实践[M].邓辉,译.北京:清华大学出版社,2003.
[5] Kniberg H.硝烟中的Scrum和xP一我们如何实施Serum[M].李剑,译.北京:清华大学出版社,2011.
[6] Mike Cohn.用户故事及敏捷方法.清华大学出版社. 2010
[7] 陈能技,著.QTP自动化测试进阶.电子工业出版社.2010