[原创]漫谈软件自动化测试-起源

江湖易老,弹指十年。不觉间已经在软件测试行当中闯荡了十来年,同时也见证了中国测试行业这波澜壮阔的激情岁月。最近痴迷于高晓松的《晓说》,追溯本源,谈古论今,端的是的风流倜傥,当然要忽略掉他那张没有脖子的大饼脸。由此,忽然间对软件测试的江湖史萌发了兴趣,我们一直对现在测试江湖流行的各种秘籍而痴迷,却往往忽略了秘籍到底是怎么来的。所以我们今天就来扒一扒软件测试江湖当中软件自动化测试这一流派的前世今生,也仅以此献给那些给这一流派做出极大贡献的前辈们。

软件自动化测试是软件测试江湖的一种流派,所以我们就先来说一说软件测试的江湖史。软件测试最早可以追溯到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编写。该书详细介绍了实施自动化测试的一些原则,工具的选择以及方案实施的一些经验和案例。

我们现在一说起自动化测试,更多的第一想到的是自动化测试工具,其实这种现象也是很正常的,因为从一开始就是软件测试工具推动着软件自动化测试在不断地发展,尤其是那些大的测试工具厂商功不可没,所以我们下回漫谈的主题就是"漫谈软件自动化测试-工具风云",敬请期待!

时间: 2024-11-03 19:48:07

[原创]漫谈软件自动化测试-起源的相关文章

[原创] 软件自动化测试技术(1) - 准备篇

软件自动化测试技术(1) - 准备篇 想清楚 1. 为什么要做自动化测试? 有前途? 有钱途? 大家都在做? 有危机感? 过去做的很没意思,想换换? 2. 我的兴趣点在哪里? 对当前工作没有任何兴趣? 对点鼠标感兴趣? 对测试手工感兴趣? 对写代码感兴趣? 对各种新的技术感兴趣? 3. 我适合做自动化吗? 我不懂技术? 我对学习工具感到恐惧? 我觉得手工的系统/验收测试能发现更多的缺陷,而这正是我的成就感所在? 4. 做了自动化我能怎么样? 有钱了? 高大上了? 可以跳槽去Google.Face

软件自动化测试流程与我们的自动化测试

摘要 每一个对软件测试有兴趣或者专业的软件测试人员,在软件自动化测试之初都会有浓厚的兴趣也充满着激情.因为都能理解到自动化做好之后会减轻测试人员重复劳动的工作量.全面的测试数据覆盖可以提高软件质量.丰富的日志以及截图功能可以提升交付效率与便于分析问题等等的优点,都会令软件自动化测试者为之疯狂:然而,自动化测试却常常带给我们沮丧和失望,因为自动化在为我们解决问题的同时也会引入更多的问题,很多自动化技术的研究以及实施工作就会止步于此了.因此,在开展自动化测试之前,就应该制定自动化测试计划,目前基本从

VectorCAST软件自动化测试方案

VectorCAST™ 是主要用于对C/C++/Ada程序进行软件自动化测试,并能够在Windows和Linux等多种开发环境下运行.其主要功能包含自动化的单元测试.集 成测试.覆盖率分析.回归测试.代码静态分析和测试需求跟踪,它最大特点或相比于其它相关同类工具最大的优势,就在于能够实现最大程度的自动化而且更适用 于嵌入式环境.以下分别予以阐述: 单元测试VectorCAST 会根据被测代码和开发环境自动构建测试套件(Test Harness),在此基础上用户可以根据需要自动地生成或添加测试用例

软件自动化测试工具之元素智能定位

江湖一直有着这么一句名言“天下武功,唯快不破".那么在软件测试领域,自然而然我们会想到软件自动化测试.软件自动化测试的实现自然离不开软件自动化测试工具.软件自动化测试工具是软件自动化的载体,只有通过工具,我们才能实现.武林也是一样,成为武功盖世,除了武林秘决之外,还要有依天剑.屠龙刀的配合. 话说软件开发模式有:瀑布模型.增量式开发.螺旋开发.敏捷开发.软件业早期的开发模式主要以瀑布模型为主,后期逐渐专为敏捷开发.软件开发效率和变更频率也随着开发模式的变化而变化,优其到了敏捷开发模式.一些传统的

再见优酷广告-世捷原创系列软件

软件由来:优酷的广告已经长达60秒以上了. 我看个3分钟新闻要先看下1分钟广告...其实我本意没想发出来,但是确实好多朋友都需要.在这就共享出来...软件说明:主要功能屏蔽优酷视频与页面广告...兼容所有浏览器.特别说明:能不用就不用,支持下优酷把...广告占了优酷40%的收入呢.别骂我....自己人..下载地址:http://www.shijieweb.cn/post/1cc4ef53_3c4cbb4 分类:世捷系列软件-原创作品

软件自动化测试全套视频教程

01.软件测试循序渐进 01 软件测试基础 02 java 03 Database 04 NETCTOSS 05 QTP 06 whitebox_testing 07 QTP_Project 08 Linux基础 09 LoadRunner 10 LR_Project 11 综合串讲 12 做笔试题 13 JMeter教程 14 Selenium课程 15 电子书 16 软件包 02.Jmeter视频教程+项目实战 1-1 Jimeter基础视频 1-2 Jmeter性能测试 2-1 Jmete

辛星漫谈软件思想

之前我也走不出语言的圈子,感觉语言对于软件开发上如此重要,不过一个软件并不应该是依赖生产它的语言,真正让这个软件闪光的是软件本身,并不是生产这个软件的语言. 软件工业的革新速度是绝对的速度和效率,先后出现了N种思想不断的冲击着软件工业,那么我们来看看吧,好吧,我承认可能我写的不全,因为这也是我随手写写,并未经过深思熟虑. 第一种思想就是"语言"这种思想,这种思想太重要了,我感觉从0和1到汇编语言是相当大的一个突破,它开始产生了"语言"的概念,虽然这种所谓的语言只是一

漫谈软件设计与分工协作

本节导读: 阐述“分工/协作”是世界万事万物进化发展的必然选择,也是软件设计首要指导思想,也是软件分层.分模块的理论依据. 对于从事软件行业的人来说,大部分人会经历软件架构设计,想尽可能的将软件设计的灵活.简单.好用,谈到软件设计我们经常会听到一些术语,比如:面向对象设计.设计模式,设计原则.分层思想等.但这些模式.原则起什么作用,为什么需要这些模式.原则,我们可能说是为了软件可阅读性,可维护性,可扩展性,为了程序解耦,为了模块化,为了插件化.但这是理由吗,这个理由能站得住脚吗?隐藏在这些需求背

软件体系结构起源

软件危机 软件成本日益增长(相对数与绝对数) 开发进度难以控制(是一种高度智力的产品,不能采用人海战术) 软件质量差 软件维护困难 ◎ 软件成本日益增长 20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%. 到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右. 而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到