软件测试生存法则:以人为本的策略

2010-12-01  张玥晗 

      随着软件工程的大规模和大范围的发展,实现单一程式的方法变得越来越多。各种可能路径的组合爆炸很容易就达到数以亿计甚至更多,如此一来,要想测试完全的可能性就变得微乎其微了。软件模块之间的动态交互,以及经过修改之后的哪些功能需要重新测试的问题。再者,程序员经常都是极不情愿去做测试工作的,而且,大量的研究表明,无论如何开发人员都不应该测试自己所写出来的程序。因此,独立的测试团队应运而生。

  建立、激励、管理这些团队(指测试团队)是一个艰巨的任务。测试组就像一个夹心,夹在开发人员与客户之间。在寻找错误的时候,测试员必须冷酷无情,然而,又不能进行彻底完整的测试,否则这个产品永远都上不了市。管理层应该知足了,因为测试时所花费的努力都是物有所值的,就算延期也是值得的。

  十大挑战列举如下:

  10) 寻求测试培训

  随便的找一些人来进行测试工作是一种极大的资源浪费。测试是一个需要具备策略,能力以及自豪感的职业,这些素养需要经过培训才能逐步获得。

  9) 建立与开发人员的良好关系

  测试人员与开发人员天生就是死对头。就算大家的目标是一致的,也会很容易就陷入一种对立状态。

  8) 没有工具的测试

  如果可能的话,尽量避免出现这种情况,因为手工测试容易出错。很多时候,(通过工具)发现一个严重的缺陷就已经能够抵得上大多数工具的花销。

  7) 让管理者了解测试(的重要性)

  测试不仅仅被放在了软件周期的最后一步,还经常被认为是可有可无的,这一点从测试的经费预算中就可见一斑了。在内部测试中找到一个缺陷所需要的花费,仅仅是用户找到一个缺陷的花费的零头,(而管理层却没有意识到这一点,为了节省这么一点点的支出,而不愿意执行测试,)这是非常短视的做法。

  6) 与客户(用户)保持良好沟通

  测试不仅仅是在代码中寻找错误。测试的一个重要组成部分是:确定开发人员已经做出来的功能是不是客户(用户)需要的功能。这就意味着与客户(用户)保持良好沟通是必不可少的。

  5) 安排好测试时间

  这可能是所有挑战中最为困难的一个了。很多时候,产品开发已经经过了一年甚至更长的时间之后,才开始进入测试阶段。毫无疑问,这个时候公司早已经为该产品登了广告,如果它具有一定的吸引力的话,就会有客户期望这个产品早日完成,然后购买。假如真的就出现这种情况的话,要想为测试争取足够多的时间就变得难上加难了。

  4) 测试“翻墙”产品

  当开发人员完成开发任务之后,就会把它扔到墙的另一边的测试人员手里;测试人员如果发现了产品有缺陷,又把它扔回给墙的另一边的开发人员手里。(这就导致了沟通不畅,工作效率低下,甚至会增加成本。)要是他们改用面对面的沟通的话,这样的效果是不是更好呢?

  3) 满足不断变化的需求

  这应该是第二难度的挑战了。一个模块的修改可能会影响到其他模块,如何才能将持续不断的测试与缺陷修复这两个复杂的任务统一起来呢?

  2) 解决两难问题

  由于想进行彻底的测试是不可能的事情,并且还有很多的外力因素令到测试要停止下来,因此,必须在某个适当的时期放手。那什么时候才可以放手呢(停止测试)?这就是软件测试的精髓所在。

  1) 学会说不

  很多时候,测试人员必须站出来说这个软件还不能交付使用。但要做到这一点,需要具备无比的勇气、坚定的信念、奉献的精神以及积极的态度来坚定自己的立场。

278°/2760 人阅读/2 条评论 发表评论

袁帅  2010-12-01

写的好


付民  2010-12-02

好,顶下。。。


登录 后发表评论