CN113836028A - 软件界面的测试建模方法及装置、电子设备、存储介质 - Google Patents

软件界面的测试建模方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN113836028A
CN113836028A CN202111146795.3A CN202111146795A CN113836028A CN 113836028 A CN113836028 A CN 113836028A CN 202111146795 A CN202111146795 A CN 202111146795A CN 113836028 A CN113836028 A CN 113836028A
Authority
CN
China
Prior art keywords
interface
image
interface state
exploration
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111146795.3A
Other languages
English (en)
Inventor
梁一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202111146795.3A priority Critical patent/CN113836028A/zh
Publication of CN113836028A publication Critical patent/CN113836028A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种软件界面的测试建模方法及装置、电子设备、存储介质,该方法包括:获取软件应用在第一界面状态下的第一界面图像;在第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;比对第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;记录每次界面状态跳转时对应的第一界面图像、第二界面图像以及探索操作的操作参数。该方案无需人工进行软件界面的测试建模,提高了测试效率,避免了人工进行测试造成的遗漏。

Description

软件界面的测试建模方法及装置、电子设备、存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种软件界面的测试建模方法及装置、电子设备、存储介质。
背景技术
在软件全流程开发活动中,测试工作是质量保证的重要核心环境。作为“非生产类”的测试活动,整体行业希望,能不断优化其质量与效率。整个测试活动分为需求分析、测试建模,测试设计,测试执行等。测试用例是测试活动的最终要输出物,测试建模是测试设计活动的基础,是指以测试为目的建立产品模型。在现在大多数界面接口的软件来说,界面测试建模是所有测试设计活动的最重要环节,对测试对象的界面操作做整体的描述,梳理测试思路,作为后续测试设计维护优化的输入。
传统的界面操作的测试建模,采用方式如下:1、手动建模:简易模型建模,excell测试需求分析表,xmind脑图理解表;2、手动建模:标准模型建模:流程图、正交表、马科夫链图等;3、其它可能的建模:有些使用webdirver(一个Web应用程序测试自动化工具)的css选择器或xpath自动遍历的方式。
上述采用手动测试建模的方式,效率低,会有不可避免的遗漏。
发明内容
本申请实施例提供了软件界面的测试建模方法,提高测试效率,并且避免遗漏。
一方面,本申请实施例提供了一种软件界面的测试建模方法,包括:
获取软件应用在第一界面状态下的第一界面图像;
在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;
比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;
记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
在一实施例中,在确定是否发生界面状态跳转之后,所述方法还包括:
若确定发生界面状态跳转,在所述第二界面状态下继续进行多次探索操作,直至完成所有界面状态的探索操作和结果记录。
在一实施例中,在所述第二界面状态下继续进行多次探索操作,直至完成所有界面状态的探索操作和结果记录,包括:
若所述第一界面图像与所述第二界面图像之间的差异大于阈值,采用二分切片法在所述第二界面状态对应的用户界面中找出中心变化区域;
继续在所述中心变化区域进行多次探索操作,获取每次探索操作完成后得到的第三界面状态的第三界面图像,直至完成所有界面状态的探索操作和结果记录。
在一实施例中,所述探索操作包括鼠标点击操作和输入操作;
所述操作参数包括:操作方式、所述探索操作的操作区域图像和所述输入操作的输入参数;所述输入参数包括多个不同类型的输入数据。
在一实施例中,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
按照预设像素步长,在所述第一界面状态下逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
在一实施例中,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
根据已知的无需探索区域图像,在所述第一界面状态下匹配得到目标区域;
按照预设像素步长,在所述第一界面状态下避开所述目标区域的同时,逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
在一实施例中,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
在所述第一界面状态下进行多个输入点的组合输入操作,获取每种组合输入操作后得到的第二界面状态的第二界面图像。
在一实施例中,所述比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转,包括:
比对所述第一界面图像和所述第二界面图像之间的像素差异,若差异超过阈值,确定发生界面状态跳转。
在一实施例中,所述操作参数包括操作区域图像,在所述比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转之后,所述方法还包括:
若确定发生了界面状态跳转,且多个不同位置的探索操作对应获取到的第二界面图像均相同,将所述多个不同位置汇聚得到的区域作为一个目标操作区域;
截取所述目标操作区域的图像,作为从所述第一界面状态切换到所述第二界面状态的操作区域图像。
在一实施例中,所述记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数,包括:
通过双向条件图记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数;
所述双向条件图的每个节点代表一种界面状态,一种界面状态切换到另一种界面状态的方向作为对应节点之间连接的有向线段,一种界面状态切换到另一种界面状态的探索操作的操作参数为所述有向线段的参数。
在一实施例中,在所述通过双向条件图记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数之后,所述方法还包括:
若未完成所有界面状态的探索操作,测试建模中断,基于所述双向条件图采用最短生成树法,确定定位到指定节点的最短路径;
按照所述最短路径进行界面操作,跳转到所述指定节点对应的界面状态。
在一实施例中,所述记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数,包括:
通过表格记录每次界面状态跳转时对应的所述第一界面图像的界面状态标识、第二界面图像的界面状态标识以及所述探索操作的操作参数;
根据依赖关系库,在所述表格中录入每个界面状态标识对应的依赖界面状态标识。
另一方面,本申请实施例还提供了一种软件界面的测试建模装置,包括:
状态获取模块,用于获取软件应用在第一界面状态下的第一界面图像;
探索操作模块,用于在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;
状态比对模块,用于比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;
结果记录模块,用于记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
另一方面,本申请实施例还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述软件界面的测试建模方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述软件界面的测试建模方法。
本申请上述实施例提供的技术方案,通过获取软件应用在第一界面状态下的第一界面图像,并在第一界面状态下进行多次探索操作,获取每次探索操作完成后得到的第二界面状态的第二界面图像,通过比对第一界面图像和第二界面图像的差异,即可确定是否发生了界面状态跳转,进而可以记录下每次界面状态跳转前后的第一界面图像、第二界面图像以及探索操作的操作参数,从而无需人工进行软件界面的测试建模,提高了测试效率,避免了人工进行测试造成的遗漏。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的电子设备的结构示意图;
图2是本申请实施例提供的软件界面的测试建模方法的流程示意图;
图3是本申请实施例提供的二分切片法的原理示意图;
图4是图2对应实施例中步骤S220的细节流程图;
图5是本申请实施例提供的获得操作区域图像的流程示意图;
图6是本申请实施例提供的操作区域图像的示意图;
图7是本申请实施例提供的双向条件图像的示意图;
图8是本申请实施例提供的操作参数的数据结构示意图;
图9为本申请一实施例示出的一种软件界面的测试建模装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1是本申请实施例提供的电子设备的结构示意图。该电子设备100可以用于执行本申请实施例提供的软件界面的测试建模方法。如图1所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的软件界面的测试建模方法。
所述处理器102可以是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的软件界面的测试建模方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图1示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
在一实施例中,用于实现本申请实施例的软件界面的测试建模方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的软件界面的测试建模方法的示例电子设备100可以被实现为诸如智能手机、笔记本电脑、台式电脑、服务器等智能终端。
图2是本申请实施例提供的软件界面的测试建模方法的流程示意图,如图2所示,该方法包括以下步骤S210-步骤S240。
步骤S210:获取软件应用在第一界面状态下的第一界面图像。
软件应用是指电子设备中安装的应用程序,测试建模是指对软件应用的各个界面进行遍历,并记录从一个界面状态跳转到另一个界面状态的迁移条件。例如,A界面跳转到B界面,迁移条件是在指定输入框输入了“某某”内容。B界面跳转到C界面,迁移条件是鼠标点击了“提交”按钮。
其中,第一界面状态和下文的第二界面状态、第三界面状态是相对而言的,第一界面状态可以认为是当前界面状态,第二界面状态是在第一界面状态下进行探索操作(鼠标点击或输入操作)得到的界面状态。假设界面没有发生跳转,第一界面状态与第二界面状态是同一个界面,假设界面发生了跳转,则第一界面状态与第二界面状态不是同一个界面。同理,第三界面状态是指在第一界面状态下跳转到新的第二界面状态后,在第二界面状态下继续进行探索操作得到的界面状态。
第一界面图像是指第一界面状态下采集的界面图像。举例来说,可以采用截屏的方式,获取界面图像。同理,下文第二界面图像是指第二界面状态下采集的界面图像。第三界面图像是指第三界面状态下采集的界面图像。
步骤S220:在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
其中,探索操作包括鼠标点击操作和输入操作。举例来说,在第一界面状态下按照指定间隔进行点击或输入数据。此过程可以使用类似于sikulix(一种自动化测试技术),或者python的pyautogui(鼠标键盘操作模块)等工具实现。输入数据可以采用多种不同类型的数据格式。如下表1所示。每种类型,在数据库中保存一组数据,按照边界值和等价类尽可能覆盖。因为在输入操作时,不同的输入数据,可能影响不同后续探索路径产生,所以在探索输入阶段,如果遇到可输入数据区域,每种类型的输入数据都要尝试输入,从而避免测试的遗漏。
表1 不同类型的输入数据
Figure BDA0003285719300000091
Figure BDA0003285719300000101
需要说明的是,一次点击操作或一次输入操作均可以认为是一次探索操作,每次探索操作后可以重新获取用户界面的图像。为进行区分,每次探索操作后的用户界面称为第二界面状态,获取的图像称为第二界面图像。
步骤S230:比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转。
第一界面图像与第二界面图像之间的差异较大,则可以认为发生了界面状态跳转。具体的,可以比对第一界面图像和第二界面图像之间的像素差异,若差异超过阈值,确定发生界面状态跳转。
像素差异可以是灰度值之间的差异。举例来说,可以将第一界面图像和第二界面图像转换成灰度图,并计算同一个位置的像素点在第一界面图像和第二界面图像中的灰度差异(假设可能相差10%),之后计算所有像素点的灰度差异的平均值(假设可能是12%),作为第一界面图像和第二界面图像的差异。举例来说,差异的阈值可以设定为15%,如果差异超过阈值,则认为第一界面图像和第二界面图像发生了明显的变化,表示从一个界面跳转到了一个新的界面,即发生了界面状态跳转。
步骤S240:记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
由于经过了多次探索操作,故可能存在多次界面状态跳转,可以将每次发生界面状态跳转前后的第一界面图像、第二界面图像,以及从第一界面图像跳转到第二界面图像的探索操作的操作参数记录下来。如果获取的第一界面图像和第二界面图像确定没有发生界面跳转,表示第一界面图像和第二界面图像是相同的,则可以无需进行记录。
在一实施例中,若确定发生界面状态跳转,在第二界面状态下还可以继续进行多次探索操作,直至完成所有界面状态的探索操作和结果记录。结果记录是指将每次跳转前后的界面图像和探索操作的操作参数记录下来。在一实施例中,可以先将第一界面状态下的所有可操作区域都探索完成后再进行第二界面状态下的探索操作。
探索操作的操作参数可以包括具体的操作方式,操作方式可以是鼠标点击操作或输入操作。操作参数还可以包括操作区域图像和输入操作的输入参数。其中,操作区域图像是指执行鼠标点击操作或输入操作时,所操作的区域对应的图像。操作区域图像的生成方式可以参见下文详细展开。在此不再赘述。输入操作的输入参数可以包括不同类型的输入数据,参见上文表1所示。
本申请上述实施例提供的技术方案,通过获取软件应用在第一界面状态下的第一界面图像,并在第一界面状态下进行多次探索操作,获取每次探索操作完成后得到的第二界面状态的第二界面图像,通过比对第一界面图像和第二界面图像的差异,即可确定是否发生了界面状态跳转,进而可以记录下每次界面状态跳转前后的第一界面图像、第二界面图像以及探索操作的操作参数,从而无需人工进行软件界面的测试建模,提高了测试效率,避免了人工进行测试造成的遗漏。
在一实施例中,由于在整个界面上进行全量的探索操作,时间较长,故若第一界面图像与第二界面图像之间的差异大于阈值,可以采用二分切片法在第二界面状态对应的用户界面中找出中心变化区域。继续在中心变化区域进行多次探索操作,并获取每次探索操作完成后得到的第三界面状态的第三界面图像,直至完成所有界面状态的探索操作和结果记录。
其中,中心变化区域可以认为是弹出的新窗口区域。一般弹出的新窗口是上一层窗口大小的一半。故如图3所示,中心不变,每次判断出发生了界面状态跳转,则在原来窗口的基础上再上下左右各取一半。
假设当前界面图像为Pc,探索操作后截取图像为Pn,当发现Pc与Pn有明显变化时,即超过一个较大的变化阈值(例如15%),可以采用二分切片法取Pn图像的中心变化区域,例如图3中第一次对应的区域,在该区域中进行多次探索操作。之后,假设截取图像为Pn+1,与Pn有较大差异,可以在第一次对应的中心变化区域中,采用二分切片法找出第二次对应的区域,在第二次对应的区域中继续进行探索操作,以此类推。
在一实施例中,还可以将Pn图像的中心变化区域以外的图像与Pc的中心变化区域以外的图像进行比对,如果相同,则表示确实在中心区域弹出了新窗口,而非打开了一个新的页面,确保后续仅在中心变化区域进行探索操作不会发生遗漏。
本申请上述实施例,可以通过仅对中心变化区域执行探索操作,提高探索效率,缩短测试时间。
在一实施例中,为了避免测试遗漏,上述步骤S220具体可以包括:按照预设像素步长,在所述第一界面状态下逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
其中,像素步长可以根据软件应用的不同进行设定,一般可以取最小可操作图形的半径。具体的,可以在第一界面状态下按照像素步长逐行进行鼠标点击操作和输入操作,在第一界面状态下按照像素步长逐列进行鼠标点击操作和输入操作,每次操作完成后都获取第二界面状态的第二界面图像。从而可以避免可操作图形的遗漏,其中,行和列的先后顺序不限。
在一实施例中,假设已知界面部分区域不需要进行探索,为提高测试建模效率,如图4所示,上述步骤S220可以包括步骤S221-步骤S222。
步骤S221:根据已知的无需探索区域图像,在所述第一界面状态下匹配得到目标区域。
其中,无需探索区域图像可以提前存储在数据库中,将第一界面图像与无需探索区域图像进行匹配,无需探索区域图像在第一界面图像中对应区域,可以称为目标区域。
步骤S222:按照预设像素步长,在所述第一界面状态下避开所述目标区域的同时,逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
为避免遗漏,在避开目标区域的同时,逐行和逐列进行鼠标点击操作和输入操作,并获取每次操作完成后的界面图像,即第二界面状态的第二界面图像。由此,可以避开明显无需探索的区域,提高探索效率。
在一实施例中,一个界面上的多个输入点,可能是需要组合输入的,例如,需要在多个输入框均输入内容后,点击提交操作,才能跳转到下一个界面,否则不会进行跳转。故探索操作可以是单独的鼠标点击操作、单独的输入操作、输入和点击的组合操作、多个输入点的组合输入操作。
在一实施例中,上述步骤S220可以是在所述第一界面状态下进行多个输入点的组合输入操作,获取每种组合输入操作后得到的第二界面状态的第二界面图像。
其中,输入点是指可输入内容的区域。组合输入操作是指任意选取几个输入点进行输入操作。假设一共有10个输入点,可以任意选取两个进行组合输入操作,任意选取三个进行组合输入操作,以此类推,遍历所有的组合,进行输入操作。每种组合的输入操作完成后,获取用户界面的界面图像,即第二界面状态的第二界面图像。例如,可以使用pict工具对输入点做不同组合的输入操作,一种组合的输入操作可以认为是一次探索操作,从而实现多输入点的组合探索操作。
在一实施例中,假设步骤S240的操作参数包括操作区域图像。上述步骤S230之后,如图5所示,本申请实施例提供的方法还可以包括步骤S501-步骤S502。
步骤S501:若确定发生了界面状态跳转,且多个不同位置的探索操作对应获取到的第二界面图像均相同,将所述多个不同位置汇聚得到的区域作为一个目标操作区域。
需要说明的是,经过多次探索操作,如果对多个点的探索操作后的效果完全相同,如图6所示,点击“添加”按钮所在区域的点,都触发一个相同的界面,故对于这些点可以进行聚类。目的是截取这些点所在区域的图像,得到目标操作图像。
假设在第一界面状态下的界面图像为Pw,在第一界面状态下的A点进行探索操作后获得的界面图像为Pa,第一界面状态下的B点进行探索操作后获得的界面图像为Pb,第一界面状态下的C点进行探索操作后获得的界面图像为Pc,以此类推,第一界面状态下的N点进行探索操作后获得的界面图像为Pn,如果Pw与Pa之间的差异大于阈值,Pw与Pb之间的差异大于阈值,Pw与Pc之间的差异大于阈值……Pw与Pn之间的差异也大于阈值,也就是均发生了界面状态跳转。
如果界面图像Pa、Pb、Pc……Pn均是相同的,则可以认为A点、B点、C点……N点可能是同一个功能按钮所在区域内的点,A、B、C点汇聚得到的区域,可以称为目标操作区域。
在一实施例中,可以取A点、B点、C点……N点中的上下左右四个极值点,作为目标操作区域的最上、最下、最左和最右的边界,形成一个矩形区域。
步骤S502:截取所述目标操作区域的图像,作为从所述第一界面状态切换到所述第二界面状态的操作区域图像。
具体的,可以从第一界面图像中截取目标操作区域的图像,该图像可以称为操作区域图像,记录下来作为第一界面状态Sx切换到第二界面状态Sy的操作区域图像Ptx-y。
在上述实施例的基础上,可以通过双向条件图记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。其中,双向条件图可以如图7所示,每个节点S代表一种界面状态,每个节点具有对应的界面状态名称和界面图像。一种界面状态切换到另一种界面状态的方向作为对应节点之间连接的有向线段(也就是边),一种界面状态切换到另一种界面状态的探索操作的操作参数为有向线段的参数。例如,S0—>S1表示从S0界面状态可以跳转到S1界面状态。进行状态跳转的条件也就是探索操作的操作参数可以用图8所示的数据结构表示,每个Tx-y代表着从Sx界面状态到Sy界面状态的界面状态迁移条件(也就是操作参数),可以有操作方式、输入参数、操作区域图像等。如果两个状态间存在多个转移条件,则所有迁移条件都记录,如下Tx-y、Tx-y-2、Tx-y-3以此类推。
在一实施例中,若未完成所有界面状态的探索操作,测试建模中断,则可以基于已完成的双向条件图,采用最短生成树法(SPF),确定定位到指定节点的最短路径;按照所述最短路径进行界面操作,从而跳转到所述指定节点对应的界面状态。
其中,指定节点可以是建模中断之前的界面状态对应的节点,也可以是用户选取的一个节点。最短路径可以认为是从初始界面到指定节点对应的界面的最快的操作方式。举例来说,假设指定节点是S6,初始界面对应的节点是S3,则最短路径可以是从S3到S1到S2到S6,按照S3到S1的操作参数、S1到S2的操作参数、S2到S6的操作参数依次进行操作,可以快速跳转到S6对应的界面状态。从而可以在测试建模中断时,快速定位到上次建模退出的点,继续进行建模,减少重复测试,提高效率。
在一实施例中,还可以通过表格记录每次界面状态跳转时对应的所述第一界面图像的界面状态标识、第二界面图像的界面状态标识以及所述探索操作的操作参数;根据依赖关系库,在所述表格中录入每个界面状态标识对应的依赖界面状态标识。
其中,界面状态标识用于区分不同的界面状态,例如,S0、S1、S2分别表示不同的界面状态标识。如下表2所示,第一列的界面状态标识可以用于记录跳转之前的界面状态对应的标识。第二列的界面状态标识可以用于记录跳转之后的界面状态的标识,第三列用于记录第一列的界面状态跳转到第一列的界面状态的操作参数(也就是迁移条件)。第四列可以用于记录与第一列的界面状态标识对应的界面状态存在依赖关系的界面状态对应的标识。图2可以认为是双向条件图的数字结构化表示。
表2 测试建模结果的记录表
状态名称 转换状态 迁移条件 关联依赖
S0 S1 T0-1
S0 S2 T0-2
S1 S3 T1-3
S3 S4 T3-4
S4 S5 T4-5
S6 S9 T6-9 S7
需要说明的是,有些配置路径需要在,其它状态优先配置的基础上再进行配置;此种需求,可以在需求分析时,由开发人员界面设计时,进行记录,作为后续自动探索时的输入。例如S6依赖于S7,S7可以称为依赖界面状态标识。可以在上表2的第四列进行记录。举例来说,可能是某个策略依赖于某个对象的配置,需要先进行对象的配置。手动将配置路径状态节点录入依赖关系库,如下表3所示。
表3 依赖关系库
当前路径 依赖路径
S0->S2->S6 S0->S2->S7
即界面状态节点S6依赖于界面状态节点S7。他们的到达路径分别为S0->S2->S6和S0->S2->S7。依赖关系的作用是,对于自动建模的能力补充,自动建模可以根据此依赖关系数据库,建立先S7再到S6配置的一个关系路径,在表2所述的表格中记录S6的依赖界面标识为S7。
本申请上述实施例提供方案,使用界面主动探索方式,进行自动测试建模,提高了测试效率,避免了遗漏;使用图像比对方式做测试建模,提高了测试的准确性;提出了“双向条件图”方法记录测试结果,可以使测试建模结果更加清晰化,从而可以通过最短路径方式快速定位到目标节点。本申请实施例提供的方法,相比于传统的webdriver模式的自动建模,兼容性更好,不仅限于http界面。
建模实现了产品软件界面的各个迁移的可能及自动迁移方法。后续的测试设计和自动化脚本实现可以根据模型快速进行,例如:指定某个初始界面和结束界面两个状态节点测试。实现打开初始界面,使用sikulix,操作参数遍历初始界面和结束界面的各种可能路径。自动测试回归执行,自动启动图形遍历,实现各状态和条件的全部遍历执行。
下述为本申请装置实施例,可以用于执行本申请上述软件界面的测试建模方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请基于软件界面的测试建模方法实施例。
图9为本申请一实施例示出的一种软件界面的测试建模装置的框图。如图9所示,该装置包括:状态获取模块910、探索操作模块920、状态比对模块930以及结果记录模块940。
状态获取模块910,用于获取软件应用在第一界面状态下的第一界面图像;
探索操作模块920,用于在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;
状态比对模块930,用于比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;
结果记录模块940,用于记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
上述装置中各个模块的功能和作用的实现过程具体详见上述软件界面的测试建模方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (15)

