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

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

3天内不再提示

面向界面的图形化测试技术

上海控安 来源:上海控安 作者:上海控安 2023-04-21 11:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 |熊一衡 华东师范大学软件工程学院博士

苏亭 华东师范大学软件工程学院教授

版块 |鉴源论坛 · 观模

01什么是面向界面的图形化测试(GUI Testing)

图形用户界面(GUI) 是一种通过图形化方式呈现信息、数据、功能和操作的用户界面,旨在提供更加直观、友好、易用的体验,以满足用户的需求和期望。图形用户界面通常由窗口、菜单、按钮、文本框、图标、标签等组件构成,用户可以通过鼠标、键盘等输入设备进行交互和操作。GUI界面的设计和布局需要考虑用户的习惯、视觉效果、易用性等因素,以提供最佳的用户体验。

面向界面的图形化测试是一种常用的软件测试方法,旨在验证用户界面是否符合业务规范和用户需求,以及验证应用程序的功能是否正确响应用户操作,以保证应用程序的质量和稳定性。图形化测试通常在开发的中后期进行,可以确保应用程序的功能和用户界面的质量,提高用户体验,降低用户投诉和退款率。此技术可以有效地提高测试效率和测试质量,在各种应用程序的测试中得到广泛应用。

例如,如果一个用户访问京东商城的网站主页,他将看到导航栏、搜索栏、推荐栏和其他诸多组件。测试人员可以针对不同的关注点来对这个网页进行图形化测试。例如,点击“免费注册”按钮,网站是否能弹出相应的注册网页,包括导航、搜索、表单、购物车、支付等功能是否能正常响应用户操作。

poYBAGRB_ROAWmnFAANNs2mqehk69.webp

通过图形化测试,可以发现应用中的问题和缺陷,提高应用的质量和用户体验,增强用户的满意度和忠诚度,从而提高应用的价值和竞争力。

02常见的面向界面的图形化测试技术

2.1 基于人工的测试

基于人工的测试是一种传统的软件测试方式,测试人员通过手动操作应用程序的用户界面,模拟用户的行为和操作,来发现和报告应用的问题和缺陷。在实际应用中,应用系统级的功能性问题很大程度上是依靠人工测试找到 [1]。基于人工的图形化测试需要有经验的测试人员,能够全面地覆盖测试用例和测试场景。然而,测试的效率和准确性很大程度上受到测试人员的技能水平和经验的影响。基于人工的测试主要包括以下步骤:

(1)理解项目需求和制定测试计划:测试人员必须分析所有的需求文档,以便识别软件的预期行为和需要测试的确切内容。测试人员根据需求和规格说明书,制定测试计划和测试用例。

(2)测试环境和测试数据准备:测试人员准备测试环境和测试数据,包括安装和配置测试软件、准备测试数据、设置测试工具和设备等,以确保测试环境的一致性和稳定性。

(3)手动测试执行:测试人员按照测试计划和测试用例,手动操作应用程序的用户界面,模拟用户的行为和操作,包括点击、输入、选择、拖拽等,以验证应用程序的功能和性能,并记录测试结果和异常情况。

(4)缺陷报告和总结:当测试人员发现缺陷的时候,需要根据测试团队所制定的报告模版生成缺陷报告,包括缺陷的描述、缺陷分类、缺陷级别等等,并跟踪和确认缺陷的修复和验证。在测试完成之后,测试人员根据测试的结果生成测试报告并提交给项目团队。

基于人工的测试的优点包括:测试灵活性高,人工测试可以基于一个功能自己构建不同的测试用例,并且适应不同的程序表现;测试准确性高,自动化测试工具没有测试人员经验丰富,人工测试可以更加准确判断一个应用表现是否为一个程序错误;测试反馈及时,可以及时发现和报告软件缺陷和问题。

然而,基于人工的测试也存在一些缺点,如测试效率低,需要较长的测试时间和测试人员的工作量,当短时间内需要生成大量测试用例时,不适合用人工测试;测试成本高,相对于自动化测试,人工测试需要耗费大量人力和时间;测试可重复性差,测试结果可能受到测试人员的主观因素的影响;测试覆盖率有限,可能无法涵盖所有的测试用例和测试场景。

2.2 基于录制回放的测试

基于录制回放的测试通过记录用户在图形界面上的操作,生成测试脚本,然后回放测试脚本到目标应用上来模拟用户的操作并验证应用程序的功能。录制回放测试技术属于自动化测试的一种形式,不需要人工编写测试脚本,减少工作人员的工作量,适用于需要重复执行相同测试用例的场景,如回归测试、性能测试等。录制回放测试技术主要包括以下步骤:

