专栏首页贝克街的捉虫师自动化测试入门:是什么,流程,收益和工具

自动化测试入门:是什么,流程,收益和工具

http://mpvideo.qpic.cn/0bf2jeaaiaaa3eaeb6fj3vpfasodareqabaa.f10002.mp4?dis_k=cc04b07c621debb660c5902834b10d18&dis_t=1589527726

什么是自动化测试?

自动化测试意味着使用自动化工具来执行您的测试用例套件。相反,手动测试是由坐在计算机前的人员仔细执行测试步骤来执行的。

自动化测试软件还可以将测试数据输入被测系统,比较预期结果和实际结果并生成详细的测试报告。测试自动化需要大量的资金和资源投入。

连续的开发周期将需要重复执行相同的测试套件。使用自动化测试工具,可以录制该测试套件并根据需要回放。一旦测试套件自动化,就很少需要人工干预。这提高了测试自动化的投资回报率。自动化的目标是减少手动运行的测试用例的数量,而不是完全消除手动测试。

为什么要进行自动化测试?

由于以下原因,自动化软件测试非常重要:

  • 手动测试所有工作流程,所有阶段,所有异常情况都需要花费时间和金钱
  • 手动测试多语言站点很困难
  • 自动化几乎不需要人工干预。您可以无人值守运行自动化测试(隔夜)
  • 自动化提高了测试执行的速度
  • 自动化有助于增加测试范围
  • 手动测试可能很无聊,因此容易出错。

哪些测试用例可以自动化?

可以使用以下标准选择要自动化的测试用例,以提高自动化的投资回报率

  • 高风险-关键业务测试用例
  • 重复执行的测试用例
  • 非常繁琐或难以手动执行的测试用例
  • 耗时的测试用例

以下类别的测试用例不适合自动化:

  • 新设计的测试用例,并且一次都没手动执行过
  • 需求经常变化的测试用例
  • 临时执行的测试用例。

自动化测试流程:

自动化过程中遵循以下步骤

测试工具选择

测试工具的选择很大程度上取决于被测应用程序所基于的技术。例如,QTP不支持Informatica。因此QTP不能用于测试Informatica应用程序。在AUT上进行工具概念验证是一个好主意。

定义自动化范围

自动化范围是被测应用程序中将被自动化的部分。以下几点有助于确定范围:

  • 对业务很重要的功能
  • 包含大量数据的方案
  • 跨应用程序的通用功能
  • 技术可行性
  • 业务组件的重用程度
  • 测试用例的复杂性
  • 能够使用相同的测试用例进行跨浏览器测试

计划,设计和开发

在此阶段,您将创建一个自动化策略和计划,其中包含以下详细信息:

  • 选择自动化工具
  • 框架设计及其功能
  • 范围内和范围外的自动化项目
  • 自动化测试环境准备
  • 脚本和执行的时间表
  • 自动化测试的交付物

测试执行

在此阶段执行自动化脚本。这些脚本需要输入测试数据,然后才能运行。一旦执行,他们将提供详细的测试报告。

可以直接使用自动化工具或通过将调用自动化工具的测试管理工具来执行执行。

示例:Quality center是测试管理工具,它将依次调用QTP来执行自动化脚本。脚本可以在一台机器或一组机器中执行。可以在夜间执行,以节省时间。

维护

随着新功能以连续的周期被添加到被测系统中,需要为每个发布周期添加,检查和维护自动化脚本。必须进行维护才能提高自动化脚本的效率。

自动化框架

框架是一套自动化准则,可帮助

  • 保持测试的一致性
  • 改善测试结构
  • 节约编码时间
  • 减少代码维护
  • 提高可重用性
  • 非技术测试人员可以参与编码
  • 可以减少使用该工具的培训时间
  • 适当时涉及数据

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

  • 数据驱动的自动化框架
  • 关键字驱动的自动化框架
  • 模块化自动化框架
  • 混合自动化框架

自动化工具最佳实践

为了获得最大的自动化投资回报,请注意以下几点

  • 在项目开始之前,需要详细确定自动化范围。这为自动化设定了期望。
  • 选择正确的自动化工具:一定不能根据工具的流行程度来选择它,而是它是否适合自动化要求。
  • 选择合适的框架
  • 脚本标准-编写自动化脚本时必须遵循标准。他们之中有一些是
    • 创建统一的脚本,注释和代码缩进
    • 适当的异常处理-系统故障或应用程序异常行为时如何处理错误。
    • 用户定义的消息应进行编码或标准化,以供测试人员理解错误记录。
  • 衡量指标-不能通过将手动工作与自动化工作进行比较,也可以通过捕获以下指标来确定自动化是否成功。
    • 发现缺陷的百分比
    • 每个发布周期进行自动化测试所需的时间
    • 释放时间最短
    • 顾客满意度指数
    • 生产率提高