1.一种软件界面的测试建模方法,其特征在于,包括:
获取软件应用在第一界面状态下的第一界面图像;
在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;
比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;
记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
2.根据权利要求1所述的方法,其特征在于,在确定是否发生界面状态跳转之后,所述方法还包括:
若确定发生界面状态跳转,在所述第二界面状态下继续进行多次探索操作,直至完成所有界面状态的探索操作和结果记录。
3.根据权利要求2所述的方法,其特征在于,在所述第二界面状态下继续进行多次探索操作,直至完成所有界面状态的探索操作和结果记录,包括:
若所述第一界面图像与所述第二界面图像之间的差异大于阈值,采用二分切片法在所述第二界面状态对应的用户界面中找出中心变化区域;
继续在所述中心变化区域进行多次探索操作,获取每次探索操作完成后得到的第三界面状态的第三界面图像,直至完成所有界面状态的探索操作和结果记录。
4.根据权利要求1所述的方法,其特征在于,所述探索操作包括鼠标点击操作和输入操作;
所述操作参数包括:操作方式、所述探索操作的操作区域图像和所述输入操作的输入参数;所述输入参数包括多个不同类型的输入数据。
5.根据权利要求1所述的方法,其特征在于,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
按照预设像素步长,在所述第一界面状态下逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
6.根据权利要求1所述的方法,其特征在于,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
根据已知的无需探索区域图像,在所述第一界面状态下匹配得到目标区域;
按照预设像素步长,在所述第一界面状态下避开所述目标区域的同时,逐行和逐列进行探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像。
7.根据权利要求1所述的方法,其特征在于,在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像,包括:
在所述第一界面状态下进行多个输入点的组合输入操作,获取每种组合输入操作后得到的第二界面状态的第二界面图像。
8.根据权利要求1所述的方法,其特征在于,所述比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转,包括:
比对所述第一界面图像和所述第二界面图像之间的像素差异,若差异超过阈值,确定发生界面状态跳转。
9.根据权利要求1所述的方法,其特征在于,所述操作参数包括操作区域图像,在所述比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转之后,所述方法还包括:
若确定发生了界面状态跳转,且多个不同位置的探索操作对应获取到的第二界面图像均相同,将所述多个不同位置汇聚得到的区域作为一个目标操作区域;
截取所述目标操作区域的图像,作为从所述第一界面状态切换到所述第二界面状态的操作区域图像。
10.根据权利要求1所述的方法,其特征在于,所述记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数,包括:
通过双向条件图记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数;
所述双向条件图的每个节点代表一种界面状态,一种界面状态切换到另一种界面状态的方向作为对应节点之间连接的有向线段,一种界面状态切换到另一种界面状态的探索操作的操作参数为所述有向线段的参数。
11.根据权利要求10所述的方法,其特征在于,在所述通过双向条件图记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数之后,所述方法还包括:
若未完成所有界面状态的探索操作,测试建模中断,基于所述双向条件图采用最短生成树法,确定定位到指定节点的最短路径;
按照所述最短路径进行界面操作,跳转到所述指定节点对应的界面状态。
12.根据权利要求1所述的方法,其特征在于,所述记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数,包括:
通过表格记录每次界面状态跳转时对应的所述第一界面图像的界面状态标识、第二界面图像的界面状态标识以及所述探索操作的操作参数;
根据依赖关系库,在所述表格中录入每个界面状态标识对应的依赖界面状态标识。
13.一种软件界面的测试建模装置,其特征在于,包括:
状态获取模块,用于获取软件应用在第一界面状态下的第一界面图像;
探索操作模块,用于在所述第一界面状态下进行多次探索操作,并获取每次探索操作完成后得到的第二界面状态的第二界面图像;
状态比对模块,用于比对所述第一界面图像和第二界面图像之间的差异,确定是否发生界面状态跳转;
结果记录模块,用于记录每次界面状态跳转时对应的所述第一界面图像、第二界面图像以及所述探索操作的操作参数。
14.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-13任意一项所述的软件界面的测试建模方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-13任意一项所述的软件界面的测试建模方法。
CN202111146795.3A 2021-09-28 2021-09-28 软件界面的测试建模方法及装置、电子设备、存储介质 Pending CN113836028A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111146795.3A CN113836028A (zh) 2021-09-28 2021-09-28 软件界面的测试建模方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111146795.3A CN113836028A (zh) 2021-09-28 2021-09-28 软件界面的测试建模方法及装置、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN113836028A true CN113836028A (zh) 2021-12-24