(1)录制测试脚本:测试人员打开测试工具,启动录制功能,然后在应用程序的用户界面上进行操作和事件,如点击按钮、输入文本、选择菜单等,测试工具会自动捕捉和记录用户的操作和事件,并生成测试脚本。

(2)编辑测试脚本:测试人员可以对生成的测试脚本进行编辑和优化,如添加断言、调整等待时间、修改参数等,以确保测试脚本能够正确地模拟用户的操作和验证应用程序的功能和性能。

(3)回放测试脚本:测试人员启动回放功能,测试工具会自动执行测试脚本,模拟用户的操作并验证应用程序的功能和性能,同时记录测试结果和异常情况。

(4)生成测试报告:测试人员分析测试结果,包括测试通过率、测试覆盖率等,发现软件缺陷和问题,并向开发团队提供测试报告。

录制回放测试技术的优点包括:测试成本低,不需要会编写测试脚本的专业人员,测试效率高,可以根据测试人员的录制自动化生成测试脚本并自动执行测试;测试准确性高,可以模拟真实用户的操作并验证应用程序的功能和性能;测试可维护性高,可以快速修改和更新测试脚本和测试数据。

然而,录制回放测试技术也存在一些缺点,如测试脚本的可靠性和稳定性受到应用程序的变化和测试环境的影响,需要保证测试环境的一致性和稳定性;测试脚本的维护成本较高,应用程序代码和界面在不断变化,因此需要不断更新和优化测试脚本和测试数据来适应这些改变;测试覆盖度有限,依赖于测试人员的录制,测试人员一般偏向于录制一些核心功能和核心步骤。

Selenium IDE [2] 是Selenium Suite下的一款非常受欢迎的开源Web自动化测试工具,其核心功能是录制回放测试。它不需要用户有任何编程知识,只需记录用户与浏览器的交互从而可以快速地创建、执行和调试自动化测试脚本。Selenium IDE提供了一个简单的界面,可以通过简单的拖放操作和录制功能,快速创建自动化测试脚本,无需编写任何代码。它支持多种浏览器,包括Chrome、Firefo等。此外,Selenium IDE还可以导出测试脚本为多种编程语言的代码,如JavaC#Python等。

2.3 基于模型的测试

基于模型的测试是一种自动化测试方法,它利用模型来描述被测试系统的行为和结构,从而生成测试用例,验证系统的正确性和可靠性。基于模型的测试可以提高测试效率和覆盖率,减少测试人员的工作量,适用于复杂和多变的应用程序,如嵌入式系统、软件系统、网络系统等。

基于模型的测试主要包括以下步骤:

(1)建模:测试人员使用建模工具,根据需求和规格说明书,构建被测试系统的模型,包括功能模型、状态模型、数据模型等,以描述被测试系统的行为和结构。

(2)模型分析:测试人员对模型进行分析和验证,包括模型检查、模型仿真、模型测试等,以发现和修复模型中的错误和问题。

(3)测试用例生成:测试人员利用模型生成测试用例,包括基于覆盖率的测试用例、随机测试用例、符号执行测试用例等,以覆盖模型中的所有路径和状态,并达到测试目标和测试要求。

(4)自动化测试执行:测试人员使用自动化测试工具,执行生成的测试用例,对被测试系统进行自动化测试,包括功能测试、性能测试、安全测试等,以检验被测试系统的正确性和可靠性。

(5)测试报告和总结:测试人员整理测试结果和问题报告,生成测试报告和总结,包括测试通过率、测试覆盖率、缺陷统计、测试建议等,以提供给项目团队和管理者参考和决策。

基于模型的测试的优点包括:测试效率高,可以自动生成测试用例和测试脚本,并自动执行测试;测试覆盖率高,可以覆盖模型中的所有路径和状态;测试可重复性好,可以多次执行相同的测试用例和测试脚本;测试结果准确性高,可以自动化地验证被测试系统的正确性和可靠性。

然而,基于模型的测试也存在一些缺点,如模型的建立和维护成本高,需要投入大量的人力和物力资源,并且需要建模人员非常了解待测试应用;门槛高,模型的构建需要有非常专业的建模人员,熟练使用各种专业技能 [3];模型的应用范围有限,可能无法覆盖所有的测试需求和测试场景。因此,在实际测试中,应根据测试需求和应用程序的特点,综合选择不同的测试方法和工具,以提高测试效率和质量。

