Kaspar van Dam自2005年以来一直在测试领域活跃着,且自2009年起就专攻测试自动化和性能测试。他在许多公司当过测试工具工程师和测试顾问。他的经验覆盖了测试自动化和性能测试的技术实施以及该工作领域的不同管理与协作任务。在他的公司(荷兰Ordina公司)里,Kaspar是测试自动化的思想领袖之一,负责一部分公司愿景发展和建议。他还负责一些关于测试自动化和性能测试的业务课程。 |
测试工具:人们总是认为测试工具是每个测试难题的解决方案。有了工具实施,测试就会进行地很快,质量更高,自然也更便宜…… 可惜现实却是,测试工具实施要花上不少钱,而且投入还不一定有回报。到底为什么测试工具实施经常失败呢?
测试工具是什么?
为了了解测试工具实际是什么,首先考虑一下我们可以识别哪种测试工具很重要。人们通常认为测试工具只是用于自动执行测试的工具。但是,远不止如此,它们还是:(测试)管理工具;bug追踪工具;版本控制工具;一般性(如:电子数据表)工具;自动代码测试工具;性能测试工具;当然还是自动执行测试的工具。
一般来说,测试工具帮助测试员做测试工作并使之更高效。这就是说,测试员可以利用工具更快,更好,更便宜地做任务。但是,测试自动化的这些好处没有一个可以保证。一切要看怎么使用工具及它们该如何被使用。
测试工具的实实施
大多数在IT业工作的人对许多IT实施失败一点也不惊讶。查一下失败率,你会发现基本超过50%。但是,当一个组织决定实施一个测试工具时,突然人们就会期望实施不会遇到任何障碍。自然,将一个大型IT实施与一个相对较小的测试工具的实施相比较是不公平的。但这两样都在最终软件实施中确是事实。也意味着有风险和失败的可能性。既然我们已经肯定了这个事实,那么看一看可能会失败的事也不错。
在高水平上,这些可以被分为三个单独的元素:
▪▪人
▪▪流程
▪▪技术
我将反序谈谈这三个元素以及它们在测试工具实施中所扮角色,首先是最不重要的元素——技术,最后是最重要的——人。
技术
讲到测试工具,多数人立马会想到技术。一份测试活儿在选定平台上吗?它适合其他工具和/或被测软件吗?有足够多的硬件去运行工具吗?显然,这些都是实施测试工具时很重要的问题。如果工具不起作用,那它还有什么用呢?这就意味着一个测试工具的实施(或任何其他工具),非常有必要调查特定工具后的技术并将之放在组织内使用的技术一起。然而,正如之前所提到的,技术是实施测试工具时最不重要的元素,因此在试着实施测试工具时要最后考虑它。比它更重要的是就绪的或将被设计的流程和该工具将在这些流程中采用的部分.
流程
在我们开始谈论实施测试工具中流程的重要性前,让我们先看看“流程”到底是什么。牛津字典将它描述为“为了实现某特定最终目标而采取的一系列行为或步骤”。一个流程的行为或步骤是一系列的一部分,表明它们要按特定的顺序进行。这一系列动作的目的是获得特定结果。充分测试测试特定SUT以保证软件的特定质量水平。那么一个测试工具在这样的流程中起着什么样的作用呢?基本上,一个工具是用来使使用它的人生活的更轻松;它应该帮助任务更高效。因此,一个工具帮助流程就绪,例:通过让用户按特定顺序采取特定动作。也可以帮助使特定动作更简单且/或更好且/或更快。谈到一个项目中的测试工具时,就必须决定应该或可以用特定工具改进流程的那个部分。测试工具并不是一个小玩意。它不是要让你的同事对你用的新技术钦佩。它是改进流程以便更快、更好、更便宜地实现目标。在说任何工具或技术前,有必要问问你自己“为什么我们首先想要实施工具?我们真的需要工具吗?”最好再问问“我们能改进流程吗?”——丝毫不考虑使用工具!
现在,如果组织内部现存流程事实上可以改进且一个工具可以有效帮助改进,那么这时候就该决定哪个工具能够做到改进流程。将需求列出来或许是个不错的开端——考虑一下must-haves, should-haves以及could-haves。不看技术。忽略需求或要求或许很诱人,因为你觉得他们无法满足现在的技术。当你列出可能会改进流程的工具需求时,就是时候看看特定工具和技术了。但是,看你的(现在或将来的)流程时,一定要考虑:任何流程都可能会在取得目标时失败。这就把我们引向了看测试工具时最重要的因素:人。
人
人可以创建或破坏任意一个项目。没有专注的人,最终任何项目都会失败。因此,人是迄今看测试工具时最重要的因素。实施测试工具时,首先要考虑的就是讲使用工具的人。当人们对现在的流程感觉满意且不懂为什么要改动时,那么最聪明的做法就是一点儿都不要改动。或者你可以让相关人员看到需要改进的原因以及改进后有啥好处。审视人这一要素尤其是测试员时,不少迹象表明需要对现在的流程做出改进,测试工具的实施要适当。例如:
▪▪测试员不再认为其工作有挑战性了。它成了一项例行公事。
▪▪测试员努力找出做手头任务的动力;他们更想接触新事物而不是一遍又一遍地执行同样的老测试。
▪▪测试员觉得他们的工作过时了。
▪▪测试员喜欢新技术的挑战,甚至可能为了最先进的测试工具是日常工作一部分的工作而离开当前工作。
▪▪测试员以前已经用过测试工具且信任它们。当这些迹象在一个项目中呈现出来时,明智的做法是深入调查工作上到底正发生什么。要做的事之一就是挑剔一下现在的流程,看看它们是否仍然可行,是否可以改进。测试工具的实施或许可以帮助改进流程并使测试员在他们的日常工作中更开心。但是,把事情安排地有条不紊很重要。一个测试工具绝不能成为任何问题的解决方案,它只能帮助解决问题。因此,审视测试工具的成功实施,总会按顺序用到人,流程,技术。人应该被包含在内,且大多数会选择改进流程。需建立流程并使之在引入新测试工具前要达到成熟的水平。做到这一点,那么就是时候考虑工具和技术。
为何测试工具实施会失败?
既然我们已经了解了人-流程-技术顺序的重要性,就有可能回答“为何测试工具实施会失败?”回答通常是技术被放到人和流程之前。当一个流程还不够成熟,那么工具绝对无法改进流程的。最大可能是强调流程仍没效率这一点。因此,在一个失败的流程里引入一个测试工具只会使问题更严重而无法帮助解决问题。当优先考虑技术而非人时,更有可能测试工具实施会失败。当人们对其在做的工作不满意时,单单一个工具也不能让他们突然满意起来。
生产效率低时,可能是流程出了什么问题。工具不会自动提高生产率。最后,当引入一个不被人们支持的测试工具时,实施必定失败。人们应该看到改进某特定流程的必要性,且应该意识到引入一个特定测试工具可能最后能帮助更高效地完成他们的工作。如果一个组织没有把这三点按序排好,那么“有了测试工具,傻瓜仍是傻瓜”这句话就成真了。或者换句话说,一家只为实施测试工具而实施测试工具的组织终会出丑的。
版权声明:本文出自 SPASVO泽众软件测试网:http://www.spasvo.com/news/html/2014928133423.html
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |