求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
软件测试
1.教程
2. 软件测试原则
3. 软件开发生命周期(SDLC)
4. 软件测试命周期(STLC)
5. 软件测试的类型
6. 测试成熟度模型
7. 测试级别
SDLC 模型
1.瀑布模型
2.螺旋模型
3.混合模型
4.原型模型
5. V模型/V和V模型/验证和验证模型
测试的类型
1.手动测试
2.自动化测试
手册的类型
1.白盒测试
2.黑盒测试
3.灰盒测试
白盒技术
1.数据流测试
2.控制流测试
3.分支覆盖测试
4.语句覆盖率测试
5.决策覆盖率测试
黑盒技术
1.决策表
2.全对测试
3.黑盒测试中的因果图
4.状态转换技术
5.用例技术
黑盒的类型
1.功能测试
2.非功能性测试
功能类型
1.单元测试
2.集成测试
3.系统测试
非功能性的类型
1.性能测试
2.易用性测试
3.兼容性测试
测试用例开发
1.测试文档
2.测试场景
3.测试用例
测试技术
1.错误猜测技术
2.等效分区技术
3.边界值分析
测试管理
1.测试计划
2.测试用例审查过程
3.需求可追溯性矩阵
缺陷跟踪
1.软件测试中的错误
2.Bug生命周期
3.测试中bug的严重性和优先级
4.测试环境
5.缺陷管理过程
其他类型的测试
1.回归测试
2.冒烟测试
3.健全性测试
4.静态测试
5.动态测试
6.负载测试
7.压力测试
8.恢复测试
9.探索性测试
10.可视化测试
11.验收测试
12.Alpha 测试
13.Beta 测试
14.数据库测试
15.主机测试
16.Adhoc测试
17.全球化测试
18.变异测试
19.安全测试
20.可访问性测试
21.结构测试
22.批量测试
23.可伸缩性测试
24.稳定性测试
25.峰值测试
26.负面测试
27.正面测试
28.耐久性测试
29.可靠性测试
30.Monkey测试
31.敏捷测试
32.组件测试
33.GUI测试
34.测试策略
软件测试工具
1.软件测试工具
2.测试管理工具
3.缺陷/Bug跟踪工具
4.自动化测试工具
5.性能测试工具
6.跨浏览器测试工具
7.集成测试工具
8.单元测试工具
9.移动测试工具
10.GUI测试工具
11.安全测试工具
12.渗透测试工具
差异
1.自动化测试与手动测试
2.负载测试与压力测试
3.冒烟测试和健全性测试之间的差异
4.系统测试和验收测试之间的差异
5.质量保证与质量控制
6.静态测试与动态测试
7.验证和确认测试
8.Alpha 测试和 Beta 测试
9.黑盒测试与白盒测试与灰盒测试
10.全球化测试和本地化测试之间的区别
11.测试用例与测试场景
12.测试计划 VS.测试策略
13.边界值分析和等价划分之间的差异
14.SDLC VS.STLC
15.Bug, Defect, Error, Fault 和 Failure之间的区别
16.测试和调试之间的区别
17.前端测试 VS.后端测试
18.HLD和LLD的区别
19.BRS vs SRS
20.正面测试和负面测试之间的区别
21.自上而下和自下而上的集成测试之间的区别
22.用例和测试用例之间的区别
23.Monkey 测试 VS Gorilla 测试
24.Stubs和Drivers之间的区别
25.组件测试和单元测试之间的区别
26.软件测试和嵌入式测试之间的区别
27.GUI 测试和可用性测试之间的差异
28.SDET和Tester的区别
29.桌面应用程序测试、客户端-服务器应用程序测试和 Web 应用程序测试之间的区别
30.主动测试
31.什么是API
32.自动化测试
 
 
目录
自动化测试
来源:Javatpoint     翻译:Linda (火龙果软件)
573 次浏览
1次  

在前面关于软件测试的文章中,我们了解到软件测试分为两种类型的测试,分别是手动测试和自动化测试。手动测试和自动化测试都有其特点和方法,使这两种测试技术彼此不同。

在这里,我们将了解自动化测试的以下相关主题:

  • 什么是自动化测试?
  • 为什么我们需要执行自动化测试?
  • 自动化测试中使用的不同方法
  • 自动化测试流程
  • 在自动化测试过程中面临哪些不同的挑战?
  • 自动化测试工具
  • 自动化测试的优点和缺点
  • 关于自动化测试的一些神话。