Family

ID=78967342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111146795.3A Pending CN113836028A (zh) 2021-09-28 2021-09-28 软件界面的测试建模方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN113836028A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521331A (zh) * 2011-12-06 2012-06-27 中国科学院计算机网络信息中心 网页跳转作弊检测方法及装置
US20130019171A1 (en) * 2011-07-11 2013-01-17 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
CN104899146A (zh) * 2015-06-19 2015-09-09 安一恒通(北京)科技有限公司 基于图像匹配技术的软件稳定性测试方法和装置
CN110008110A (zh) * 2019-01-28 2019-07-12 阿里巴巴集团控股有限公司 用户界面的测试方法及装置
CN111694756A (zh) * 2020-07-31 2020-09-22 北京字节跳动网络技术有限公司 一种应用程序测试方法及装置
CN112783764A (zh) * 2021-01-08 2021-05-11 展讯通信(上海)有限公司 应用程序的自动化测试方法及装置、存储介质、终端
CN112835786A (zh) * 2021-01-08 2021-05-25 展讯通信(上海)有限公司 应用程序界面跳转的最优路径计算方法及装置、存储介质、终端
CN113190444A (zh) * 2021-04-28 2021-07-30 深圳市腾讯网域计算机网络有限公司 一种测试方法、装置及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130019171A1 (en) * 2011-07-11 2013-01-17 International Business Machines Corporation Automating execution of arbitrary graphical interface applications
CN102521331A (zh) * 2011-12-06 2012-06-27 中国科学院计算机网络信息中心 网页跳转作弊检测方法及装置
CN104899146A (zh) * 2015-06-19 2015-09-09 安一恒通(北京)科技有限公司 基于图像匹配技术的软件稳定性测试方法和装置
CN110008110A (zh) * 2019-01-28 2019-07-12 阿里巴巴集团控股有限公司 用户界面的测试方法及装置
CN111694756A (zh) * 2020-07-31 2020-09-22 北京字节跳动网络技术有限公司 一种应用程序测试方法及装置
CN112783764A (zh) * 2021-01-08 2021-05-11 展讯通信(上海)有限公司 应用程序的自动化测试方法及装置、存储介质、终端
CN112835786A (zh) * 2021-01-08 2021-05-25 展讯通信(上海)有限公司 应用程序界面跳转的最优路径计算方法及装置、存储介质、终端
CN113190444A (zh) * 2021-04-28 2021-07-30 深圳市腾讯网域计算机网络有限公司 一种测试方法、装置及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
傅鹤岗;陆艳军;曾刚;: "一种基于事件的Web程序测试模型", 计算机应用, no. 03 *
缪淮扣;陈圣波;曾红卫;: "基于模型的Web应用测试", 计算机学报, no. 06 *

