软件自动化测试工具的历史进程

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 软件测试最早可以追溯到1958年的美国第一个载人航天计划-水星计划,当时在该计划中首次诞生了软件测试团队。当然,在此之前也肯定是有软件测试存在的,但远没有这次有了自己的江湖地位。但这也仅仅是软件测试的萌芽,远没有到开宗立派的地步。

软件测试最早可以追溯到1958年的美国第一个载人航天计划-水星计划,当时在该计划中首次诞生了软件测试团队。当然,在此之前也肯定是有软件测试存在的,但远没有这次有了自己的江湖地位。但这也仅仅是软件测试的萌芽,远没有到开宗立派的地步。因为你想想这时候软件也只是萌芽阶段,各种软件的理论,标准都还没有诞生,所以更别提软件测试了,因此很长一段时间内,软件测试时间内是没有什么发展的。

时间到了1975年,这一年,软件行业的一个超级豪门诞生了-微软。我不知道微软是不是第一家纯软件开发的公司,但微软确实使软件开发得到了快速的发展。也是从那时候起,美国的软件行业一骑绝尘。随着软件行业的蓬勃发展,软件的规模越来越大,复杂度也越来越高,随着而来的是软件的质量被逐渐的关注起来,软件测试的理论逐渐得到积累。到了1979年,梅尔斯出版了软件测试第一版本著作《软件测试的艺术》这本书,第一次明确的给出了软件测试的定义“The process of executing a program or system with the intent of finding errors”,至此软件测试算是正式的开宗立派, 有了自己的江湖地位。个人认为现代测试的开端应该就由此开始。推荐大家都去读一读这本书,不一定能学到多少新东西,但是就凭它的江湖地位就足以让大家去瞻仰一下了。

软件测试的开宗立派,蓬勃的发展也给软件自动化测试提供了丰富的土壤。江湖一直有着这么一句名言“天下武功,唯快不破",而如何快呢,程序比人快,自然而然的想到了让程序测试程序。1985年这一年,一款叫AutoTester的测试工具出现了,当然那时候还是Dos系统。早期的测试工具的功能和效用确实因为太过于久远而不可考,但这种萌芽的开端却给后来自动化测试以及测试工具的丰富打下了好的基础。
_
在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这款工具也提供了录制/回放功能,最为令人兴奋的是它首次引入了关键字驱动测试框架。它把每个测试步骤都换分为操作对象,行为以及操作的数据,并以表格的形式展现出来,而且对每个测试步骤都可以进行可视化的编辑。这已经是相当高层次的自动化测试框架了。

2001年2月,Martin Fowler,Jim Highsmith等17位著名的软件开发专家齐聚在美国犹他州雪鸟滑雪圣地,举行了一次敏捷方法发起者和实践者的聚会。在这次会议上面,他们正式提出了Agile(敏捷开发)这个概念,并共同签署了《敏捷宣言》。随着时间的推移,软件开发模型已逐渐由瀑布模型为主导的转向敏捷开发模型。华为在2009年时候也在大力推进敏捷开发模型,运营商BG部门在软件开发的部分阶段中开展敏捷流程。互联网公司更是全流程开展了敏捷的开发模式。由此带来了软件行业发展的大暴发,与此同时软件变更速度也在加快。一些传统的自动化测试工具显示力不从心,很难应付软件开发的快速迭代和变更,导致一些公司开展自动化测试,徒劳无功。主要原因有:自动化用例建设速度慢,跟不上软件新增内容;软件变更频繁导致用例维护成本巨大;学习成本高。所有这些都是自动化测试在中国软件业难以建树的主要原因。

2018年,深圳市奇林软件有限公司推出了一款智能化驱动的kylinTOP软件,该软件具有快速生成用例、智能元素定位、步骤智能等待等一系列智能化特点,很好的适应了软件敏捷开发时代的需要。通过kylinTOP,使用者只要正常的业务操作即可生成用例,后期即使定位元素重复或变更也不会影响自动化测试的执行,开启了软件自动化测试的智能化时代。

软件自动化测试的四个阶段


_
软件自动化测试从1985年算起已经有35年的历程,自动化测试工具紧随软件开发时代的变化而变化。每个时代都有每个时代特征,每个自动化测试工具的出现都有他存在的理由,随着的时代的变迁,有的已退出历史舞台,有的为适应时代的变化,在不断的改变自我。历史就是这样,只有你适应这个时代才能生存下去。
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
28天前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
13天前
|
测试技术 持续交付
探索自动化测试在软件质量保证中的关键作用
本文深入探讨了自动化测试在现代软件开发生命周期中的重要性,以及它是如何成为确保软件产品质量的不可或缺的一环。通过分析自动化测试的优势、挑战和最佳实践,本文旨在为读者提供对自动化测试全面而深刻的理解,从而帮助他们在实际工作中更有效地应用自动化测试策略。
27 2
|
19天前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
25天前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
24天前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
63 2
|
24天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
26天前
|
运维 Ubuntu 应用服务中间件
自动化运维工具Ansible的实战应用
【10月更文挑战第36天】在现代IT基础设施管理中,自动化运维已成为提升效率、减少人为错误的关键手段。本文通过介绍Ansible这一流行的自动化工具,旨在揭示其在简化日常运维任务中的实际应用价值。文章将围绕Ansible的核心概念、安装配置以及具体使用案例展开,帮助读者构建起自动化运维的初步认识,并激发对更深入内容的学习兴趣。
51 4
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
51 3
|
28天前
|
运维 监控 数据安全/隐私保护
自动化运维工具的设计与实现
【10月更文挑战第34天】在现代IT基础设施管理中,自动化运维工具扮演着至关重要的角色。它们不仅提高了运维效率,还确保了服务的连续性和稳定性。本文将深入探讨如何设计并实现一个自动化运维工具,从需求分析到功能实现,再到最终的测试与部署。我们将通过一个简单的代码示例来展示如何自动执行常见的运维任务,如日志清理和性能监控。文章旨在为读者提供一套完整的方法论,以便他们能够构建自己的自动化运维解决方案。
|
1月前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
50 1