1. 什么是自动化测试?

另一种软件测试方法是自动化测试,它使用一些特定的工具来执行测试脚本,而没有任何人为干扰。这是提高软件测试的效率、生产力和测试覆盖率的最可接受的方法。

借助自动化测试工具,我们可以轻松处理测试数据,处理测试实现,并将实际输出与预期结果进行比较。

自动化测试是指对软件的自动测试,其中开发人员或测试人员在测试工具和框架的帮助下编写一次测试脚本,然后在软件上运行。测试脚本自动测试软件,无需人工干预并显示结果(错误、存在错误或软件没有错误)。

自动化测试在创建初始脚本时需要手动工作,并且会自动执行进一步的过程,以将实际测试结果与预期结果进行比较。

在自动化测试中,测试自动化工程师将编写测试脚本或使用自动化测试工具来执行应用程序。另一方面,在手动测试中,测试工程师会编写测试用例,并在书面测试用例的基础上实现软件。

在测试自动化中,测试工程师可以执行重复性任务和其他相关任务。在手动测试中,一次又一次地实现重复拍摄是一个繁琐的过程。

换句话说,我们可以说测试自动化的主要重点是通过系统或设备改变手动人类活动。

自动化测试过程是一个节省时间的过程,因为它在探索性测试上花费的时间更少,而在保留测试脚本上花费的时间更多,同时增强了完整的测试覆盖率。

注意:只要没有要求,我们就会执行探索性测试。

2. 我们为什么要进行自动化测试?

  • 在软件测试中,需要自动化测试来测试应用程序,因为它以更少的精力和时间为我们提供了更好的应用程序。
  • 一些组织仍然只执行手动测试来测试应用程序,因为这些公司并不完全了解自动化测试过程。
  • 但是现在,他们意识到自动化测试并在应用程序开发过程中执行测试自动化过程。
  • 为了实施自动化测试,我们需要相当多的资源和金钱投资。

自动化测试的执行为我们提供了各种优势,如下所述:

  • 可重用
  • 一致性
  • 随时运行测试
  • 早期错误检测
  • 更少的人力资源

1. 可重用性

我们可以在自动化测试中重用测试脚本,不需要一次又一次地编写新的测试脚本。而且,我们还可以重新创建与前面的步骤一样详细的步骤。

2. 一致性

与手动测试相比,自动化测试比执行常规单调测试更一致,速度更快,后者不能错过,但在手动测试时可能会导致故障。

3. 运行测试

在自动化测试中,我们可以随时随地开始测试过程。如果我们没有很多方法或购买它们的选择,我们甚至可以远程做到这一点。

4. 早期错误检测

通过执行自动化测试,我们可以轻松检测软件开发过程初始阶段的关键错误。它还有助于我们花更少的工作时间来解决这些问题并降低成本

5. 人力资源较少

要实现自动化测试脚本, 我们需要一个测试自动化的工程师, 他可以编写测试脚本来自动执行测试, 而不是让几个人重复执行繁琐的手动测试。

3. 手动测试与自动化测试

执行软件测试是为了在软件开发过程中发现软件中的错误。自动化和手动测试之间的主要区别如下:

4. 自动化测试方法

自动化测试包含以下三种不同的方法和途径,这将有助于测试工程师提高软件产品质量。

  • 图形用户界面测试
  • 代码驱动
  • 测试自动化框架

现在,让我们一一了解自动化测试的不同方法:

1. GUI(图形用户界面)测试

在这种方法中,我们可以实现包含GUI的软件或应用程序。因此,自动化测试工程师可以记录用户操作并多次评估它们。

我们知道测试用例可以用几种编程语言编写,如JAVA,C#,Python,Perl等。

2. 代码驱动

代码驱动技术是自动化测试中使用的后续方法。在这种方法中,测试工程师将主要集中在测试用例的执行上,以确定代码的几个部分是否按照给定的需求执行。

因此,它是敏捷软件开发中非常常用的方法。

3. 测试自动化框架

自动化测试的另一种方法是测试自动化框架。测试自动化框架是一组规则,用于生成自动化测试活动的有价值结果。

同样,它将测试数据源、函数库、对象详细信息和其他可重用模块结合在一起。

5. 自动化测试流程

自动化测试过程是一种系统的方法,以有限的资源提供最大的测试覆盖率来组织和执行测试活动。测试的结构涉及一个多步骤过程,支持执行任务所需的、详细的和相互关联的活动。