Fastbot [4] 是一款由字节跳动Quality Lab研发的一款开源的基于模型的GUI测试工具,用于发现手机app中的稳定性问题。Fastbot将app的GUI信息抽象成模型中的state,将执行的动作抽象成模型中的action,然后基于构建的模型生成测试用例,并提供多种算法策略,目标是达到较高的 Activity 覆盖率及较强的问题发现能力。同时,Fastbot还支持跨平台测试,在海量设备上多机协同测试。Fastbot也利用了图像检测技术来支持较丰富的图像 UI 异常检测能力(黑白屏、图像重叠、控件遮挡等等)。

03面向界面的图形化测试的挑战

根据statista网站上的报道,48%的移动应用测试人员将图形化界面看作主要的测试关注点[5]。面向界面的图形化测试在应用的功能和质量起着至关重要的作用,在实际应用中也存在不少挑战:

(1)代码和设计变更:鉴于应用界面以及功能的频繁更新,测试人员需要不断调整测试脚本以适应新的测试场景。

(2)错误处理:当测试复杂应用程序时,可能会遇到各种程序问题,来干扰测试进行,如何处理这些问题是一个常见的难题。

(3)测试工具与被测软件的同步问题:测试工具与测试对象之间如果同步出了问题,很可能会导致测试失败,影响测试结果的准确性 [6]。

(4)依赖于测试工具:首先需要选用合适的测试工具,并对测试的应用进行相应的定制和配置。

(5)需要专业技能:需要具备一定的编程和测试技能,才能进行测试脚本编写和自动化测试工具的配置和使用。

(6)多样性:不同的软件界面设计不同,测试人员需要熟悉各种不同的界面风格和交互方式。

04总结

面向界面的图形化测试技术已经成为各种应用程序测试的重要手段之一。这种测试技术广泛应用于各种应用程序的测试中,特别是对于那些用户界面比较复杂、交互性比较强的应用程序,如游戏、手机app、网站等。此技术可以有效地提高测试效率和测试质量。尽管取得了巨大进展,但该测试技术仍然面临着许多挑战,学术界和工业界也在不断探索尝试各种新的技术和方法,以提高测试的效率和质量。

参考文献:

[1] Itkonen J, Mantyla M V, Lassenius C. How do testers do it? An exploratory study on manual testing practices[C]//2009 3rd International Symposium on Empirical Software Engineering and Measurement. IEEE, 2009: 494-497.

[2] Selenium IDE

[3] Dias Neto A C, Subramanyan R, Vieira M, et al. A survey on model-based testing approaches: a systematic review[C]//Proceedings of the 1st ACM international workshop on Empirical assessment of software engineering languages and technologies: held in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE) 2007. 2007: 31-36.

[4] Fastbot https://github.com/bytedance/Fastbot_Android.

[5] “Focus areas for testing mobile applications from 2013 to 2017”

[6] Alégroth E, Feldt R, Ryrholm L. Visual gui testing in practice: challenges, problemsand limitations[J]. Empirical Software Engineering, 2015, 20: 694-744.

