自动化测试面试题及答案


以下是针对经验丰富的和刚入行的QA专家在面试中最常被问到的问题。

1. 自动化测试到底是什么?

自动化测试是指测试人员使用自动化工具编写和执行测试脚本和用例的过程。

自动化测试的主要目的是尽量减少需要手动执行的测试用例数量,而不是完全取代手动测试。

2. 什么时候你会选择自动化测试?

在以下情况下,自动化测试是可取的:

  • 重复性任务

  • 冒烟测试和健全性测试

  • 使用不同的数据集进行测试

  • 回归测试用例

通常,决策取决于投资回报率 (ROI)。

3. 什么时候你不会选择自动化测试?

在以下情况下,应避免自动化测试:

  • 被测应用程序频繁修改时

  • 一次性测试用例

  • 临时测试 - 即席测试

4. 自动化流程包含哪些步骤?

自动化流程中的关键步骤如下:

  • 选择测试工具

  • 确定自动化的目的

  • 策略、规划和设计

  • 测试执行管理

5. 自动化规划阶段讨论哪些主题?

在自动化规划过程中需要考虑的事项包括:

  • 选择“合适的”自动化工具

  • 如果适用,选择自动化框架。

  • 列出自动化范围内和范围外的测试元素。

  • 测试环境配置

  • 创建测试脚本的创建和实施的甘特图。

  • 确定测试交付成果

6. 在什么情况下敏捷方法不适合使用自动化测试?

在以下情况下,自动化测试不适合敏捷方法:

  • 在敏捷测试过程中经常需要更改规范。

  • 在敏捷开发中需要大量文档时

  • 仅适用于敏捷测试中的回归测试,例如持续集成。

7. 一个好的自动化工具的关键特性是什么?

  • 支持测试环境和易用性

  • 强大的调试能力

  • 强大的对象识别能力

  • 对象和图像测试功能

  • 对象识别

  • 数据库测试

  • 支持多种框架。

8. 软件自动化测试中使用哪些类型的框架?

软件自动化测试中使用了四种类型的框架。

  • 数据驱动自动化框架

  • 关键字驱动自动化框架

  • 模块化自动化框架

  • 混合自动化框架

9. 执行自动化测试时编写脚本的规范是什么?

编写自动化脚本时,请记住以下几点:

  • 使用一致的命名约定。

  • 十行代码要有三行注释。

  • 缩进要足够。

  • 健壮的错误处理和恢复机制

  • 尽可能使用框架。

10. 最常见的自动化测试工具有哪些?

最常用的自动化测试工具包括:

  • QTP(HP UFT)

  • Rational Robot

  • Selenium

11. 根据什么标准可以预测自动化测试的有效性?

可以使用以下条件来跟踪自动化测试的成功情况。

  • 缺陷检测率

  • 自动化完成时间和产品发布效率

  • 降低人工成本和其他开支。

12. 你能指出一些手动测试的缺点吗?

  • 手动软件测试需要更多的时间和精力。

  • 不一致性

  • 不断运行相同的测试场景既枯燥又乏味。

  • 对于特别大且时间紧迫的项目,手动测试是不可行的。

13. 跟我们分享一下你对Selenium的所有了解。

Selenium是一个免费的测试自动化库。它用于Web和移动环境的自动化。它由以下部分组成:

  • Selenium IDE(浏览器插件,用于录制和回放)

  • Selenium WebDriver

  • Selenium Grid(分布式测试)

  • Selenium支持使用Java、C#、Python、Ruby、PHP、Perl和Javascript编写脚本。

14. 请跟我们说说QTP。

HP UFT是QTP(Quick Test Professional)的新名称。它是一个商业自动化工具,支持多种测试环境,包括Web、桌面、SAP、Delphi、.Net、ActiveX、Flex、Java、Oracle、移动、PeopleSoft、PowerBuilder、Siebel、Stingray和Visual Basic。

其脚本语言是VBScript。该工具与HP ALM(测试管理工具)和HP LoadRunner(性能测试工具)配合使用效果很好。

QTP的突出特点包括业务流程测试、关键字驱动框架、XML支持、强大的检查点和测试结果。

15. Sikuli到底是什么?

Sikuli是一个图形用户界面自动化工具,它使用“视觉图像匹配”方法。在Sikuli中,所有网站组件都应作为项目中的图像保存。

Sikuli由以下部分组成:

  • Sikuli脚本

  • Jython可视化脚本API

  • Sikuli IDE

Sikuli的实际应用如下:

  • 它可以用来自动化Flash网页或对象的创建。

  • 它可以自动化基于窗口的应用程序以及你在显示器上看到的所有其他内容,而无需依赖内部API支持。

  • 它有一个简单的API。

  • 它易于与Selenium等技术集成。

  • 它可以自动化桌面应用程序。

  • Sikuli为自动化Flash对象提供了强大的支持。

  • 它结合了先进的“视觉匹配”和Flash对象来自动化桌面。

  • 它兼容任何技术——.NET、Java等。