自动化测试过程在以下步骤中完成:

步骤1:决定自动化测试

这是自动化测试生命周期方法(ATLM)的第一阶段。在此阶段,测试团队的主要重点是管理测试的期望,并找出正确应用自动化测试的潜在好处。

在采用自动化测试服时,组织必须面对许多问题,下面列出了一些问题:

  • 测试工具专家是需要自动化测试的,所以第一个问题,要指定一名测试设备专家。
  • 第二个问题是,选择用于测试特定功能的确切工具。
  • 实施自动化测试过程中的设计和开发标准问题。
  • 分析各种自动化测试工具,选择最适合自动化测试的工具。
  • 由于在测试开始时金钱和时间的消耗很高,因此会出现金钱和时间的问题。

步骤2:测试工具选择

测试工具选择代表自动化测试生命周期方法 (ATLM) 的第二阶段。此阶段指导测试人员评估和选择测试工具。

由于测试工具几乎支持所有测试需求,因此测试人员仍然需要审查系统工程环境和其他组织需求,然后列出工具的评估参数。测试工程师根据提供的样品标准评估设备。

步骤3:范围介绍

此阶段代表自动化测试生命周期方法(ATLM)的第三阶段。自动化的范围包括应用程序的测试区域。范围的确定基于以下几点:

  • 每个软件应用程序所包含的软件应用程序的通用功能。
  • 自动化测试设置可重用的业务组件范围。
  • 自动化测试决定了业务组件的可重用性程度。
  • 应用程序应具有特定于业务的功能,并且必须在技术上可行。
  • 自动化测试在跨浏览器测试的情况下提供测试用例的重复。

此阶段可确保整体测试策略,如果需要,应对其进行良好的管理和修改。为了确保技能的可用性,根据特定软件应用程序所需的特定技能分析特定成员和整个团队的测试技能。

步骤4:测试规划和开发

测试规划和开发是自动化测试生命周期方法(ATLM)的第四个也是最重要的阶段,因为所有测试策略都在这里定义。长线索测试活动的规划,标准和指南的创建,硬件,软件和网络组合的安排以创建测试环境,缺陷跟踪程序,控制测试配置和环境的指南都在此阶段确定。测试人员确定整个项目的估计工作量和成本。测试策略和工作量估算文档是此阶段提供的可交付成果。测试用例执行可以在测试计划成功完成后开始。

步骤5:测试用例执行

测试用例执行是自动化测试生命周期方法(ATLM)的第六阶段。它在成功完成测试计划后进行。在此阶段,测试团队定义测试设计和开发。现在,测试用例可以在产品测试下执行。在此阶段,测试团队使用自动化工具启动案例开发和执行活动。准备好的测试用例由测试团队的同行成员或质量保证负责人进行审查。

在测试程序执行过程中,测试团队指示遵守执行计划。执行阶段实现之前在测试计划中定义的集成、验收和单元测试等策略。

步骤6:审查和评估

审查和评估是自动化测试生命周期的第六个也是最后一个阶段,但此阶段的活动贯穿整个生命周期,以保持持续的质量改进。改进过程是通过评估矩阵、审查和评估活动来完成的。

在审查过程中,审查员集中精力确定特定指标是否满足验收标准,如果是,则准备在软件生产中使用。它是全面的,因为测试用例涵盖了应用程序的每个功能。

测试团队执行自己的调查,以询问该过程的潜在价值;如果潜在收益不足,测试团队可以更改测试工具。该团队还提供一个示例调查表单,以征求最终用户对软件产品属性和管理的反馈。

6. 在自动化测试过程中面临哪些不同的挑战,以及如何克服这些挑战?

自动化测试过程为组织带来了大量优势。通常,通过自动化测试,指定软件验证方法的测试团队可以完成放大的测试覆盖率。

尽管我们在自动化测试过程中可能会面临各种挑战;因此,我们需要一个彻底的后续流程来成功执行测试自动化。

下面讨论的一些常见挑战,我们可能会在整个应用程序的测试自动化过程中遇到这些挑战:

