测试的革命

瓦特发明了蒸汽机,从而引发了工业革命,率先完成了工业革命的英帝国借此成了日不落帝国。软件测试界随着各种高级语言以及自动化测试工具的诞生,“工业革命”实际上业已发生。正如同工业革命是以“用机器制造机器”为革命完成的标志,测试的革命将会以“用软件测试软件”为最终的目的和完成的标志,而能够正确开展“测试的革命”的企业也必将成为未来最具竞争力的企业。
    那么,“用软件测试软件”究竟需要怎样使用软件去测试目标系统?是否需要测试员能够完成每一个测试程序的编写?
    我坚信:“用软件测试软件”并非在任何条件下都是测试方法的最佳选择;测试员根本不必对每一个测试用例(testcase)编写测试的程序。这是由下述原因决定的:
    1、测试员的职责。
    测试员的职责在于尽可能找出目标系统中存在的缺陷。至于找出缺陷的方法,从来没有要求,也不应该有所要求。测试员可以通过手工测试(manual),可以通过自动化测试(automation),更可以通过阅读需求文档和设计文档找出缺陷。
    测试中最重要的原则就是尽早测试,尽早修改。在能够通过阅读需求/设计文档,或者只进行简单的手工测试就发现错误的情况下,“用软件测试软件”决不是聪明的选择。对于测试员而言,这时就完全没有必要编写测试程序了。
    2、自动化测试的目的。
    工业革命的目的不是为了使用机器制造机器而使用机器制造机器,而是为了降低制造机器的成本。自动化测试的目的与此非常的类似,企业进行自动化的测试,是为了减少总的测试成本。例如某一条testcase,如果单纯使用手工测试,每个测试版本(build)执行这条testcase一次,需要10分钟。如果系统测试阶段需要n周,每周一个版本,那么整个测试活动花在这条testcase上面的时间就是10(分钟/版本)*n(版本)=10n(分钟)。而编写自动化测试的程序需要100分钟,调试和维护自动化测试程序需要50分钟,以后每个版本执行程序进行测试,需要1分钟,那么整个测试活动中,需要的时间就是100(分钟)+50(分钟)+1(分钟/版本)*n(版本)=150+n(分钟)。显然,当n>16的时候,自动化测试能够更节约成本,并且随着n的增大,自动化测试节省的成本也随之增大。这就是为什么一些小型项目基本上以纯手工的测试方式为主,而越是大型的项目越希望能够实现高度的自动化测试。
    对于中小型的项目,手工测试更为适宜。测试员如果不能保证在5n(分钟)的时间之内编写出测试程序,则以手工测试为宜。此处的“5n”,n表示总的版本数,每条规范的测试用例的执行通常需要10分钟左右,编写测试程序的时间和维护、使用测试程序的总时间基本相当,因此编写测试程序的时间应该不大于10*n/2=5n。
    此外,由于版本的变动,对于已经完成的测试脚本还存在需要维护的任务。无疑,这又是一笔额外的成本。
    3、自动化测试的代价。
    “用软件测试软件”是一件成本很高并且伴随有一定风险的活动,测试员编写的测试程序的可靠性和稳定性都是事先不确定的。因此在“用软件测试软件”的过程中,应该采取一些降低风险的措施。最可靠的措施无疑是使用一个已经被广泛使用过的成熟的测试程序。在自动化测试的活动中,如果可以使用成熟的测试工具的时候,使用成熟的工具是一种较为安全可靠的方法。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14780873/viewspace-374665/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14780873/viewspace-374665/

你可能感兴趣的:(测试的革命)