Similar Documents

Publication Publication Date Title
US10289541B2 (en) Source code flow analysis using information retrieval
US10776569B2 (en) Generation of annotated computerized visualizations with explanations for areas of interest
US20190303269A1 (en) Methods and systems for testing visual aspects of a web page
US20120158623A1 (en) Visualizing machine learning accuracy
US20110099499A1 (en) Graphical user interface component identification
KR101892206B1 (ko) 양방향 텍스트 검사기
CN107622080B (zh) 一种数据处理方法及设备
US20110099498A1 (en) Graphical user interface hierarchy generation
CN107229669A (zh) 用于选择关于评估网站无障碍性的样本集的方法和系统
US10423416B2 (en) Automatic creation of macro-services
US9910487B1 (en) Methods, systems and computer program products for guiding users through task flow paths
CN114090155A (zh) 机器人流程自动化界面元素定位方法、装置和存储介质
CN109144871B (zh) 一种自动化测试元素的识别方法及装置
CN108804563B (zh) 一种数据标注方法、装置以及设备
US20170308379A1 (en) Evaluating documentation coverage
CN109358919B (zh) 通用页面的动态配置方法、装置、计算机设备及存储介质
JP2010026923A (ja) 文書分類方法、文書分類装置、文書分類プログラム、および、コンピュータ読取り可能記録媒体
CN113836028A (zh) 软件界面的测试建模方法及装置、电子设备、存储介质
US11681728B2 (en) Event display method and device
CN110955813A (zh) 一种数据爬取方法及装置
CN115310011A (zh) 页面展示方法、系统以及可读存储介质
JP2020530629A (ja) データレコード内のフォーマットを動的に定義する技術
CN105359111A (zh) 用户界面检查方法、设备及程序
US20220197776A1 (en) Information processing apparatus, information processing method, and storage medium
US20240012740A1 (en) Systems and methods for integrated design, assessment and remediation of web pages

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.