1. 缺乏高技能的测试自动化专家

  • 缺乏自动化测试流程的最根本原因是缺乏高技能的自动化测试工程师。
  • 为了设计和维护测试自动化框架和测试脚本, 测试自动化工程师需要具备技能并具备有关自动化技术技能的详细 知识。
  • 若要正确创建测试脚本并维护它们,团队应成功实现测试脚本以检查应用程序性能并修复技术问题。
  • 为了实现操作自动化方面,自动化测试工程师应该对测试自动化框架有深入的了解,因为他们很容易设计和执行测试脚本。

2. 正确选择正确的测试自动化工具

  • 我们在执行自动化测试时主要面临的下一个挑战是选择正确的自动化测试工具。
  • 必须对被测应用(AUT)进行适当的详细评估。
  • 可以访问开源和付费工具的各种自动化测试工具。在接受工具之前进行适当的检查至关重要。

3. 扩展测试环境的挑战

  • 作为不在云中提供测试环境的测试团队,这是一个至关重要的挑战。
  • 快速交付自动化测试所需的更改测试环境、测量它们、执行测试以确保在云中测试时取得成功至关重要。
  • 通常,内部团队有部分测试环境,他们可以使用这些环境来执行较少的测试,并在任何给定时间部署它们。
  • 因此,测试需要更长的时间。为了克服这一点,必须将测试环境迁移到云以扩展测试自动化,并且还将降低测试团队的运营成本。

4. 包括高昂的初始投资成本

  • 通常,在初始阶段执行自动化测试过程的成本有点高,因为有必要通过详细的AUT分析来评估,设计和构建自动化测试框架,库或可重用功能。
  • 此外,如果自动化测试工程师选择许可的测试自动化工具,则应评估运营成本。
  • 如果 自动 化 测试 工程 师 选择 开源 工具, 那么 也 应该 花费 大量 精力 在 学习、 训练 和 维护 上。
  • 之后,自动化工具的选择,无论是开源的还是许可的,都取决于AUT优先级和成本设施的可用性。

5. 开发和测试团队之间沟通不畅和缺乏协作

  • 开发人员与测试工程师的团队和运营团队之间的沟通不畅或缺乏适当的协作并不能使我们成功实现测试自动化。
  • 因此,将所有团队(开发人员、测试、操作)成员安排起来对测试自动化目标进行分类并设定目标非常重要。
  • 为了确保测试自动化的成功,这些团队需要花一些时间来进行有效的沟通,并清楚地了解业务需求和项目规范。

7. 自动化测试类型

测试分为两种类型:功能性和非功能性

功能测试

测试人员对新修订的软件执行的第一个测试称为功能测试,它根据用户要求验证所有软件功能的特性。此测试适用于实际业务应用程序,并从给定输入获取预期输出。所有应用程序功能都经过测试,并涉及冒烟、单元和集成测试。

a) 单元测试

该单元是软件中单独运行的最小组件。单元测试简化了整个软件的测试,其中每个软件元素在最终版本发布之前都经过全面测试。单元测试描述了代码在每个部分的执行方式,并且具有更快的执行时间。

它是开发人员的最爱,因为它消耗的时间更少,并确保软件每个部分的工作。在自动化测试之前,开发人员编写用于测试的代码,但现在没有必要。单元测试技术分为三大类:白盒测试、黑盒测试和灰盒测试。

b) 集成测试

与其他测试相比,集成测试的设置更复杂。应用程序的所有模块相互通信以执行任务。因此,测试人员将它们分组进行测试,并暴露维护这些模块之间交互的缺陷。此测试的另一个名称是I&T或字符串测试,被认为是端到端的。

c) 冒烟测试

该测试检查并定义产品的稳定性(无论是否稳定)。如果产品结果不稳定,则称为“不稳定构建”并发回给开发人员,在那里他们运行更多测试用例以找出问题的根本原因。冒烟测试的工作原理是这样的:-

非功能性测试

非功能测试侧重于应用程序功能的表现如何,而不是产品的功能。它与功能测试相反,功能测试测试可靠性、可用性、性能等应用程序元素。某些类型的非功能性测试包括可靠性测试、负载测试、兼容性测试、性能测试、安全测试等。

a) 性能测试

这种非功能性测试测试软件在工作负载下的稳定性、响应能力和速度。它找出用户使用的关键软件和医疗程序面临的潜在问题,例如在压力大的情况下软件运行缓慢。它发现软件性能中的障碍并消除它们,以提高软件向最终用户提供最佳结果的能力。

b) 回归测试

