0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试自动化的两种方法

汽车电子工程知识体系 来源:汽车电子硬件设计 作者:汽车电子硬件设计 2022-03-21 10:56 次阅读

许多编程组越来越依赖于自动化测试,特别是那些使用测试驱动开发的组。有许多框架可以编写测试,每次将代码输入版本控制系统时,连续集成软件都会自动运行测试。

虽然自动化不能重现人类所能做的一切(以及他们所认为的所有方式),但它对回归测试非常有用。但是,为了真正有用,它确实需要一个精心开发的测试套件的测试脚本。

虽然手动测试可能会在软件应用程序中发现许多缺陷,但这是一个费时费力的过程。此外,它可能无法有效地发现某些类型的缺陷。测试自动化是一个编写计算机程序来进行测试的过程,否则就需要手动完成这些测试。一旦测试实现了自动化,它们就可以快速运行了。对于维护寿命长的软件产品来说,这通常是最划算的方法,因为在应用程序的生命周期中,即使是很小的补丁也会导致在早期工作的特性中断。

测试自动化一般有两种方法:

·代码驱动的测试。对类、模块或库的公共(通常)接口使用各种输入参数进行测试,以验证返回的结果是否是正确的。

·图形用户界面测试。测试框架生成用户界面事件,如击键和鼠标单击,并观察导致用户界面的变化,以验证程序的可观察行为是正确的。

测试自动化工具可能很昂贵,而且通常与手动测试结合使用。从长远来看,它可以实现具有成本效益,特别是在回归测试中重复使用时。

自动生成测试用例的一种方法是通过使用系统的模型进行测试用例生成来进行基于模型的测试,但研究将继续进行各种替代方法。

自动化是什么,何时自动化,甚至是否真的需要自动化,这些都是测试(或开发)团队必须做出的关键决策。选择产品的正确功能,在很大程度上决定了自动化的成功。应避免自动化不稳定的特性或正在进行更改的特性。

代码驱动测试

软件开发的一个日益增长的趋势是使用测试框架,如xUnit框架(例如,JUnit和NUnit),允许执行单元测试,以确定代码的各个部分在各种情况下是否按预期发挥作用。测试用例描述了需要在程序上运行的测试,以验证程序是否按预期运行。

代码驱动的测试自动化是敏捷软件开发的一个关键特性,其中它被称为测试驱动的开发(TDD)。在编写代码之前,需要先编写单元测试来定义该功能。只有当所有测试都通过时,该代码才被认为是完整的。支持者认为,它生产的软件比通过人工探索进行测试的代码更可靠,成本也更低。它被认为更可靠,因为代码覆盖率更好,而且它在开发过程中不断运行,而不是在瀑布式开发周期结束时运行一次。开发人员在进行更改时立即发现缺陷,而修复缺陷的成本最低。最后,代码重构更安全;将代码转换为更简单的形式,代码重复更少,但等效的行为,不太可能引入新的缺陷。

图形用户界面(GUI)测试

许多测试自动化工具提供了记录和回放功能,允许用户交互式地记录用户操作,并回放任何次数,并将实际结果与预期结果进行比较。这种方法的优点是它需要很少或不需要软件开发。这种方法可以应用于任何具有图形用户界面的应用程序。然而,依赖于这些特性就带来了主要的可靠性和可维护性问题。重新标记一个按钮或将其移动到窗口的另一部分,可能需要重新记录该测试。录制和回放还经常添加不相关的活动或错误地记录一些活动。

这种类型的工具的一个变体是用于对网站的测试。这里的“界面”是网页。这种类型的工具也需要很少或不需要软件开发。然而,这样的框架使用了完全不同的技术,因为它是读取html,而不是观察窗口事件。

另一个变体是无脚本的测试自动化,它不使用记录和回放,而是构建被测试应用程序的模型,然后允许测试人员通过简单地编辑测试参数和条件来创建测试用例。这不需要任何脚本技能,但具有脚本方法的所有能力和灵活性。测试用例维护很容易,因为没有代码需要维护,而且由于被测试的应用程序会更改,因此可以简单地重新学习或添加软件对象。它可以应用于任何基于gui的软件应用程序。

要测试什么

测试工具可以帮助自动化任务,如产品安装、测试数据创建、GUI交互、问题检测(考虑配备了oracles的解析或轮询代理)、缺陷日志记录等,而不一定是以端到端方式自动化测试。

在考虑测试自动化时,必须保持满足普遍的要求:

·平台和操作系统独立性

·数据驱动功能(输入数据、输出数据、元数据)

·可自定义的报告(数据库访问、晶体报告)

·易于调试和日志记录

·版本控制友好-最小的二进制文件

·可扩展的和可定制的(开放的api,以便能够与其他工具集成)

·通用驱动程序(例如,在Java开发生态系统中,这意味着Ant或Maven和流行的ide)。这使得测试能够与开发人员的工作流集成。

·支持无人值守的测试运行,以便与构建过程和批处理运行进行集成。连续集成服务器需要这样做。

·电子邮件通知(在故障或阈值级别上的自动通知)。这可能是执行它的测试运行器或工具。

·支持分布式执行环境(分布式测试台)

·分布式应用程序支持(分布式SUT)

自动化框架方法

框架是一个设置特定产品自动化规则的集成系统。该系统集成了功能库、测试数据源、对象细节和各种可重用模块。这些组件作为小型构建块,需要组装以表示业务流程。该框架提供了测试自动化的基础,并简化了自动化工作。

定义自动化框架和测试工具之间的边界