如果遵守上述准则,则可以极大地帮助您成功实现自动化。

自动化测试的好处

以下是自动化测试的好处:

  • 比手动测试快70%
  • 应用功能的测试范围更广
  • 结果可靠
  • 确保一致性
  • 节省时间和成本
  • 提高准确性
  • 执行时不需要人工干预
  • 提高效率
  • 执行测试的速度更快
  • 可重复使用的测试脚本
  • 通常测试比较彻底
  • 通过自动化可以实现更多的执行周期
  • 提前上市

可以自动化的不同类型的软件测试

  • 冒烟测试
  • 单元测试
  • 集成测试
  • 功能测试
  • 关键字测试
  • 回归测试
  • 数据驱动测试
  • 黑盒测试

如何选择自动化工具?

选择正确的工具可能是一项艰巨的任务。遵循以下标准将帮助您选择最适合您需求的工具

  • 环境支持
  • 使用方便
  • 数据库测试
  • 对象识别
  • 影像测试
  • 错误恢复测试
  • 对象映射
  • 使用的脚本语言
  • 支持各种类型的测试-包括功能,测试管理,移动等。
  • 支持多种测试框架
  • 易于调试自动化软件脚本
  • 能够在任何环境下识别控件对象
  • 广泛的测试报告和结果
  • 最大限度地减少所选工具的培训成本

选择工具是自动化之前要解决的最大挑战之一。首先,确定需求,探索各种工具及其功能,设定对工具的期望,然后进行概念验证。

自动化测试工具

市场上有大量的功能和回归测试工具。这是我们专家认证的最佳工具

Ranorex Studio

Ranorex Studio是一种用于自动化功能UI测试,回归测试,数据驱动测试等的多合一工具。Ranorex Studio包含一个易于使用的即点即用界面,可以自动执行针对Web,桌面和移动应用程序的测试。

特征:

  • 在台式机,网络和移动设备上进行功能性UI和端到端测试
  • 跨浏览器测试
  • SAP,ERP,Delphi和旧版应用程序。
  • iOS和Android
  • 在本地或远程,并行或在Selenium Grid上运行测试
  • 可靠的报告

mabl

mabl提供了无脚本的端到端测试自动化,并与交付管道集成在一起,因此您可以专注于改进应用程序。

特征:

  • 专有的机器学习模型可自动识别并显示应用程序问题
  • UI更改时会自动修复测试
  • 对每个构建的自动化回归分析

Selenium

它是用于回归测试的软件测试工具。它是一个开源测试工具,为回归测试提供了回放和录制功能。Selenium IDE仅支持Mozilla Firefox Web浏览器。

