江湖易老,弹指十年。不觉间已经在软件测试行当中闯荡了十来年,同时也见证了中国测试行业这波澜壮阔的激情岁月。最近痴迷于高晓松的《晓说》,追溯本源,谈古论今,端的是的风流倜傥,当然要忽略掉他那张没有脖子的大饼脸。由此,忽然间对软件测试的江湖史萌发了兴趣,我们一直对现在测试江湖流行的各种秘籍而痴迷,却往往忽略了秘籍到底是怎么来的。所以我们今天就来扒一扒软件测试江湖当中软件自动化测试这一流派的前世今生,也仅以此献给那些给这一流派做出极大贡献的前辈们。
软件自动化测试是软件测试江湖的一种流派,所以我们就先来说一说软件测试的江湖史。软件测试最早可以追溯到1958年的美国第一个载人航天计划-水星计划,当时在该计划中首次诞生了软件测试团队。当然,在此之前也肯定是有软件测试存在的,但远没有这次有了自己的江湖地位。但这也仅仅是软件测试的萌芽,远没有到开宗立派的地步。因为你想想这时候软件也只是萌芽阶段,各种软件的理论,标准都还没有诞生,所以更别提软件测试了,因此很长一段时间内,软件测试时间内是没有什么发展的。
时间到了1975年,这一年,软件行业的一个超级豪门诞生了-微软。我不知道微软是不是第一家纯软件开发的公司,但微软确实使软件开发得到了快速的发展。也是从那时候起,美国的软件行业一骑绝尘。随着软件行业的蓬勃发展,软件的规模越来越大,复杂度也越来越高,随着而来的是软件的质量被逐渐的关注起来,软件测试的理论逐渐得到积累。到了1979年,梅尔斯出版了软件测试第一版本著作《软件测试的艺术》这本书,第一次明确的给出了软件测试的定义“The process of executing a program or system with the intent of finding errors”,至此软件测试算是正式的开宗立派, 有了自己的江湖地位。个人认为现代测试的开端应该就由此开始。推荐大家都去读一读这本书,不一定能学到多少新东西,但是就凭它的江湖地位就足以让大家去瞻仰一下了。
软件测试的开宗立派,蓬勃的发展也给软件自动化测试提供了丰富的土壤。江湖一直有着这么一句名言“天下武功,唯快不破",而如何快呢,程序比人快,自然而然的想到了让程序测试程序。1985年这一年,一款叫AutoTester的测试工具出现了,当然那时候还是Dos系统。在同一年还有一款工具的诞生是需要知道的-Excel。Excel虽然不是专门的测试工具,然而在相当一段时间内,它都被软件测试人员当作测试工具来使用,用于测试用例管理和执行的载体,直到如今也有相当一部分人或公司还在使用着。早期的测试工具的功能和效用确实因为太过于久远而不可考,但这种萌芽的开端却给后来自动化测试以及测试工具的丰富打下了好的基础。
在1989年,一家叫Mercury Interactive的公司在美国的加利福尼亚州成立,同年这家公司发布一款工具-LoadRunner, 是的,就是那款你知道的工具(有不知道的吗?)。都说一入江湖岁月催,长江后浪推前浪,但这确实一款始终没有被拍死在沙滩上的前浪,至今仍是一款举足轻重的性能测试解决方案。正如江湖中的屠龙刀,倚天不出,谁与争锋!所以,软件测试自动化是从性能测试开始的,当然这也是必然,功能测试自动化并不像性能测试自动化那么急迫,那么不可替代。时至今日,性能测试这一武林秘技依然是软件测试江湖的高级货。随着软件行业的发展,特别是IEEE标准的完善,CMM模型,V模型,Rational模型的诞生,软件测试也被提到了一个比较高的地位上。软件测试的发展也催生了众多流派的诞生,单元测试,功能测试,性能测试,自动化测试可谓百花齐放。
Mercury Interactive公司-(该公司早期的Winruner,loadrunner,TestDirector真的可以成为测试三剑客,囊括了测试管理,功能测试,性能测试)
时隔6年,1995年,Mercury Interactive发布了另一款重磅产品:winrunner。winrunner是一款实现了录制/回放的功能自动化测试工具,早期的测试人员肯定或多或少的都听说过这个工具,而早期的自动化测试也大多以录制/回放这种架构来进行。我记得在07年的时候,这款工具都还是比较流行的,当时所在的公司做的是Delphi的程序,使用Winruner进行测试还是比较给力的。但是当时winrunner的颓势已现,当时Mercury Interactive另一款工具QuickTest Professional已经占据主流,即使是现在,大家对QTP也应该不会陌生,QTP这款工具也提供了录制/回放功能,最为令人兴奋的是它首次引入了关键字驱动测试框架。它把每个测试步骤都换分为操作对象,行为以及操作的数据,并以表格的形式展现出来,而且对每个测试步骤都可以进行可视化的编辑。这已经是相当高层次的自动化测试框架了。
其实说起软件自动化测试,我们会发现理论方面的书籍和文章不是很多,更多的是各种测试工具的书籍和文章。究其原因,个人认为一方面,理论方面的书籍不好写,需要作者有丰富的自动化测试实施的经验积累,而且很另一方面,是由于各个公司或者组织本身实施软件开发的流程就千差万别,自动化测试实施的成熟度和方案就更不用说了,所以很难用一种标准化的实施方案去操作,当然还有一个不容忽视的原因是理论的书籍不好卖(~_~!)。第一本关于自动化测试的书籍是1999年出版的《Software Test Automation》,由Fewster和Graham编写。该书详细介绍了实施自动化测试的一些原则,工具的选择以及方案实施的一些经验和案例。
我们现在一说起自动化测试,更多的第一想到的是自动化测试工具,其实这种现象也是很正常的,因为从一开始就是软件测试工具推动着软件自动化测试在不断地发展,尤其是那些大的测试工具厂商功不可没,所以我们下回漫谈的主题就是"漫谈软件自动化测试-工具风云",敬请期待!