16. Selenium和Sikuli的区别是什么?

SikuliSelenium
它为自动化Flash对象提供了强大的支持。它无法自动化Flash对象,如视频播放器、音频播放器等。
它有一个简单的API。它有一个复杂的API。
它使用视觉匹配来查找显示器上的东西。因此,我们可以自动化我们在显示器上看到的一切。它没有视觉匹配。
它可以自动化Web和Windows应用程序。它只能自动化Web应用程序。

17. Selenium的一些替代品是什么?

Selenium一直是许多组织使用的最流行的测试自动化技术之一。然而,它是一个高度技术性的工具,学习曲线很陡峭,可能并不适合所有测试任务。近年来出现了一些值得注意的替代品,列举如下:

  • Cucumber - 它是一个开源测试工具,允许使用简单的、基本的语言编写测试,这种语言团队中的每个人都能理解。它侧重于行为驱动开发,其中人类可读的功能规范用作测试的基础。

  • Cypress - Cypress是一个开源的免费测试工具。它使用JavaScript编写,由于其易用性和强大的功能而最近变得非常流行,这些功能使您可以进行浏览器测试。

    Cypress使创建和调试单元测试、端到端测试和集成测试变得容易。它还允许捕获图像和录制来帮助重现问题。

  • Robot Framework - Robot Framework是一个通用的开源自动化框架。它将用于测试自动化和机器人流程自动化 (RPA)。

18. 什么是Robot Framework?简要概述其架构。

Robot Framework是一个非常流行的开源自动化测试框架,主要用于机器人流程自动化 (RPA)。机器人流程自动化旨在使用软件模仿人类活动和交互。与真人相比,机器人自动化能够在一定程度上理解显示的内容,按下按键和按钮,浏览链接并检索数据。

Robot Framework是用Python开发的,并且与操作系统无关。生态系统中的大多数库也是开源的。它具有模块化设计,可以通过其他库进行扩展。它使用特定于框架的语法在文件中描述测试数据。一个测试套件包含许多这样的测试。

一旦开始实施测试,Robot Framework就会解码测试数据,并利用库提供的关键词与程序进行通信。这些库通过驱动工具主动或被动地与程序连接。

Robot Framework从命令行执行测试。但是,您可以以XML和HTML格式访问完整的统计数据和记录。该框架包含对标准库的良好支持,例如ArchiveLibrary、Browser Library、DataDriver Library、HttpRequestLibrary(用于Java)等。

19. Robot Framework提供了哪些测试库API?

Robot Framework提供三种测试库API。

  • 静态API - 一个包含过程的包或类,可以直接转换为关键字名称,这些名称接受与实现方法相同的参数。

  • 动态API - 应用的关键字名称以及如何执行是在运行时确定的。

  • 混合API - 静态API和动态API的集成。库是包含函数的类,这些函数告知它们要执行哪些关键字,但这些关键字必须可以直接访问。

20. 你将如何自动化Web应用程序的基本登录功能?

假设测试人员已经建立了测试环境和Selenium之类的测试工具,以下是自动化登录功能的步骤。

亲自验证登录,以了解登录屏幕上的所有文本框、复选框和按钮。跟踪用户在成功和失败登录中被转发到的页面。

创建一个测试数据集,其中包含用户名和密码组合。输入包括不同的长度和字母数字字符集。

生成测试用例以检查用户在真实场景中可能采取的替代路径。只需记录每个测试场景的预期结果。

在测试工具中,设置每个测试用例以便直接启动,并使用步骤2中提供的测试数据。注意实际输出与预期结果不符的情况。

检查并确认每次登录会话后的成功/错误语句和重定向。

21. 自动化测试有哪些风险?

虽然测试自动化提供了显著的优势,例如高效可靠的重复性测试,但团队应该注意一些问题。

投资回报率低 (Negative ROI)

团队可能会投入大量精力来启动自动化测试。自动化测试需要大量的代码和昂贵的工具。开发人员和测试人员需要投入大量精力来学习和部署自动化测试。

然而,一旦实施,团队可能会发现测试方法并没有带来任何实际好处,因为产品复杂且配置和功能不断变化。他们必须定期维护测试的最新状态。

技术追赶 (Playing catch-up with the technology)

与任何产品一样,测试自动化工具和框架也在不断发展。自动化工具的学习曲线很陡峭,并且需要足够的编程技能。

开发/测试团队不是选择一个工具并正确使用它,而是浪费时间学习和试验其他工具和技术。在这种情况下,自动化测试可能无法实现其最初宣称的优势。

运营问题 (Operational Concern)

所有编程都需要进行管理和维护,以满足不断增长的需求并解决错误。测试自动化代码也不例外。

如果开发人员和测试人员发现自己将大部分时间都花在了自动化框架上,而不是改进和解决程序中的问题,那么自动化测试就失败了。

更新于:2021年11月26日

755 次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告