当对软件或应用程序的代码进行某些更改时,需要对其进行测试以确定软件是否像更改之前一样工作;为此,测试人员使用自动化回归测试来自动化脚本、工作流应用程序、计划和其他活动。它在更新和功能错误后测试系统或软件工作流程。

c) 关键字驱动的测试

关键字驱动的测试使用由与应用程序相关的关键字组成的数据文件来测试应用程序,这些文件表示执行该步骤所需的一组操作。在这里,这些特定的关键字被识别并与特定操作相关联。因此,在测试期间,当使用这些关键字时,将自动完成其相关操作。此关键字测试是许多企业的热门选择,因为它灵活、简洁、易于维护和可重复使用。关键字驱动的测试与市场上的各种自动化工具兼容。功能测试人员可以在应用程序完全开发之前计划测试,而不是编程专家。

d) 数据驱动的测试

在数据驱动的测试中,自动化是内置的并且非常有效,因为提供的设施很少,比如代码的可重用性,脚本中的更改不会影响测试用例,并且这种测试可以在软件开发周期的阶段进行。它提供了结果的一致性,并减少了时间和资源的投入。测试用例使用以表格或电子表格格式单独存储的数据,测试人员有多个数据集用于测试。

8. 自动化测试工具

自动化测试工具可以分为两类,如下所示:

  • 功能测试工具
  • 非功能性测试工具

让我们一一详细了解:

功能自动化测试工具

自动化测试工程师使用功能自动化测试工具实现功能测试用例。例如,重复回归测试在函数自动化测试工具下自动执行。

这种类型的工具可以进一步分为两个不同的部分,如下所示:

  • 商业工具
  • 开源工具

商业功能测试工具

商业功能测试工具是那些在市场上不能免费提供的测试工具。这些工具也称为许可工具。与开源工具相比,许可工具包括各种功能和方法。

一些最重要的商业工具如下:

  • QTP[Quick Test Professional]
  • Rational Functional Tester [RFT]
  • TestComplete
  • SoapUI

让我们来看看上面列出的商业工具:

QTP

  • QTP表示快速测试专业,但现在它被称为Micro Focus UT(统一功能测试)。
  • 它主要用于自动化基于 Web 的应用程序或软件的功能回归测试用例。
  • 为了测试应用程序、部署对象并出于分析目的,它是在脚本语言(如 VBScript)上设计的。
  • 它遵循关键字驱动测试的概念来定义测试的创建和维护。
  • 新的测试工程师可以轻松使用 QTP 工具,因为它允许他们直接从应用程序开发测试用例。

QTP 的特点

QTP 的一些最标准属性如下:

  • 录制和回放功能增强了 QTP 工具的可信度。
  • 技术和非技术测试工程师都可以操作 QTP 工具。
  • 它支持多种软件开发环境,如SAP,JAVA,Oracle等。
  • 我们可以使用 QTP 检查基于 Web 和基于桌面的应用程序。

RFT

  • RFT 代表 Rational Functional Tester,用于执行功能回归测试用例。
  • 它遵循数据驱动测试和 GUI 测试的概念。
  • 它通过记录最终用户在被测系统上的活动并根据请求重复操作以执行测试来构建自动化功能测试。

RFT的特点

RFT 工具包含以下特征:

  • RFT支持广泛的应用程序和协议,如HTML,Java,.NET,Windows,Eclipse,SAP,Visual Basic,PowerBuilder
  • 它通过代理 SDK (如 Java or.Net)维护自定义控件。
  • 它允许开发人员开发与关键字相关的脚本;因此,它可以再次重复使用,从而提高项目的生产力。

TestComplete

  • 另一个功能性自动化测试工具是TestComplete,它被SmartBear Software收购。
  • TestComplete 具有一些内置功能,可帮助测试工程师为 Microsoft Windows、Web、Android 和 iOS 应用程序开发自动化测试。
  • 在此工具中,可以使用关键字驱动的进程记录、编写脚本或手动创建测试,并用于自动回放和错误记录。
  • 它包括三个不同的模块,如 Web、桌面和移动,其中所有模块都涉及在特定平台上开发自动化测试的功能。

TestComplete的特点

以下是TestComplete的基本特征:

  • 它用于测试几种类型的特定应用程序,如Web,Windows,Android,iOS,.NET,VCL和Java。
  • 它涉及问题跟踪模板,可用于开发或更改存储在问题跟踪系统中的项目。
  • 它记录了重复测试的关键操作,并拒绝所有不必要的努力。

