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

    文章

    111

    浏览量

    21034
  • 图形化
    +关注

    关注

    0

    文章

    56

    浏览量

    14200
  • GUI
    GUI
    +关注

    关注

    3

    文章

    641

    浏览量

    39498
收藏 人收藏

    评论

    相关推荐

    图形用户界面与命令行接口的比较

    在计算机科学和信息技术领域,用户与计算机交互的方式主要分为两种:图形用户界面(GUI)和命令行接口(CLI)。这两种界面各有优势和局限性,适用于不同的场景和用户需求。 1. 定义与基本
    的头像 发表于 11-12 14:38 132次阅读

    单片机图形化编程软件有哪些

    Arduino IDE以其简单易用的界面和丰富的库函数,成为了许多初学者的首选。虽然它本质上不是纯粹的图形化编程软件,但其提供的示例代码和直观的操作方式,使得学习单片机编程变得相对容易。此外,Arduino社区庞大,拥有大量的教程和项目资源,进一步降低了
    的头像 发表于 09-02 10:14 813次阅读

    c语言怎么做可视界面

    C语言是一种通用的编程语言,广泛应用于系统编程、嵌入式开发等领域。虽然C语言本身并不支持直接创建可视界面,但通过结合一些图形库和工具,我们可以为C语言程序开发出直观、易用的可视
    的头像 发表于 06-06 10:46 2011次阅读

    微软将优化Windows Subsystem for Linux并加入图形用户界面设置

    微软宣布提升Windows Subsystem for Linux(WSL)性能,推出全新设置应用提供图形化配置环境。
    的头像 发表于 05-31 11:26 487次阅读

    基于RT-Thread OS的嵌入式界面开发及机器视觉线上师资培训通知

    。在这些系统中,图形化界面正逐渐成为人与机器交互的主要方式。未来的嵌入式图形化界面技术将朝着更加人性
    的头像 发表于 03-30 08:34 381次阅读
    基于RT-Thread OS的嵌入式<b class='flag-5'>界面</b>开发及机器视觉线上师资培训通知

    stm的例程没有ioc文件,请问怎样图形化编辑引脚?

    为什么stm的例程 没有ioc文件,那请问咋样图形化编辑引脚
    发表于 03-28 08:29

    STMCubeIDE使用CubeMX图形化配置USB后没有自动添加头文件路径是什么原因导致的?

    STM32CubeIDE 1.10版本,使用内置的CubeMX图形化配置外设USB,配置完成后自动生成代码,发现没有自动添加Include相关路径(USB的头文件路径),编译也是报错。 我在另外一台
    发表于 03-20 06:15

    Qt For OpenHarmony图形化的进展突破

    Qt 适配 OpenHarmony 意义 Qt 是一个 C++ 跨平台开发框架,主要用于开发图形用户界面(Graphical User Interface,GUI)程序,具有跨平台类库(支持目前
    的头像 发表于 02-02 14:29 1355次阅读
    Qt For OpenHarmony<b class='flag-5'>图形化</b>的进展突破

    蓝鹏工业信息采集平台 软件界面介绍

    值超过标称公差范围时,以不同颜色醒目提醒,如超正公差时红色显示、超负公差时黄色显示。 (2)实时数据图形化 在主界面,除了以不同颜色显示数据之外,还支持以趋势图、截面图的形式来显示待测物的实时数据,从而
    发表于 12-28 17:07

    图形化编程】创客新手村,ESP32从零开始(1)水果小夜灯

    什么是创客新手村-图形化编程版本 创客新手快速自评 • 想要学编程,但看到英文代码就害怕? • 想要电子DIY,但不知道从哪里开始学? • 学过一些基础操作,但不知怎么应用? • 想做好玩项目,但
    的头像 发表于 12-20 08:40 1230次阅读
    【<b class='flag-5'>图形化</b>编程】创客新手村,ESP32从零开始(1)水果小夜灯

    sigmastudio的导出文件,图形化编程导出文件的地址是如何定义的?

    关于sigmastdio的导出文件(用来控制单片机)中,对于修改寄存器的地址是数据手册可查的,但是发现关于图形化编程的导出文件的地址不是固定的,请问后者的地址是如何定义的?有没有办法提供相关的资料?
    发表于 11-29 06:10

    linux图形化界面设置ip

    在Linux系统中,可以使用图形化界面来设置IP地址。下面是一个详实而细致的文章,将指导您如何通过图形界面设置IP地址。 第一部分:进入网络设置界面 打开Linux系统的“设置”应用程
    的头像 发表于 11-27 15:19 3169次阅读

    以工艺窗口建模探索路径:使用虚拟制造评估先进DRAM电容器图形化的工艺窗口

    以工艺窗口建模探索路径:使用虚拟制造评估先进DRAM电容器图形化的工艺窗口
    的头像 发表于 11-23 09:04 400次阅读
    以工艺窗口建模探索路径:使用虚拟制造评估先进DRAM电容器<b class='flag-5'>图形化</b>的工艺窗口

    python窗口图形界面编程

    Python是一种功能强大而又简单易用的编程语言,支持多种编程范式,包括面向过程、面向对象和函数式编程。除了用于开发各种类型的应用程序和网络服务,Python还提供了丰富的图形用户界面
    的头像 发表于 11-22 14:23 816次阅读

    使用虚拟制造评估先进DRAM电容器图形化的工艺窗口

    持续的器件微缩导致特征尺寸变小,工艺步骤差异变大,工艺窗口也变得越来越窄[1]。半导体研发阶段的关键任务之一就是寻找工艺窗口较大的优秀集成方案。如果晶圆测试数据不足,评估不同集成方案的工艺窗口会变得困难。为克服这一不足,我们将举例说明如何借助虚拟制造评估 DRAM 电容器图形化
    的头像 发表于 11-16 16:55 533次阅读
    使用虚拟制造评估先进DRAM电容器<b class='flag-5'>图形化</b>的工艺窗口