50 多个顶级自动化测试面试问题及答案
应届生自动化测试面试问题与答案
1) 什么是自动化测试?
自动化测试使用自动化工具执行测试用例。自动化测试的主要目标是减少手动运行的测试用例数量,而不是完全消除手动测试。
2) 您何时会自动化测试?
在以下情况下优先选择自动化:
- 重复性任务。
- 回归测试
- 冒烟测试和健全性测试。
- 使用多个数据集进行测试。
对于一次性测试用例不建议进行测试。通常,决定哪些测试用例需要自动化是基于投资回报率(ROI)。自动化测试执行的次数越多,投资回报率就越高。
3) 您何时不会自动化测试?
在以下情况下不应进行自动化:
4) 自动化过程中涉及哪些步骤?
自动化过程中涉及的步骤是:
- 选择测试工具
- 定义自动化范围
- 规划、设计和开发
- 测试执行
- 维护
5) 自动化规划阶段涵盖哪些要点?
在自动化规划阶段,必须考虑以下事项:
- 选择“正确”的自动化工具
- 选择自动化框架(如果有)。
- 自动化范围内的和范围外的项目列表。
- 测试环境设置。
- 准备测试脚本开发和执行的项目时间表甘特图。
- 确定测试交付物。
有经验者的自动化测试面试问题
6) 在什么情况下,您不能将自动化测试用于敏捷方法?
在以下条件下,自动化测试对敏捷方法没有帮助:
- 当用户故事不断变化时
- 当敏捷中需要详尽的文档时。
- 仅适用于敏捷测试期间的回归测试,例如持续集成。
了解更多关于敏捷测试的信息。
7) 什么是测试脚本?
测试脚本是用于在应用程序上执行一组指令的代码。它用于验证应用程序是否按照软件要求正常运行。
当您运行脚本时,它会给出通过或失败的测试结果,这取决于应用程序是否按照预期工作。
8) 如何选择一个好的测试自动化工具?
- 广泛的测试环境支持
- 易于使用
- 良好的调试设施
- 强大的对象识别
- 录制和回放
- 支持常见的编程语言创建测试脚本,例如 Java
- 图像测试能力
- 数据库测试
- 参数化
- 支持多种自动化框架
- 工具可用的支持类型,如文档、教程、培训等
- 成本和预算
- 良好的报告系统
9) 您能告诉我一些自动化过程中的良好编码实践吗?
以下是良好的自动化实践:
- 添加适当的注释来解释该编码部分。
- 您应该识别可重用方法并将其写入单独的文件中。
- 必须遵循特定语言的编码约定。
- 将测试数据存储在单独的文件中。
- 定期运行您的脚本。
10) 什么是模块化测试框架?
模块化测试框架建立在抽象概念之上。在这种类型的框架中,测试人员为所有被测应用程序模块创建脚本,然后这些脚本以分层顺序组合起来创建测试用例。
11) 数据驱动测试框架
在数据驱动测试框架中,输入数据和对应的预期输出数据存储在文件或数据库中。
自动化脚本对多个数据集运行相同的测试步骤。它还允许您运行多个测试用例,其中只有输入数据不同,但执行步骤保持不变。
12) 您使用什么版本控制系统?
我们使用 GitHub。版本控制有助于跟踪代码更改。它通过记录更改历史来控制测试脚本源代码,以简化修改过程。如果犯了错误,您还可以恢复到以前的代码版本。
13) 什么是 XPath 轴?列举一些。
XPath 是一种操作 XML(可扩展标记语言)数据的语法。它们有助于定位与树上节点相关的节点。一些重要的 XPath 轴有 ancestor、child、namespace、parent 等。
14) 如何加速自动化测试套件?
需要进行 UI 测试并与多个元素交互的应用程序可能会减慢测试过程。最好创建简单的测试脚本来加速测试执行。
15) 自动化测试中需要文档吗?
文档在测试自动化中起着至关重要的作用。您应该记录所有方法和程序,以确保它们的可重复性。测试规范、设计、代码更改、测试用例、自动化计划、错误报告。
16) 软件自动化测试中使用哪些类型的框架?
使用的四种框架类型是
- 数据驱动自动化框架
- 关键字驱动自动化框架
- 模块化自动化框架
- 混合自动化框架
了解更多关于自动化框架的信息
17) 是否可能实现 100% 自动化?
不,不可能自动化所有事情。实现 100% 自动化是困难的,因为有些场景(如注册页面有验证码)或一些我们不常执行的测试用例。此外,自动化这些测试用例不会为自动化增加价值,也不会带来正向投资回报。
18) 您平均每天自动化多少个测试用例?
答案取决于测试场景的长度和复杂性。通常,当复杂性有限时,QA 测试人员每天可以自动化 2-4 个测试场景。然而,当复杂性很高时,有时可能会减少到 1-2 个。
19) 执行自动化测试时的脚本标准是什么?
编写自动化脚本时,必须考虑以下事项:
- 统一命名约定。
- 每 10 行代码有 3 行注释。
- 足够的缩进。
- 强大的错误处理和恢复场景。
- 尽可能使用框架。
20) 最流行的自动化测试工具是什么?
最流行的自动化测试工具是
这里有自动化测试工具的完整列表。
21) 如何衡量自动化测试的成功?
以下标准可以衡量自动化测试的成功:
- 缺陷检测率
- 自动化执行时间以及发布产品节省的时间
- 劳动力及其他成本的降低
22) 您能列举一些手动测试的缺点吗?
- 手动测试需要更多时间和更多资源。
- 不准确
- 重复执行相同的测试用例容易出错且乏味。
- 对于非常大型且有时间限制的项目,手动测试是不切实际的。
23) 自动化测试中的开源工具、供应商工具和内部工具之间有什么区别?
以下是它们之间的区别
- 开源工具:它们是免费工具,源代码可在互联网上获取。示例:Selenium
- 供应商工具:这些测试工具由公司开发,您需要购买其许可证。示例:Microfocus UFT。
- 内部工具:由公司为其自身使用而构建。
24) 自动化测试的先决条件是什么?
自动化测试的一些重要先决条件是
- 一个稳定的构建
- 待测试的功能
- 用于自动化测试的测试用例
25) 没有框架可以进行自动化吗?
框架是指导方针,不是创建和执行自动化脚本的强制要求。所以,是的,我们可以在没有框架的情况下进行自动化。如果我们创建并遵循一个框架,那么增强和维护测试脚本将变得容易。
26) 告诉我您对 Selenium 的了解
Selenium 是一个免费(开源)的测试自动化套件。它用于自动化 Web 和移动环境。它包括以下内容。
- Selenium IDE(浏览器插件——录制和回放工具)
- Selenium WebDriver
- Selenium Grid(分布式测试)
- Selenium 支持 Java、C#、Python、Ruby、PHP、Perl 和 JavaScript 等语言的脚本编写。
27) 告诉我关于 QTP 的信息
QTP (Quick Test Professional)现在被称为 Microfocus UFT。它是一个商业自动化工具,支持广泛的测试环境:Web、桌面、SAP、Delphi、Net、ActiveX、Flex、Java、Oracle、移动、PeopleSoft、PowerBuilder、Siebel、Stingray 和 Visual Basic 等。
脚本语言是 VBScript。该工具与 ALM(测试管理工具)和 LoadRunner(性能测试工具)配合良好。
QTP 的显著特点包括业务流程测试、关键字驱动框架、XML 支持、强大的检查点和测试结果。
28) 什么是 SikuliX?
SikuliX是一个使用“视觉图像匹配”方法自动化图形用户界面的工具。SikuliX 中的所有网页元素都应以图像形式获取并存储在项目中。
SikuliX 包括
- SikuliX Script
- Jython 的可视化脚本 API
- SikuliX IDE
SikuliX 的实际用途是
- 它可以自动化基于窗口的应用程序以及屏幕上您看到的任何内容,而无需使用内部 API 支持。
- 它提供了一个简单的 API。
- 它可以轻松地与 Selenium 等工具链接。
- 可以自动化 Web 应用程序。
- SikuliX 为自动化 Flash 对象提供了广泛支持。
- 它可以运行在任何技术上——.NET、Java。
29) 请说明 Selenium 和 SikuliX 之间的区别?
SikuliX | Selenium |
---|---|
它为自动化 Flash 对象提供了广泛支持。 | 它无法自动化视频播放器或音频播放器等 Flash 对象。 |
它有一个简单的 API。 | 它有一个复杂的 API。 |
它使用视觉匹配来查找屏幕上的元素。因此,我们可以自动化屏幕上看到的任何内容。 | 它使用 CSS、ID、定位器和其他选择器来识别 GUI 元素。 |
它可以自动化 Web 应用程序以及 Windows 应用程序。 | 它只能自动化 Web 应用程序。 |
30) 一个好的自动化框架应该具备哪些属性?
以下是一个好的自动化框架的一些重要属性
- 模块化:它是一个应适应变化的框架。因此,测试人员应该能够根据环境修改脚本。
- 可重用:它应该是可重用的,以便方法或工具应写入一个所有脚本都可以访问的公共文件中。
- 一致性:它应该以一致的格式编写。
- 独立性:自动化脚本应该以相互独立的方式编写。
- 集成:自动化框架的开发方式应该易于与其他应用程序集成。
31) 什么是跨浏览器测试?
它是浏览器自动化测试的一个子集,可帮助您确保在线应用程序在不同浏览器(如 Google Chrome、Mozilla Firefox、Microsoft Edge、Safari 等)中正常运行。
跨浏览器测试的主要目的是检查您的网站或 Web 应用程序在不同浏览器和操作系统的组合下是否正常工作。
32) 使用 Selenium 框架可以进行哪些测试?
您可以使用 Selenium 框架进行以下测试
- Web 应用程序的负载测试。
- Web 应用程序的回归测试。
- Web 应用程序的功能测试。
33) 自动化测试是白盒测试还是黑盒测试?
自动化测试主要是黑盒测试。
34) 在 Selenium 中,哪个关键字用于获取当前页面的 URL?
Selenium WebDriver 可以帮助您使用 getCurrentURL() 方法查找页面的当前 URL。此方法将查找打开的应用程序的 URL 并返回一个字符串。
35) 您会在哪里维护 URL、登录名和密码等信息?
URL、登录名和密码是经常使用且频繁更改的重要信息。它们应始终维护在单独的文件中。如果未这样做,则自动化测试人员必须在每个引用它的文件中进行更改。
3至5年经验者的自动化测试面试问题
36) QTP 的扩展和测试资产有哪些?
QTP 的一些重要测试资产和扩展是
- Results .xml
- Recovery scenario .qrs
- Test batch runner .mtb
- Shared object repository .tsr
- Local object repository .mtr
- Test file .mts
- Function library .qfl
37) 手动测试和自动化测试之间有什么区别?
参数 | 手动测试 | 自动化测试 |
---|---|---|
时间消耗 | 更多 | 更少 |
STLC | 手动操作 | 使用工具操作 |
成本 | 价格较低 | 昂贵 |
可靠性 | 可靠性较低 | 高度可靠 |
质量 | 低 | 高 |
技能要求 | 技能要求较低 | 技能要求较高。 |
38) 自动化测试框架的基本模块有哪些?
以下是自动化测试框架的一些基本模块
- 测试断言工具:此测试工具将提供断言语句,用于评估被测应用程序中的预期值。例如,Junit、TestNG 等。
- 数据设置:确保每个测试用例都从数据库、文件或嵌入在测试脚本中获取测试数据。
- 构建管理工具:框架需要构建和部署才能创建测试脚本。
- 持续集成工具:它们需要集成和部署框架在每次迭代中进行的更改。
- 报告工具:它有助于在测试用例执行后生成可读报告,以便更好地查看步骤、失败和结果。
- 日志记录工具:它们有助于更好地调试错误和缺陷。
39) 什么是 Cucumber?
Cucumber是一款开源(BDE)行为驱动开发工具。它是一款用于基于Web的应用程序自动化测试的工具,支持Java、Ruby、Scala、Groovy等语言。Cucumber读取用纯文本编写的可执行规范,并根据这些规范测试被测应用程序。
40) 什么是 TestComplete?
TestComplete 是一个用于桌面应用程序、Web、移动等自动化 UI 测试工具。它提供了在一个浏览器上录制测试用例并在多个浏览器上运行的灵活性,从而支持跨浏览器测试。
41) 什么是 Cypress?
Cypress 是一个开源测试框架。它使用 JavaScript 开发,由于其简单性和广泛的功能(支持浏览器测试),最近获得了普及,并且用户手册应进行彻底记录。
42) 如何在 Selenium WebDriver 中处理警报弹出窗口?
如果您在测试时遇到问题,Selenium 会发出警报。弹出界面允许您通过将控制权切换到弹出窗口,按下“确定”或“取消”按钮,然后返回到源页面屏幕来处理警报。
String srcPage = driver.getWindowHandle(); Alert pop = driver.switchTo().alert(); // shift control to the alert pop-up. Pop.accept(); // click k button.
43) 什么是混合测试框架?
混合测试框架通过将模块化脚本组合在模块化测试框架中来开发测试用例。
44) 写出自动化应用程序基本“登录”功能测试用例的步骤?
以下是自动化基本登录功能的步骤
步骤 1) 理解项目需求。
步骤 2) 识别测试场景
步骤 3) 准备一个包含每个场景对应数据的数据输入文件
步骤 4) 从程序启动工具。
步骤 5) 识别用户名、密码和登录按钮。
步骤 6) 验证负面场景的错误消息是否与正面测试场景的成功消息相同。
这些面试问题也将有助于您的口试