SoapUI

  • SoapUI是使用最广泛的自动化工具。它主要用于测试SOAP和REST接口的Web服务和WebAPI。
  • 它允许测试工程师在各种 Web 服务和 API 上测试功能、回归测试和其他测试类型。
  • SoapUI工具开发了模拟,测试工程师可以在其中测试实际应用程序。
  • 它完全是用JAVA和Groovy编程语言编写的。

SoapUI的特点

SoapUI 工具的一些最常见的特征如下:

  • SoapUI 的核心功能包含各种 Web 服务,例如开发、模拟、检查、模拟和调用。
  • 它支持所有标准协议和技术,如HTTP,HTTPS,AMF,JDBC,SOAP,WSDL等。
  • SoapUI工具提供了一个快速高效的框架,可以创建许多Web服务测试。
  • 它提供了从多个 Web 服务源获取数据的服务,而无需开发任何代码。

开源功能测试工具

开源功能测试工具是那些在市场上免费提供的工具。这些工具的功能和特性比商业/许可工具少,但有时在商业工具上工作成为一个昂贵的过程。

这就是为什么一些知名组织更喜欢使用开源工具的原因。

以下是最常用的开源功能自动化测试工具:

  • Selenium
  • Sikuli
  • Autoit

我们来一一了解一下开源功能自动化测试工具:

Selenium

每当我们谈论自动化测试的开源工具时,每个自动化测试工程师都会想到一个名字:Selenium。

  • Selenium是强烈推荐和广泛使用的功能测试工具,非常适合非功能测试工具。
  • Selenium是一个开源工具,这意味着它不需要任何许可。
  • 我们只能使用 Selenium 工具测试 Web 应用程序,而独立应用程序无法在 Selenium 中自动化。
  • 它最常用于实现功能测试脚本。
  • 它可以与几种自动化测试工具结合使用,以实现连续测试,例如Maven和Jenkins。
  • 它可以与TestNG和JUnit等许多设备相关联,以管理测试用例并生成测试报告。

Selenium的特性

以下是Selenium的基本特征:

  • Selenium可以很容易地部署在Windows,Linux,Solaris和MacOS等多个平台上。
  • 此外,它还支持移动应用程序的操作系统,例如iOS,Windows移动和Android。
  • Selenium支持多种编程语言,如C#,Java,Perl,PHP,Python和Ruby。
  • 当我们实现测试脚本并同时跨多个浏览器分析它时,Selenium 变得非常足智多谋。
  • 它 提供 了 一个 用户 友好 的 界面, 可 帮助 测试 工程 师 高效 地 开发 和 执行 测试 脚本。

Selenium的优点

  • 它是一个免费提供给所有人的开源工具。因此,任何人都可以免费下载它并使用它。
  • 它是一种灵活的工具,由公司根据自己的需要采用和调整。
  • Selenium可以支持用任何语言编写的任何项目。例如,一些使用Java和PHP语言的项目可以使用Selenium来测试两者。
  • Selenium还支持iPhone,Android和Blackberry等设备和平台,用于测试移动Web应用程序。
  • 测试仪可以使用硒网格进行并行测试,从而减少执行时间并提高生产率。
  • 通过编程语言,Selenium还支持各种操作系统(Windows,Unix,Linux和Mac)和不同的浏览器(Firefox,Opera,Google和Safari)。

Selenium的缺点

  • Selenium最适合测试Web应用程序,但是在测试本机移动应用程序,混合应用程序和桌面应用程序时,Selenium不是一个好的选择。
  • 与付费工具相比,Selenium未能在测试中提供预期的技术支持。
  • 使用Selenium进行测试不支持生成测试报告,测试人员必须使用JUnit和TestNG等框架来生成它们。
  • 在测试管理任务中,Selenium缺乏内置工具,导致测试人员和开发人员之间的沟通差距。
  • Selenium需要大量的时间和专业知识来设置,因为自动化测试需要几个插件和工具,只能通过手动配置来完成。

Sikuli

  • 另一个开源的功能自动化测试工具是Sikuli。
  • 它是一个基于GUI的测试自动化工具,可以轻松地自动化Flash对象,因为大多数自动化测试工具(如Selenium)不支持Flash对象自动化。
  • 最常见的是,Sikuli 用于与网页的基本原理进行交互并控制基于窗口的弹出窗口。
  • 借助Sikuli工具,我们可以轻松测试Windows应用程序。

