测试自动化面试问题的这一部分将涵盖诸如为什么自动化,如何自动化以及自动化测试工具选择的主题。 什么时候应该首选手动测试而不是自动化测试? 在某些情况下,手动测试优先于自动化测试,例如: 短期项目:尽管自动测试旨在节省时间和资源,但是设计和维护它们却需要时间和资源。例如,如果您要建立一个小型的促销网站,则依靠手动测试可以更加高效。 临时测试:在临时测试中,没有特定的方法。这是一种完全计划外的测试方法,其中测试人员的理解和洞见是唯一重要的因素。 探索性测试:这种测试需要测试人员的知识,经验,分析能力,逻辑技能,创造力和直觉。因此,人类的参与在探索性测试中很重要。 可用性测试:在这里,测试人员需要衡量软件或产品对最终用户的友好程度,效率或便利性。人工观察是最重要的因素,因此首选手动方法。
自动化测试什么时候有用?哪些测试用例可以自动化? 不可能自动化所有测试用例,因此重要的是确定首先要自动化的那些用例。 有一些顶级候选人,例如: 重复性任务是主要候选人。这些任务不仅无聊,而且经常是最常见的错误。 需要多个数据集的测试。与其手动在字段中输入所有信息,不如自动执行从数据源中读取信息并自动将其输入相应表格的过程。 在几种不同的硬件或软件平台和配置上运行的测试。 手动导出大量数据,处理数字并制作详细的图形非常耗时。您可以投资将为您完成任务的工具或自动化策略。 测试自动化的成功需要仔细的计划和设计工作。这些步骤包括:
首先,您应该定义自动化测试的目标,并确定要自动化的测试类型。一旦确定要执行哪种测试,就需要选择适当的工具。
接下来,定义自动化范围。确定要自动化的测试用例。
确定目标和要自动化的测试类型之后,您应该确定自动化测试将执行的操作。创建测试脚本并开发测试套件以保存您的测试用例。
下一步是执行。可以直接使用自动化工具或通过将调用自动化工具的测试管理工具来执行执行。
一旦执行,下一步就是创建报告格式,以便记录各个测试日志以及测试过程中执行的操作的详细信息。定义要创建的测试报告格式的类型,屏幕截图,消息等。 代码驱动的测试:这里的重点主要放在测试用例的执行上,以查明代码的各个部分是否按预期执行。这种测试方法是在敏捷软件开发中使用的一种流行方法。 图形用户界面(GUI)测试:使用此方法可以测试具有GUI的应用程序。 测试人员可以记录用户操作并对其进行任意次数的分析。 测试用例可以用多种编程语言编写,例如C#,Java,Perl,Python等。 测试自动化框架:框架是用于产生自动化测试活动的有益结果的一组准则。 它汇集了功能库,测试数据源,对象详细信息和其他可重用模块。 选择正确的自动化工具 根据需要选择正确的自动化框架 定义自动化范围 计划测试用例和测试套件 识别测试成果 设置测试环境配置
要决定选择哪些工具,您可以按照以下步骤操作:
全面了解您的项目需求,并确定要自动化的测试方案
搜索适合您项目需求的工具列表
确定您的自动化工具预算
现在比较每个工具的主要标准,例如:是否容易开发和维护该工具的脚本,它是否可以在Web,移动,桌面等平台上使用。该工具是否具有测试报告功能?该工具可以支持多少种测试类型?该工具支持几种语言
比较完工具后,请选择预算范围内的工具。根据上面列出的关键条件,确保它为您带来更多优势 模块化的:框架应该适应变化。 可重用–常用的方法或实用程序应保存在一个公共文件中,所有脚本都可以轻松访问该文件。 一致–应遵循编码惯例,以一致的格式编写测试套件。 独立–测试脚本的编写方式应使其彼此独立。 日志记录–在框架中实现日志记录功能是一件好事。 报告-脚本编写完成后,我们可以通过电子邮件发送结果和报告。 集成–自动化框架应易于与其他应用程序集成 缺陷检出率 自动化执行时间 减少人工成本 开源工具:Internet上提供源代码的免费工具 供应商工具:这些工具由公司开发,并附带许可证 内部工具:公司自行制造的工具 命名约定的统一性,在任何时候和任何地方注释功能,适当的缩进, 强大的错误处理以及轻松恢复的能力是您编写脚本时应遵循的一些良好做法。 使用测试自动化框架的优点是: 代码的可重用性 可靠的恢复方案 最大测试范围 维护成本低 从长远来看,高投资回报率(ROI) 最少的人工干预 简单的报告功能 测试断言工具:此模块将提供断言语句,用于在被测应用程序中测试期望值。 数据设置:每个测试用例都需要从数据库或文件中或嵌入在测试脚本中获取用户数据。 构建管理工具:可用于构建框架的工具,以便可以创建测试脚本。 持续集成工具:在每次迭代时,都需要使用持续集成/连续交付工具来集成和部署框架中所做的更改。 报告工具:执行测试用例后,需要使用报告工具来生成可读的报告。这样,您可以更好地了解步骤,结果和失败。 日志记录工具:框架中的日志记录工具有助于更好地调试错误和错误。 100%的测试自动化是不可能的。仍然需要手动测试。无法自动化的测试是: 临时测试 –此处的测试无需准备和编写测试用例。在临时测试期间,质量检查专家会随机测试系统的功能;他的目标是发挥创造力,“打破”系统并发现缺陷。 探索性测试 –在探索性测试期间,质量检查专家会根据其个人经验像探险家一样对产品进行测试。在了解了产品的功能之后,测试人员设计了测试用例,以用于进一步测试产品。在探索性测试中,测试人员需要在测试过程中依靠自己的经验和设计测试用例。 用户界面测试 –在这里,质量检查专家会验证界面元素的属性和状态。此外,它们还确保界面中的设计元素与最终布局中的元素匹配。 测试自动化面试问题的这一部分将涵盖与自动化测试有关的棘手问题。 提高测试的可靠性 降低维护成本 增加测试范围 加快测试执行速度 提高软件测试的准确性 自动化测试的缺点包括: 开发和维护时间更长 初期投资高 需要熟练的资源 环境设置很复杂 调试测试脚本很困难 自动化测试可以是黑盒或白盒类型的测试,具体取决于执行自动化的方案。 这是黑盒测试,因为测试人员通常在不了解应用程序的低级设计或代码的情况下对其进行测试。 但是有时候,自动化测试脚本需要访问应用程序中使用的数据库详细信息,因此它也可以是一种白盒测试。 模块化的:框架应该适应变化。 可重用–常用的方法或实用程序应保存在一个公共文件中,所有脚本都可以轻松访问该文件。 一致–应遵循编码惯例,以一致的格式编写测试套件。 日志记录–在框架中实现日志记录功能是一件好事。 报告-脚本编写完成后,我们可以通过电子邮件发送结果和报告。 集成–自动化框架应易于与其他应用程序集成 使用框架时遇到的一些挑战是: 了解测试自动化需要实现的功能 识别多个领域的需求以实现设计自动化框架 数据驱动的自动化测试的目的是简化涉及复杂和庞大数据集的测试过程。 在“数据驱动测试”中,测试数据包括输入,预期输出和结果字段。 这些字段在CSV文件,excel文件,文本文件,XML文件等文件中列出。 然后将这些文件馈送到自动化工具中执行,该工具依次比较预期数据和实际数据。 然后,将获得的结果记录在结果字段中。 TestNG是一个开源的自动化测试框架,其中NG指的是NextGeneration.TestNG的创建者是Cedric Beust。 它受到其他框架(例如JUnit和NUnit)的启发。它被设计为比JUnit更好,尤其是在测试集成类时。 TestNG使开发人员能够轻松编写更灵活,功能更强大的测试。 它的一些突出功能包括: 支持注释 基于更多的Java和OO功能 支持测试集成类 提供灵活的运行时配置 支持相关的测试方法,并行测试和负载测试 提供灵活的插件API。 并且也支持多线程 在TestNG中,测试基于Junit,但它旨在克服JUnit的局限性。 TestNG优于Junit的一些优点是: 注释在TestNG中更容易理解 在TestNG中,可以轻松将测试用例分组 与JUnit不同,TestNG支持并行测试 公司负责产品开发的测试团队采用敏捷实践来实现其目标。 测试自动化是敏捷的基本组成部分,但是在某些情况下,敏捷中的自动化测试是无用的, 例如: 如果有详尽的文档记录 当需求不断变化时 一次性任务和探索性测试案例不应自动化 自动化测试时应遵循哪些最佳实践? 为了获得最大的自动化投资回报率,请注意以下几点: 在项目开始之前,需要详细确定自动化范围 选择适合您需求的正确自动化工具 根据需要选择合适的框架 在编写自动化脚本时遵循脚本标准 接下来,检查您执行的自动化是否成功。衡量指标,例如 发现缺陷的百分比 自动化所需的时间 顾客满意度指数 生产率提高 自动化测试涉及的一些风险包括: 它需要被杀死的资源,他们具有一些编程知识,并且能够轻松适应新技术 如果用户界面的需求不断变化,那么自动化测试将是有问题的 如果正在测试的应用程序不稳定,则可能会遇到很多错误,可能会遇到很多错误。 |
|