审核编辑黄宇

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

    关注

    0

    文章

    126

    浏览量

    21880
  • 图形化
    +关注

    关注

    0

    文章

    57

    浏览量

    14540
  • GUI
    GUI
    +关注

    关注

    3

    文章

    699

    浏览量

    43850
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    东软载波微电子ES-CodeMaker图形化代码自动生成工具发布

    MCU 软件开发效率,上海东软载波微电子有限公司配套推出 ES-CodeMaker 图形化代码自动生成工具,通过直观的可视配置,将开发者从繁琐的 MCU 底层代码中解放出来,专注于核心应用逻辑的创新与优化。
    的头像 发表于 03-25 15:25 329次阅读
    东软载波微电子ES-CodeMaker<b class='flag-5'>图形化</b>代码自动生成工具发布

    我们在做一个支持多厂商 MCU 的图形化配置工具,难点却不在工具本身

    这三年里我们一直在做一件事: 把 MCU 工程的初始配置做成图形化 并且支持多个 MCU 原厂、多个内核 很多工程师第一反应会想到 STM32Cube,这个类比并不奇怪。 但真正开始支持多厂商之后
    的头像 发表于 03-02 10:13 230次阅读
    我们在做一个支持多厂商 MCU 的<b class='flag-5'>图形化</b>配置工具,难点却不在工具本身

    远程访问ioBroker服务

    ioBroker 是一款开源物联网平台,支持多平台和设备集成,提供自动控制和图形化界面
    的头像 发表于 01-30 10:57 254次阅读
    远程访问ioBroker服务

    [工具讨论] 如果有一款国产图形化配置工具STM32Cube,支持所有内核和厂商MCU,你会用吗?

    涉及多家厂商芯片时,要在多个工具间切换 如果有一款这样的工具 我们想和大家讨论一个假设性问题: 如果有一款国产的图形化配置工具,具备以下特性,你会考虑使用吗? 核心特性对比 对比维度
    发表于 01-26 10:30

    电动汽车核心部件测试新标杆:斯康达ATS600系统赋能车载电源研发

    斯康达ATS600 的强大不仅在于硬件集成,更在于其开放的软件平台。系统采用图形化操作界面,支持从手动操作、测试程序编辑到项目二次开发的全流程。
    的头像 发表于 01-08 10:35 276次阅读

    定义光刻精度标准——华林科纳显影湿法设备:纳米级图形化解决方案

    提供可靠的图形化保障。以下深度解析其工艺优势与技术创新。 一、设备核心工艺流程 华林科纳四步闭环工艺,实现亚微米级图形保真 (1)预处理(Pre-wetting) 去离子水浸润:均匀润湿晶圆表面,消除静电吸附效应。 边缘曝光消除
    的头像 发表于 12-24 15:03 507次阅读
    定义光刻精度标准——华林科纳显影湿法设备:纳米级<b class='flag-5'>图形化</b>解决方案

    RUI Builder 图形化UI设计工具

    RUI Builder 图形化UI设计工具 该软件为图形化UI设计软件,搭配瑞佑图形处理器,轻松设计UI界面!主要特色功能: 在PC上直接设计界面
    发表于 12-12 20:14

    新品首发·东方中科智能座舱测试系统

    域协同测试的全流程闭环自动测试。该系统搭载自研的HMI自动测试软件,提供图形化编辑
    的头像 发表于 11-28 10:33 674次阅读
    新品首发·东方中科智能座舱<b class='flag-5'>测试</b>系统

    迅为iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验

    迅为iTOP-3568开发板 Linux驱动开发实战:menuconfig图形化配置实验
    的头像 发表于 11-24 15:29 931次阅读
    迅为iTOP-3568开发板 Linux驱动开发实战:menuconfig<b class='flag-5'>图形化</b>配置实验

    瑞萨电子携手LVGL PRO推进嵌入式图形用户界面开发

    随着嵌入式设备对用户体验要求的不断提升,图形用户界面(GUI)成为产品开发越来越重要的一环。作为目前最流行的开源嵌入式图形库之一的LVGL,最近就推出了自己的商业专业UI编辑器LVG
    的头像 发表于 11-21 10:23 1801次阅读
    瑞萨电子携手LVGL PRO推进嵌入式<b class='flag-5'>图形</b>用户<b class='flag-5'>界面</b>开发

    电子电器气密性检测仪:人性操作界面,一用就会-岳信仪器

    青睐。人性操作界面的电子电器气密性检测仪,其设计充分考虑了用户的使用习惯和需求。它摒弃了复杂繁琐的操作流程,采用简洁直观的图形化界面,让操作人员一目了然。即使是没
    的头像 发表于 10-13 16:12 636次阅读
    电子电器气密性检测仪:人性<b class='flag-5'>化</b>操作<b class='flag-5'>界面</b>,一用就会-岳信仪器

    PPEC电源DIY套件:图形化算法编程,解锁电力电子底层算法实践

    : 无需深入复杂的代码编写,通过图形化界面的模块拖拽、参数设置和连线操作来实现自定义控制算法,实现对开关电源的精准控制和优化。 ▌动态调试优化: 算法调整后立即生效,实时观测输出纹波、动态响应速度等关键
    发表于 08-14 11:30

    PPEC新品发布丨图形化编程数字电源专用 ARM Cortex-M4 MCU

    PPEC32F334RBT7是森木磊石最新推出的图形化编程数字电源专用ARMCortex-M4MCU,以全面图形化零代码编程为电源开发赋能,有效解决了传统电源开发中代码复杂、调试周期长、技术门槛高等
    的头像 发表于 05-22 17:30 1447次阅读
    PPEC新品发布丨<b class='flag-5'>图形化</b>编程数字电源专用 ARM Cortex-M4 MCU

    半导体存储器测试图形技术解析

    在半导体存储器测试中,测试图形(Test Pattern)是检测故障、验证可靠性的核心工具。根据测试序列长度与存储单元数N的关系,测试图形可分为N型、N²型和N³/₂型三大类。
    的头像 发表于 05-07 09:33 1935次阅读
    半导体存储器<b class='flag-5'>测试图形</b><b class='flag-5'>技术</b>解析

    可视组态物联网平台是什么

    可视组态物联网平台是物联网技术与组态技术相结合的产物,是通过提供丰富的图形化组件和可视元素,让用户能够以直观、便捷的方式对物联网数据进行
    的头像 发表于 04-21 10:40 1034次阅读