Sikuli的特点

Sikuli 工具的最标准功能如下所述:

  • Sikuli工具可以很容易地与Selenium WebDriver和所有其他自动化测试工具结合使用,通过使用Sikuli Jar文件。
  • 我们还可以在 Sikuli 工具的帮助下自动化桌面应用程序或独立应用程序。
  • 它提供了一个简单的API,这意味着可以使用屏幕类对象检索所有方法。

注意:众所周知,Selenium WebDriver只能测试Web应用程序,但另一方面,Sikuli工具可以测试基于Web和基于窗口的应用程序。

 

AutoIt

  • AutoIt是另一个用于功能自动化测试的开源工具。
  • 它是一种免费软件脚本语言,旨在测试Windows GUI和通用脚本。
  • AutoIt 脚本是用主要语言编写的。
  • 它可以复制击键、鼠标移动以及窗口或控件操作的任何分组。

汽车IT的特点

AutoIT 工具包括以下功能:

  • 它的脚本语言使用简单的语法,可以轻松理解和执行以自动化任何过程。
  • 它有一个内置的RunAs函数,有助于使用一些外部用户执行任何外部程序。
  • 它甚至可以自行记录和创建脚本,用于需要自动化的详细流程。
  • 没有任何对象识别问题的所有类型的标准 Windows 控件和其他 GUI 都可以轻松与 AutoIt 工具相关。

非功能性自动化测试工具

自动化测试工程师使用非功能性自动化测试工具来执行非功能性性能测试用例。

例如,在大负载(例如 100 个用户)下测试应用程序的响应时间。

就像功能自动化测试工具一样,非功能自动化测试工具分为两个不同的类别,具体如下:

1.商业工具

2.开源工具

商用非功能性自动化测试工具

这些是那些不能自由使用的工具,因为它们需要适当的许可证。与其他开源测试工具相比,商业工具具有额外的特性和功能。

使用这些类型的工具有助于我们提高软件产品的效率。

让我们看看一些最常用的商业非功能性自动化测试工具。

  • LoadRunner
  • Silk Performer

LoadRunner [HP 性能测试仪]

LoadRunner 是最流行的非功能性工具之一。它主要用于支持各种协议、多种技术和应用程序环境的性能测试。LoadRunner 是许可工具。

它可以快速对最大数量的性能问题进行分类。并准确预测应用程序的可扩展性和大小。

LoadRunner的特点

LoadRunner工具的一些最重要的功能如下:

  • LoadRunner工具将帮助我们降低分布式负载测试的成本以及硬件和软件成本。
  • 我们可以轻松地查看和处理测试脚本中的 XML 数据,因为它支持 XML 脚本语言。
  • 我们可以通过使用 LoadRunner 工具获得详细的性能测试报告。
  • 它提供了用于部署跟踪的操作工具。

Silk Performer

另一个非功能性自动化测试工具是Silk Performer。它可以测试具有数千个并发用户的各种应用程序环境。

它确保在面对最高的客户使用率时,应用程序和服务器的正常运行时间得以维持。

它是最常用的企业级负载和压力测试工具之一,支持广泛的协议。

Silk Performer 的特点

以下是 Silk 执行器工具的标准功能:

  • 它用于假装可变的虚拟用户。
  • 在此工具中,关联和参数化是用户友好的。
  • 它支持集成的服务器监控。
  • 它提供版本控制管理。
  • 控制器或单个协议不需要许可条件。
  • 它可以快速创建带有表格和图形的报告,并允许自定义。

开源非功能性自动化测试工具

开源非功能性自动化测试工具可以轻松使用,因为它们在市场上免费提供。与商业测试工具相比,这些工具的功能较少。

但是由于它们是开源的并且使用速度很快,因此一些组织更喜欢使用这些工具,因为它们不需要任何成本。

一些最常用的开源非功能性自动化测试工具如下:

  • JMeter
  • NeoLoad

JMeter

JMeter是使用最多的开源非功能性自动化测试工具之一。JMeter完全在JAVA应用程序上设计,以加载高效的测试性能并衡量应用程序的生产力。

它主要是简化用户或开发人员使用源代码来增强其他应用程序。它用于测试静态和动态资源以及动态 Web 应用程序的实现。

它用于重现服务器、对象或网络、服务器组上的大量负载,以测试其功率或探索多种负载类型的完整性能。