它提供了以其他语言(例如Java,Ruby,RSpec,Python,C#等)导出记录的脚本的规则

  • 它可以与JUnit和TestNG等框架一起使用
  • 它可以一次执行多个测试
  • 常见的Selenium命令的自动完成
  • 走查测试
  • 使用ID,名称,X路径等标识元素。
  • 将测试存储为Ruby脚本,HTML和其他任何格式
  • 它提供了一个断言每个页面标题的选项
  • 它支持Selenium user-extensions.js文件
  • 它允许在脚本中间插入注释,以更好地理解和调试

QTP(MicroFocus UFT)

QTP被广泛用于功能和回归测试,它适用于每个主要的软件应用程序和环境。为了简化测试的创建和维护,它使用关键字驱动测试的概念。它允许测试人员直接从应用程序构建测试用例。

  • 非技术人员更容易使用它来适应和创建工作测试用例
  • 通过为开发人员彻底记录和复制缺陷,可以更快地修复缺陷
  • 在单个站点上折叠测试创建和测试文档
  • 参数化比WinRunner容易
  • QTP支持.NET开发环境
  • 具有更好的物体识别机制
  • 通过使用活动屏幕,它可以增强现有的QTP脚本,而无需使用“正在测试的应用程序”

Rational Functional Tester

它是一个面向对象的自动化功能测试工具,能够执行自动化功能,回归,数据驱动的测试和GUI测试。该工具的主要特点是

  • 它支持各种协议和应用程序,例如Java,HTML,NET,Windows,SAP,Visual Basic等。
  • 它可以记录并回放所需的动作
  • 它与诸如Rational Clear Case和Rational Team Concert集成之类的源代码控制管理工具很好地集成在一起。
  • 它允许开发人员创建与关键字相关的脚本,以便可以重复使用
  • Eclipse Java Developer Toolkit编辑器使团队可以使用Eclipse用Java编写测试脚本的代码
  • 它通过代理SDK(Java / .Net)支持自定义控件
  • 它支持版本控制,以实现测试脚本的并行开发和地理分布团队的并发使用

WATIR

它是用于回归测试的开源测试软件。它使您能够编写易于阅读和维护的测试。Watir仅在Windows上支持Internet Explorer,而Watir Webdriver支持Chrome,Firefox,IE,Opera等。

  • 它支持不同平台上的多个浏览器
  • 它没有使用专有的供应商脚本,而是使用功能齐全的现代脚本语言Ruby
  • 它支持您的Web应用程序,无论它是用什么开发的

SilkTest

Silk Test专为进行功能和回归测试而设计。对于电子商务应用,SilkTest是领先的功能测试产品。它是Borland在2006年接管的Segue Software的产品。它是一种类似于C ++的面向对象的语言。它使用对象,类和继承的概念。其主要特点包括

  • 它包含所有源脚本文件
  • 它将脚本命令转换为GUI命令。在同一台计算机上,命令可以在远程或主机上运行
  • 为了识别鼠标的动作以及击键,可以执行Silktest。它可以使用回放和记录方法或描述性编程方法来获取对话框
  • 它将被测应用程序的所有控件和窗口标识为对象,并确定每个窗口的所有属性和属性

总结

正确选择自动化工具,测试过程和团队,对于成功实现自动化至关重要。手动和自动化方法齐头并进,以成功进行测试。


视频编/译自Guru99,国外的一个免费IT课程平台,很喜欢这种短而精的视频教学形式,分享给大家。本人英语水平有限,字幕是机器翻译后再校对的,存在不当之处敬请谅解。

本文分享自微信公众号 - 贝克街的捉虫师(BSTester),作者:编/译自Guru99

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手动测试入门:概念,类型,工具

    http://mpvideo.qpic.cn/0bf2eiaacaaaoeael35j4bpfaiwdaeraaaia.f10002.mp4?dis_k=cce...

    归根落叶
  • 搭建私有PTS性能测试服务(六)

    前几篇我们介绍了怎么对nGrinder改造成阿里云PTS类似的样子,也给大家举例演示了怎么利用nGrinder测试接口性能,那测试结果出来后,就需要对测试结果进...

    归根落叶
  • 什么是回归测试?

    http://mpvideo.qpic.cn/0bf22iaaaaaanmahnjv2ajpfbuwdadjaaaaa.f10002.mp4?dis_k=e95...

    归根落叶
  • 成为优秀自动化测试工程师的7个步骤

    企业完全同意这一说法,这就是您在自动化测试行业中看到大量就业机会的原因。我在Quora上收到了很多与自动化测试中的职业选择相关的答案请求,以及人们如何在有或没有...

    八音弦
  • 自动化测试解决了什么问题

    为了解自动化测试的当前和未来状态,我们采访了14位非常熟悉自动化测试的IT专业人员。我们问他们:“通过自动化测试解决了哪些现实问题?”

    八音弦
  • 测试人员必看-做好自动化测试的7大技能

    随着敏捷和DevOps等新时代项目开发方法逐渐取代旧的瀑布模型,测试需求在业界不断增长。测试人员现在正在与开发人员一起工作,自动化测试在许多方面极大地取代了手动...

    优测utest
  • Spring Boot 直接用jar运行项目

    庞小明
  • 《软件工程之美》打卡第六周

    上一周我给大家总结分享了软件工程之美当中的开发编码篇,这周会继续分享软件测试篇中的内容:

    用户1130025
  • 【ICCV2019教程】手把手带你重现SOTA深度学习模型,附相关资料下载

    【导读】深度学习已经成为计算机视觉领域事实上的标准算法。针对各种不同的任务,每年研究者都会提出大量的方法。重现整个系统的每个细节,可能不仅有问题而且耗时,尤其是...

    代码医生工作室
  • Python自动测试必备图谱

    晚上花了点时间,开始逐步梳理利用开源技术进行企业级自动化测试解决方案的思维导图, 下面这张图是初稿,刚开始梳理,预计要花相当长一段时间来细化,重构...

    苦叶子

扫码关注云+社区

领取腾讯云代金券