step365he
文章长,可读性却很高。
--
***简介***
本访谈分两部分,业界分析师就关于电子商务趋势是如何影响测试团体这个问题交换了意见。这些专家来自广泛的开发团队--项目经理、分析师、测试人员--可能没有人会比测试人员更加感受到当前这种趋势带来的冲击了吧。测试人员的任务就是使用非常有限的资源、面对马上就要结束的项目期限,确保复杂应用程序的质量。
作者记录了三名受人尊敬的测试专家和分析师的看法与观点:Theresa Lanowitz,Gartner公司的研究执行官;Hung Nguven,LogiGear公司的董事长和CEO;以及Sam Guckenheimer,IBM的自动化软件质量高级技术执行官。在访谈的第一部分中,他们交流了测试人员所面对的挑战,以及迎接挑战所需要的技术、技能和策略。第二部分集中了讨论有关架构变更是如何影响测试和自动化测试工具的问题。
***技能***
让我们先从讨论技能开始吧。在过去的两三年中,分布式应用程序的爆炸式发展是如何影响测试人员所需的有效的技能和领域知识的呢?
Hung Nguyen,LogiGear:我认为这种发展带来的影响是巨大的。在过去,在测试环境中要进行的所有事情都是非常独立的。您拿到了一套交付的产品,开始运行安装程序,然后进行测试。但是,当使用更加分布式的,或者电子商务的模型时,测试人员就要面对两个主要的问题了。第一个问题,在技术方面,所有的事情都发生了变化。由于您的系统可能使用分布于各个地方的组件,一些是您的团队开发的,一些是第三方组件,所以您无法控制您的环境。这样,仅仅是了解环境并且弄清如何进行有效地测试就是一个很大的技术挑战。
第二个问题,在业务方面,规则也有所改变。过去,用户购买软件包,安装后就可以使用。现在您的用户可能购买软件包,或者他们可能仅仅使用您的电子商务基础设施进行业务交易。所以,在业务的基础上,测试人员还需要进行学习才能有效地工作。例如,考虑性能方面,这只是测试的一个角度。在新环境中,测试人员需要了解非功能性的问题,例如,什么是性能?我如何才能得出"合理的"响应时间,并且对其进行测试呢?这些都是他们在功能方面不总是能够看到的。另一个要考虑的方面就是进行安全的测试。测试人员需要询问,我如何才能知道我的用户是否受保护或者业务是否受保护呢?这些正是测试的灰色区域,因为几乎没有几个测试人员知道如何有效地进行这种测试。
我们已经开始意识到要使测试有效地进行,您需要具备技术技能。因为该领域还不是那么的成熟,我们的测试团队中还有不懂技术的人员。目前,在业务逻辑和用户级,这是无可厚诽的。但是您也需要弥补技术方面的缺陷。直到所有人都了解到我们需要技能熟练的人员进行工作时,我还认为测试人员,会非常不幸地,一直处于发展不充分的状态,并且平均起来挣得较少。在理想情况下,技能熟练的测试人员与开发人员所了解的技术知识应该差不多,因此理应拿到同等的报酬,或者与他们的能力相匹配--而且管理层应该了解这个道理。如果工资结构有所改变,为将更多的天才人员转变为混和工程师添加了预算的话,那么更多的开发人员就会有兴趣成为一名测试工程师。
Theresa Lanowitz, Gartner:即使我们已经看到了分布式应用程序的爆炸式发展,我们还没有看到技能方面的爆炸性发展,对于开发人员或者测试工程师来说都是如此。使用许多分布式应用程序的话,应用程序就是业务。突然间,企业的应用程序都是面向客户的,在传统企业中的IT组织现在都负责创建创造利润的产品,而不只是应用程序。
但是技能并没有什么发展;实际上,我认为它们还有所减退,因为越来越多的企业都匆匆忙忙地创建这些面向客户、利润驱动的产品,他们无法找到技术足够熟练的人员,所以他们常常雇佣那些没什么经验的人员。回到1999年和2000年,我们看到了许多这样知名的网站以失败告终。在大概相同的时候,您听到过许多有关测试工具的大肆宣传,说它们是如何地易于使用,您不必了解技术就可以使用它们。但是我认为这样传达了错误的信息;您确实需要具有技术技能以完成我们所希望的对应用程序的测试。
而且,分布式应用程序只会变得越来越复杂。从发展的角度看,您可以知道使用大型机应用程序的用户是谁,您也可以了解使用了什么样的架构。然后出现了客户端-服务器应用程序,后来又进入了Internet世界,而现在有了无线的应用程序。为了从测试的角度处理这种新出现的复杂情况,您就需要使用熟练的质量工程师--就是那些既了解过程又明白质量工程内容的人。
公司都了解这个情况,但是几乎没有哪家公司愿意这么做。通过调查,我们知道让职工具有坚实的技术技能是企业最关心的问题。不过,他们最不可能做的一件事就是花钱进行培训。所以,这是一个一直存在的问题。
另一个问题就是测试常常是开发组织需要削减预算时首先要考虑的事情,测试人员也可能被认为是入门级的角色,或者将测试看作是您在成为一名开发人员之前,首先要接受的岗位。正如Hung指出的那样,测试人员确实没有被给予与专业人员同等的关注和应有的尊敬。所以,组织常常重复地出现相同的问题,因为他们还做得不够,核心测试人员还不具备原理性的知识。
Sam Guckenheimer, IBM Rational:所以,我们正在讨论的就是,以前人们认为不需要具备关于正在进行测试的软件的深入技术知识,也可以进行测试,但是当面对分布式应用程序时--尤其是在Web上的应用程序--这个假设就站不住脚了。Hung的一本有关测试基于Web应用程序的书极好地解释了这一观点。测试人员需要知道技术是如何影响他们所发现的错误和风险的种类的。他们需要理解技术问题--例如部署拓扑--就像理解他们进行测试的技术所内在的错误种类一样。甚至要了解一些细节,例如在应用服务器上bean管理和容器管理持久性之间的差异--所有这些问题都对会影响到您将要发现的错误的种类。现在的测试人员需要了解技术以及相关领域,同时也要掌握通用的测试技巧。
例如,假设您在浏览器中看到一条错误信息"404-Page not found"。这种错误可能是由于一个损坏的链接引起的,或者也可能是由于某些服务不存在。一名优秀的测试人员不仅仅应该对不存在的服务产生疑问,而且也应该能够肯定他的这种怀疑--例如,通过查看其他与该服务有关的页面来判断。这是分离判断错误的关键技术。
另一项技能最近也受到了广泛的关注,也就是测试人员是否具备一名优秀探索者的能力。从历史角度来看,测试所要进行的许多内容都已经被高度脚本化,并且进行了周密的计划,但是,实际上,优秀的测试人员应该是优秀的探索者。他们可以发现可能作为提示的东西,而且知道如何在此基础上进一步探索。这些提示可能非常简单,例如某个页面的加载时间惊人地漫长。一名优秀的测试人员会怀疑,这意味着什么呢?而且知道接下去应该采取什么策略。James Bach 编写了一些有关探索性测试的最佳资料,而且对该主题也进行了深入的运用。我认为这当然是一种关键的技能,也是测试团队需要具备的技能。
***压力***
多年来,组织不断地努力"更快地、更好地、更节省地"开发软件,测试人员的存在只是保证要实现"更好地"这个方面。现在,测试人员是不是要承受更大的压力解决"更快地"和"更节省地"这两方面问题呢?
Theresa Lanowitz:我们真正在谈论的其实是使用了多年的选择三角形:预算、日程还是质量。您的问题认为测试人员的存在就是为了保证"更好地"这个方面;但是他们确实能够做到吗?请考虑一下,测试工程师已经被强迫赋予了一种角色。在传统的瀑布式开发中,测试仅仅在应用程序将要付诸使用之前的一个很短的时间段内才开始进行。测试工程师实际上从没有在开发过程中使用过用例或者测试用例。而且如果开发期间的日程安排有所顺延,那么测试工程师就遭殃了。我认为测试人员并不总是能够保证"更好"。
上一篇:软件测试与可靠性评估方法研究 下一篇:WEB安全测试所需的基础知识纲要 |