在几种类型的服务器中加载性能测试具有高度可扩展性,例如:

  • 数据库服务器:LDAP、JDBC
  • Web Server: SOAP, HTTPS, HTTP
  • 邮件服务器:POP3

JMeter特点

JMeter 工具的一些重要属性如下:

  • 它支持多种测试方法,例如功能测试、分布式测试和负载测试。
  • 它支持交互式且简单的用户友好型 GUI。
  • 它是一个独立于平台的工具,因为它是在 JAVA 的帮助下开发的;因此,它可以在任何接受JVM的平台上执行,如Windows,Mac和Linux等。

NeoLoad

自动化测试中另一个最常用的开源工具是NeoLoad,Neotys开发了它。

它用于测试性能测试场景,还帮助我们识别 Web 和移动应用程序开发过程中的瓶颈区域。

与其他传统工具相比,它更快。NeoLoad 将支持广泛的 Web、移动和打包应用程序,如 SAP、Oracle、Salesforce 等,涵盖我们所有的测试需求。

NeoLoad的特点

以下是NeoLoad的一些重要功能:

  • 它还用于共享和管理测试资源。
  • 它将支持各种框架和协议,如HTTP / 2,HTML5,API,AngularJS,Web Socket,SOAP等。
  • 它提供了强大的无代码设计。
  • NeoLoad 可以将功能测试脚本修改为性能测试脚本。
  • NeoLoad 可以自动更新测试脚本并开发实时测试结果。

9. 自动化测试的优势

  • 自动化测试比手动测试花费更少的时间。
  • 如果重复执行多次相同的操作,测试人员可以测试软件的响应。
  • 自动化测试提供了测试用例对同一软件不同版本的测试的可重用性。
  • 自动化测试是可靠的,因为它通过以相同的方式再次执行测试用例来消除隐藏的错误。
  • 自动化测试是全面的,因为测试用例涵盖了应用程序的每个功能。
  • 它不需要很多人力资源,而不是编写测试用例并手动测试它们,他们需要一个自动化测试工程师来运行它们。
  • 自动化测试的成本低于手动测试,因为它需要一些人力资源。

10. 自动化测试的缺点

  • 自动化测试需要高水平的熟练测试人员。
  • 它需要高质量的测试工具。
  • 当遇到不成功的测试用例时,对整个事件的分析是复杂的。
  • 测试维护费用昂贵,因为需要高费用的许可证测试设备。
  • 如果尚未解决效果较差的错误,则必须进行调试,这可能会导致致命的结果。

11. 关于自动化测试的一些误区

  • 自动化测试成本高昂-这是一个神话,因为它的开发是为了减少时间、测试工作和资源需求。从长远来看,如果正确遵循自动化过程将节省项目成本。
  • 可以做到100%自动化-我们已经了解到,一些测试用例的探索性和可用性无法自动化,这表明100%自动化是不可能的。
  • 它将完成手动测试作业-是人类使事情自动化,简化了工具的使用。但是自动化测试的这种简便性减少了对手动测试人员的需求;现在,公司需要能够进行自动化和手动测试的全栈或双角色测试人员。
  • 开发人员可以成为一名优秀的自动化测试人员 -相反,开发人员开发整个软件,但没有测试软件的测试人员视角。因此,开发人员可以掌握编码,但测试人员可以超越测试进行思考。
  • 任何人都可以进行自动化测试 -今天,互联网上可以免费获得各种自动化工具,测试程序也是如此。尽管如此,普通的软件用户无法理解技术细节并进行测试。为此,必须了解测试。

12. 总结

在本教程中,我们了解了自动化测试,自动化测试方法,自动化测试过程,自动化测试工具,自动化测试过程中的不同挑战,自动化测试的优缺点。

最后,我们可以得出结论,自动化测试是一种软件测试技术,它是在特殊的自动化测试软件工具的帮助下实现的。

这是执行测试用例套件的最佳方法,这有助于我们提高软件测试的测试覆盖率、效率和性能速度。

自动化测试工具、测试流程和团队的选择是成功实现自动化的关键方面。

自动化测试高度依赖于构建待测应用程序所基于的技术。

测试自动化维护方法是一个自动化测试阶段,用于测试添加到软件中的新功能是否正常工作。

为了成功测试软件,手动和自动化技术是齐头并进的。我们应该清楚自动化过程,它用于减少某些类型测试的测试时间。

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



573 次浏览
1次