工具是专门针对某些特定的测试环境而设计的。例如:Windows自动化工具、web自动化工具等。它作为一个自动化过程的驱动代理。但是,自动化框架并不是执行某些特定任务的工具,而是一个提供解决方案的基础设施,其中不同的工具可以插入自己,并以统一的方式完成它们的工作。因此,为自动化工程师提供了一个共同的平台。

有各种类型的框架。它们是根据它们所利用的自动化组件进行分类的。这些内容包括:

·数据驱动测试

·模块化驱动的测试

·关键字驱动测试

·混合动力测试

·基于模型的测试

测试工具

程序测试和故障检测可以通过测试工具和调试器得到显著的帮助。

测试/调试工具包括以下功能:

·程序监控,允许全面或部分监控程序代码,包括:

·指令集模拟器,允许完整的指令级监控和跟踪设施

·程序动画,允许在源级别或机器代码中逐步执行和条件断点

·代码覆盖报告

·格式化转储或符号调试,允许在错误或选定点上检查程序变量的工具

·自动化的功能GUI测试工具用于通过GUI重复系统级的测试

·基准测试,允许进行运行时性能比较

·性能分析(或分析工具),可帮助突出显示热点或资源使用情况

其中一些特性可以合并到集成开发环境(IDE)中。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动化
    +关注

    关注

    28

    文章

    5040

    浏览量

    77738
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66820

原文标题:自动化测试

文章出处:【微信号:QCDZYJ,微信公众号:汽车电子工程知识体系】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OPhone自动化测试技术概述

    本文将对OPhone平台上可采用的几种自动化测试技术进行介绍,并对每种技术的优缺点做简要的总结。OPhone台除了为应用程序开发提供丰富的API外,也为开展自动化测试提供了多种途径。【
    发表于 05-06 08:58

    电池电量的两种测试方法

    电池电量的两种测试方法检测普通锌锰干电池的电量是否充足,通常有两种方法。第一种方法是通过测量电池瞬时短路电流来估算电池的内阻,进而判断电池电
    发表于 04-18 09:35

    手机自动化测试方法

    `随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,手机APP自动化测试也逐渐兴起,从Monkey本地测试到云测试平台,现在我要介绍的这种
    发表于 07-05 15:07

    两种方法解决电路设计问题

    将200V的电压施加到500欧姆的抽头电阻器。找到连接到25V时需要0.1A电路的个分接点之间的电阻。我用两种方法解决了这个问题。但正确的答案只能通过一种方法来实现。总电阻为Ra + Rb
    发表于 09-14 13:54

    是否有可能使用excel vba自动化测试

    嗨,你能告诉我是否有可能使用excel vba自动化测试我已经使用这种方法进行ena测试,通过修改你的ctrl lan vba programi想要填充一个excel
    发表于 05-20 06:18

    讨论Linux系统中设置开机自动运行的两种方法

    有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu 系统上做到重启或者系统启动时执行命令和脚本。 两种方法都通过了
    发表于 07-09 06:38

    自动化测试框架思想和构建

    自动化测试一般是指软件测试自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。本文介绍的是
    发表于 07-18 06:52

    如何对用户界面进行自动化测试

    能识别图形界面上的关键信息,比如界面上的文字,数值,图标等。小蚂蚁测试(AnTestin)平台支持对人机接口的屏幕显示进行自动化检测,代替人的眼睛观察,可以识别界面上的关键信息,结合其他操作(比如
    发表于 03-06 19:57

    纳米软件案例之电阻自动化测试系统

    配置的工步和测试方案,保存数据表和数据图两种形式的数据。在数据查询界面,用户可输入产品编号、测试人员、测试日期查询数据,进行数据的二次分析和查看。项目总结纳米软件为用户定制开发的电阻
    发表于 08-21 11:41

    STM32操作矩阵键盘的两种方法

    目录STM32操作矩阵键盘的两种方法——扫描和中断一、矩阵键盘的结构和原理二、扫描式矩阵键盘的原理和实现三、中断式矩阵键盘的原理和实现四、两种方案优劣STM32操作矩阵键盘的两种方法——扫描和中断
    发表于 08-12 06:33

    浅析addContext()与addWebapp()这两种方法

    addContext()与addWebapp()这两种方法都是向嵌入式tomcat添加web应用程序。addContext()需要配置相关所有内容,比如配置默认的Servlet,否则将无法访问静态
    发表于 12-16 07:02

    TPTTPT动态自动化测试工具怎么样

    关于TPTTPT是一款基于模型的动态自动化测试工具,它提供了一套高效的测试建模方法,覆盖MiL、SiL、PiL、HiL、ViL等全阶段的测试
    发表于 12-21 06:17

    【RISC-V 生态软件系列】 HaaS UI基础教学八:JSAPI自动化测试方法

    的开发需求。HaaS UI提供了扩展JSAPI的方法,用户可以根据项目需求和平台能力实现不同的扩展,以满足不同的功能需要。用户如果想要自定义一些JSAPI,4、接口自动化测试4、接口自动化
    发表于 03-09 07:26

    LabVIEW与Tektronix示波器实现电源测试自动化

    LabVIEW与Tektronix示波器实现电源测试自动化 在现代电子测试与测量领域,自动化测试系统的构建是提高效率和精确度的关键。本案例介
    发表于 12-09 20:37

    电路板的板子测试有哪两种方法

    电路板制作完成之后,就需要用一些测试工具来对电路板进行检查,以确保生产出来的电路板是符合要求的合格电路板。通常电路板的板子测试有以下两种方法
    的头像 发表于 07-30 17:13 1.5w次阅读