掌桥专利:专业的专利平台
掌桥专利
首页

一种软件系统功能自动化测试方法、装置及介质

文献发布时间:2024-04-18 19:52:40


一种软件系统功能自动化测试方法、装置及介质

技术领域

本发明涉及自动化测试技术领域,并且更具体地,涉及一种软件系统功能自动化测试方法、装置及介质。

背景技术

传统的软件功能自动化测试是基于脚本录制、回放技术的,分为以下三个步骤:1.脚本录制:测试人员首先在被测试系统上运行一次需要自动化测试的全部步骤,测试工具通过记录相应页面元素ID、输入数据的方式,完成录制;2.脚本编辑:测试人员通过回放脚本、阅读代码等方式检查相应脚本流程,将被输入数据参数化,即从数据库中读取相应数据作为输入;3.进行测试:本质上为通过回放脚本完成自动化测试,如输出数据与预设数据符合,则判定为测试通过。存在以下缺点:1.需要人工执行测试、记录结果;2.受测试人员个人经验影响较大。

发明内容

针对现有技术的不足,本发明提供一种软件系统功能自动化测试方法、装置及介质。

根据本发明的一个方面,提供了一种软件系统功能自动化测试方法,包括:

将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息;

根据页面元素信息生成软件系统的功能地图;

根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现。

可选地,将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息的操作,包括:

将软件系统页面进行截屏,确定软件系统页面图像;

对软件系统页面图像二值化处理;

标定图像中的非页面底色像素点集,并以像素点集范围及坐标作为确定该页面内页面元素范围及坐标定位的依据;

依据页面元素坐标定位对每个页面元素范围进行截屏;

利用文字识别算法识别每个页面元素范围截屏内的信息,并与每个页面元素范围截屏及其位置组成三元组保存在数据库中;

利用文字识别算法对待测试软件系统截屏进行识别及坐标定位;

利用空心矩形框检测法遍历页面元素数据,获取空心矩形框范围及其坐标,作为空心框型候选输入区域;

利用线段检测法遍历页面元素数据,获取线段范围及其坐标,作为下划线型候选输入区域;

基于空心矩形框检测法、线段检测法遍历页面元素数据,利用输入区域检测法,获取输入区域范围及坐标;

遍历页面元素,获取页面内有效点击区域及其坐标;

遍历页面元素、根据有效点击区域与页面间跳转关系、页面输入区域,生成软件的功能地图,其中有效点击跳转区域作为地图的“地点”,页面输入区域输入的内容作为两个“地点”间的道路名称。

可选地,遍历页面元素,获取页面内有效点击区域及其坐标的操作,包括:

对点击前后的两个页面截屏图片进行相似度比较,

遍历所述页面信息热点数据信息的子集,模拟鼠标单击,截图比较所述软件系统在点击前后截屏之间的差异,若差异集中在像素值大于设定阈值的像素连通子集内,则判定该页面信息热点数据信息的子集为可点击区域。系统页面下拉框、弹出框作为新页面处理。

利用所述文字识别算法对所述页面有效点击区域进行文字识别,确定所述页面可点击区域的标签,在文字识别失败的情况下,采用该输有效点击区域截图作为标签。

可选地,基于空心矩形框检测法、线段检测法遍历生成页面元素数据,利用输入区域检测法,获取输入区域范围及坐标的操作,包括:

遍历所述页面信息热点数据信息的子集,模拟鼠标单击后发送固定字符串,并再次截图比较所述软件系统页面前后两次截屏之间的差异,若差异集中在相应的页面信息热点数据信息的子集内,并使用文字识别算法识别差异部分与发送的固定字符串相似程度超过阈值,则判定该页面信息热点数据信息的子集为页面输入区域;

可选地,根据元素信息生成软件系统的功能地图的操作,包括:

将软件系统首页内的各页面元素信息作为功能地图的起点集合,并将首页内的各个页面元素的标签作为起点名称;

根据软件系统的全部页面的页面元素信息,将点击次数作为各页面之间元素的道路连通距离;

根据功能地图的起点、起点名称以及页面之间元素的道路连通距离,生成功能地图;

根据页面有效点击区域所附带的输入信息,作为两个不同页面间页面元素间的道路名称。

对于页面文字识别结果中非点击区域、输入区域的部分,作为该页面的输出信息处理。

可选地,根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现的操作,包括:

利用深度有限搜索算法遍历功能地图的路径全集,在待测试软件两个功能点之间的路径包含在路径全集的情况下,确定待测试软件功能已经实现。

根据本发明的另一个方面,提供了一种软件系统功能自动化测试装置,包括:

软件功能遍历模块,用于将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息;

软件地图生成模块,用于根据页面元素信息生成软件系统的功能地图;

软件功能判断模块,用于根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现。

根据本发明的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明上述任一方面所述的方法。

根据本发明的又一个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明上述任一方面所述的方法。

从而,本申请提供的软件系统功能自动化测试方法及装置,通过自动建立软件功能地图,实现对软件系统的自认知。通过功能测试用例与软件功能地图的比对可判断功能是否实现,全过程只需极少人工参与。测试质量与算法强相关,不受人工影响。无需标注数据、训练模型等过程,节约大量人工和硬件成本。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1是本发明一示例性实施例提供的软件系统功能自动化测试方法的流程示意图;

图2a是本发明一示例性实施例提供的4-连通的二值图像示意图;

图2b是本发明一示例性实施例提供的软件系统功能自动化测试方法的另一流程示意图;

图3是本发明一示例性实施例提供的功能地图的示意图;

图4是本发明一示例性实施例提供的软件系统功能自动化测试装置的结构示意图;

图5是本发明一示例性实施例提供的电子设备的结构。

具体实施方式

下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系生成的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

示例性方法

图1是本发明一示例性实施例提供的软件系统功能自动化测试方法的流程示意图。本实施例可应用在电子设备上,如图1所示,软件系统功能自动化测试方法100包括以下步骤:

步骤101,将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息;

步骤102,根据页面元素信息生成软件系统的功能地图;

步骤103,根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现。

可选地,将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息的操作,包括:

将软件系统页面进行截屏,确定软件系统页面图像;

对软件系统页面图像二值化处理;

标定图像中的非页面底色像素点集,并以像素点集范围及坐标作为确定该页面内页面元素范围及坐标定位的依据;

依据页面元素坐标定位对每个页面元素范围进行截屏;

利用文字识别算法识别每个页面元素范围截屏内的信息,并与每个页面元素范围截屏及其位置组成三元组保存在数据库中;

利用文字识别算法对待测试软件系统截屏进行识别及坐标定位;

利用空心矩形框检测法遍历页面元素数据,获取空心矩形框范围及其坐标,作为空心框型候选输入区域;

利用线段检测法遍历页面元素数据,获取线段范围及其坐标,作为下划线型候选输入区域;

基于空心矩形框检测法、线段检测法遍历页面元素数据,利用输入区域检测法,获取输入区域范围及坐标;

遍历页面元素,获取页面内有效点击区域及其坐标;

遍历页面元素、根据有效点击区域与页面间跳转关系、页面输入区域,生成软件的功能地图,其中有效点击跳转区域作为地图的“地点”,页面输入区域输入的内容作为两个“地点”间的道路名称。

可选地,遍历页面元素,获取页面内有效点击区域及其坐标的操作,包括:

遍历所述页面信息热点数据信息的子集,模拟鼠标单击,截图比较所述软件系统在点击前后截屏之间的差异,若差异集中在像素值大于设定阈值的像素连通子集内,则判定该页面信息热点数据信息的子集为可点击区域。系统页面下拉框、弹出框作为新页面处理。

利用所述文字识别算法对所述页面有效点击区域进行文字识别,确定所述页面可点击区域的标签,在文字识别失败的情况下,采用该输有效点击区域截图作为标签。

可选地,基于空心矩形框检测法、线段检测法遍历所述页面元素数据,利用输入区域检测法,获取输入区域范围及坐标的操作,包括:

遍历所述页面信息热点数据信息的子集,模拟鼠标单击后发送固定字符串,并再次截图比较所述软件系统页面前后两次截屏之间的差异,若差异集中在相应的页面信息热点数据信息的子集内,并使用文字识别算法识别差异部分与发送的固定字符串相似程度超过阈值,则判定该页面信息热点数据信息的子集为页面输入区域;

可选地,根据元素信息生成软件系统的功能地图的操作,包括:

将软件系统首页内的各页面元素信息作为功能地图的起点集合,并将首页内的各个页面元素的标签作为起点名称;

根据软件系统的全部页面的页面元素信息,将点击次数作为各页面之间元素的道路连通距离;

根据功能地图的起点、起点名称以及页面之间元素的道路连通距离,生成功能地图;

根据页面有效点击区域所附带的输入信息,作为两个不同页面间页面元素间的道路名称。

对于页面文字识别结果中非点击区域、输入区域的部分,作为该页面的输出信息处理。

可选地,根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现的操作,包括:

利用深度有限搜索算法遍历功能地图的路径全集,在待测试软件两个功能点之间的路径包含在路径全集的情况下,确定待测试软件功能已经实现。

具体地,首先对测试过程元素进行定义:

定义1(页面输入):为软件系统下一步运行提供的信息,包括:按钮点击、输入后点击两类。

定义2(页面输入元素):点击后可实现页面输入的页面元素,如按钮、输入框等。

定义2(页面输出):软件系统为人下一步操作提供的信息,包括:初始页面展示、页面输入后的信息输出两类。

定义3(页面信息热点):一个软件系统页面上所有不同于背景色的点集组成的空间,该空间可表示为其子集的直和。其中子集内每个点之间的Hausdorff距离小于与该子集外的点。

定义4(软件系统功能地图):一个软件系统功能点及其关系的集合。其中功能点表现为软件系统内任一页面的页面输入元素。如果在有限步操作后,从一个页面输入元素所在页面可以到达另一个页面输入元素所在页面,则称该两个页面输入元素是道路连通的。反之,则为不连通。一个页面输入元素所在页面可以到达另一个页面输入元素所在页面所需要的操作步数,成为两个页面输入元素之间的道路长度。在每段道路上的页面输入,成为该道路的名称,每段道路可存在一个或多个页面输入,但不能为空。

定义5(矩形空心框):在4-连通的二值图像中(如图2a):

(1)首先查找一个外边界的起始点;

(2)如该起始点只有编码为0的边界像素点;

(3)在有限次递归n1后,只有编码为3的边界像素点;

(4)在有限次递归n2后,只有编码为2的边界像素点;

(5)在有限次递归n3后,只有编码为1的边界像素点;

(6)在有限次递归n4后,回到初始外边界起始点,并且n1=n3,n2=n4,该外边界B1是连通且闭合的;

(7)其次,查找一个孔边界的起始点;

(8)在有限次递归m1后,只有编码为3的边界像素点;

(9)在有限次递归m2后,只有编码为2的边界像素点;

(10)在有限次递归m3后,只有编码为1的边界像素点;

(11)在有限次递归m4后,回到初始外边界起始点,并且m1=m3,m2=m4,该孔边界B2是连通且闭合的;

(12)B1形成B2的母边界。

定义6(线段):在4-连通的二值图像中:

(1)首先查找一个外边界的起始点;

(2)如该起始点只有编码为0的边界像素点;

(3)在有限次递归n1后,只有编码为3的边界像素点;

(4)该图形是连通但不闭合的。

定义6(功能链):软件系统的某项功能n可经由操作[1,…,n-1]步操作后实现,则成该功能为功能链n;

性质1:在每次页面输入操作后,系统应在限定时间内给予一个异于输入页面的页面输出。

性质2:同一页面上的输入框一定存在关联关系,属于同一个输入或查询条件组合。

具体地,参考图2b所示,基于软件系统结构自认知及路径导航算法进行功能测试的概要图如下所示,其中第一步至第八步为软件系统结构自认知,第九步为基于路径导航算法判断测试用例中某功能是否实现,具体请查看后续详述。

步骤1页面信息热点及坐标的遍历

(1)对截屏图像进行二值化;

(2)采用OpenCV中的Findcontours()函数遍历图像中的非页面底色像素点,并根据拓扑结构划分为子集;

(3)在每个子集外生成矩形框;

(4)输出每个矩形框的左上、左下、右上、右下四个点坐标。

(5)以坐标向量为每个子集的唯一标识。

步骤2页面文字的遍历

使用百度paddle文字识别算法对该页面截图识别所有文字及相应矩形框的左上、左下、右上、右下四个点坐标,并以坐标向量为每组文字的唯一标识。

步骤3空心矩形框的遍历

空心矩形框是输入框概率较高的存在形式,因此对矩形空心框的遍历将极大降低对输入框的遍历空间。

本方法根据现有基于OpenCV检测矩形的方法及OpenCV对内轮廓的检测能力提出基于OpenCV的矩形空心框遍历方法如下;

(1)滤波增强边缘;

(2)分离图像通道,并用OpenCV的CV_RETR_EXTERNAL()函数检测外边缘;

(3)提取外轮廓;

(4)计算矩形4个顶点;

(5)在提取矩形成功的情况下,用OpenCV的CV_RETR_TREE()函数在(4)的坐标范围内检测所有轮廓,并形成一个等级树结构;

(6)如果(5)中只有二级轮廓,则判定该图形为空心矩形框,作为输入框处理。

步骤4线段的遍历

线段是输入框概率较高的存在形式,因此对矩形空心框的遍历将极大降低对输入框的遍历空间,本方法采用基于OpenCV的线段检测方法对截屏进行遍历。

步骤5页面输入(按钮)的遍历

根据定义1,按钮是可为软件系统下一步运行提供必要输入信息且可采用点击方式完成操作。又由性质1,在点击按钮后的有限时间内,系统页面将在某种程度上异于原页面。因此,本方法采用以下步骤对当前页面的按钮进行遍历:

(1)完成图2中的第一步至第二步;

(2)根据第二步中获得的当前页面信息热点子集坐标,向软件系统发送mouse.left_click()操作;

(3)遍历所述页面信息热点数据信息的子集,模拟鼠标单击,截图比较所述软件系统在点击前后截屏之间的差异,若差异集中在像素值大于设定阈值的像素连通子集内,则判定该页面信息热点数据信息的子集为可点击区域。系统页面下拉框、弹出框作为新页面处理。

(4)对该信息热点子集采用步骤2中的paddle文字识别算法进行文字识别,将识别结果作为该可点击区域的标签;

(5)若文字识别失败,则认为该按钮为图片形式按钮,按照页面信息热点子集坐标截取该范围内图像作为该按钮的标签;

(6)循环步骤(1)至(5),完成对当前页面内所有按钮的遍历结果。

步骤6页面输入(各类输入框)的遍历

(1)设图1中第二步遍历页面信息热点的结果全集为U,是每个子集{U

(2)设图1中第三步遍历页面文字的结果全集为W,是每个子集{W

(3)设图1中第四步遍历页面所有矩形空心框的结果全集为R,是每个子集{R

(4)设图1中第五步遍历页面所有线段的结果全集为S,是每个子集{S

(5)对非下拉或弹出式输入框:

a.在R的矩形空心框内部发送mouse.left_click()操作,并发送keybord_input(),内容为test;

b.重新截图,如在该矩形空心框内的文字识别结果为test,或识别结果与test的相似度超过预设阈值,则将前后两个页面的差异部分作为按钮或按钮组合对待;

(6)对下拉或弹出式输入框:

a.在R的矩形空心框内部发送mouse.left_click()操作,并发送keybord_input(),内容为test;

b.重新截图,如未在该矩形空心框内的文字识别结果为test,或识别结果与test的相似度超过预设阈值,则在前后两个页面的差异部分中执行图1中第二步;

c.向每个信息热点子集中发送mouse.left_click()操作:

1)比较mouse.left_click()操作前后的页面,如差异集中在像素值大于设定阈值的像素连通子集内,则判定该页面信息热点数据信息的子集为可点击区域。,则认为页面发生跳转,该页面信息热点子集为一个按钮;对该信息热点子集采用步骤2中的paddle文字识别算法进行文字识别,将识别结果作为该按钮的标签。

2)比较mouse.left_click()操作前后的页面,如差异比例小于阈值σ,则认为该页面未发生跳转,该下拉或弹出框中的选项为“单选”或“多选”操作。对选项坐标区域采用步骤2中的paddle文字识别算法进行文字识别,将识别结果作为该按钮的标签。

d.循环以上步骤直至下拉或弹出框所有信息热点均遍历完成。

步骤7页面输出

对每一步输入操作后的软件系统输出,同时保存系统截屏与步骤2中的paddle文字识别算法进行文字识别的结果,参照步骤8中的O

步骤8软件系统功能地图的生成

软件系统功能地图是一个二维有向图,具体生成步骤如下:

(1)从软件系统首页面开始,通过步骤1至步骤6各步方法,遍历全部页面输入元素,并将其作为地图起点。输入元素标签为起点名称;

(2)设各页输入元素的全集为I

(3)循环步骤(1)、(2),并记录为四元组[I

(4)迭代以上步骤即可生成软件系统的功能地图,参考图3所示。

步骤9根据深度优先搜索算法判断功能是否实现

功能测试用例可看作对软件系统的功能链集合的验证,因此本方法采用深度优先搜索算法(Depth-First-Search)历两个功能点间的全部路径集合P,并记录途径节点,如测试用例的功能链属于P,则认为该功能已经实现,具体步骤如下:

(1)假设某测试用例为验证功能X={S

(2)假设该软件系统已生成功能地图,该功能地图为M,全部功能点间的路径全集为∪P;

(3)在∪P中搜索X,若存在相同路径,则认为该系统功能已实现。

(4)若对输入输出有进一步要求,则可预设相关步骤的输入信息、期望输出信息,并重新执行步骤6“页面输入(各类输入框)的遍历”中的第五步、第六步。

(5)如在O

步骤10功能测试用例的改造

采用本方法的测试用例需要列出:

(1)该功能的功能链,参照步骤9(1);

(2)该功能的输入信息、期望输出信息。

步骤11对非文字输入信息的标识

在步骤5(5)中对图片形式按钮采用截取该图片的方式作为唯一标签,可由人工对该类标签统一输入文字标签。

本方法提出的软件系统功能自动化测试方法包含以下效果:

(1)该方法可自动根据软件功能生成功能地图,如相关功能测试用例所描述的功能链已包含在功能地图中相关功能的路径集合中,则判定该功能已实现;

(2)该方法可指定输入信息和期待输输出信息用以辅助判断功能实现情况;

(3)该方法不需要人工执行测试用例、不需要训练人工智能模型、不需要标注数据。

(4)在功能测试用例满足步骤10要求的前提下,可实现近乎零人工的软件系统功能自动化测试(除步骤11中提及的少量人工标识工作)。

从而,本申请1.解决传统功能测试中人力成本高的问题:通过自动建立软件功能地图,实现对软件系统的自认知;通过功能测试用例与软件功能地图的比对可判断功能是否实现,全过程只需极少人工参与;

2.解决传统功能测试中测试质量不稳定的问题:测试质量与算法强相关,不受人工影响;

3.解决基于AI的功能测试中训练成本高的问题:无需标注数据、训练模型等过程,节约大量人工和硬件成本。

示例性装置

图4是本发明一示例性实施例提供的软件系统功能自动化测试装置的结构示意图。如图4所示,装置400包括:

软件遍历模块410,用于将待测试软件系统进行全屏显示,遍历软件系统页面所有的页面元素信息;

软件地图生成模块420,用于根据页面元素信息生成软件系统的功能地图;

软件功能判断模块430,用于根据预先设置的路径导航算法对功能地图进行遍历,判断待测试软件功能是否实现。

可选地,遍历模块410,包括:

第一确定子模块,用于将软件系统页面进行截屏,确定软件系统页面图像;

二值化处理子模块,用于对软件系统页面图像二值化处理;

第二确定子模块,用于标定图像中的非页面底色像素点集,并以像素点集范围及坐标作为确定该页面内页面元素范围及坐标定位的依据;

截屏子模块,用于依据页面元素坐标定位对每个页面元素范围进行截屏;

第一识别子模块,用于利用文字识别算法识别每个页面元素范围截屏内的信息,并与每个页面元素范围截屏及其位置组成三元组保存在数据库中;

第二识别子模块,用于利用文字识别算法对待测试软件系统截屏进行识别及坐标定位;

第一获取子模块,用于利用空心矩形框检测法遍历页面元素数据,获取空心矩形框范围及其坐标,作为空心框型候选输入区域;

第二获取子模块,用于利用线段检测法遍历页面元素数据,获取线段范围及其坐标,作为下划线型候选输入区域;

第三获取子模块,用于基于空心矩形框检测法、线段检测法遍历页面元素数据,利用输入区域检测法,获取输入区域范围及坐标;

第一遍历子模块,用于遍历页面元素,获取页面内有效点击区域及其坐标;

第二遍历子模块,用于遍历页面元素、根据有效点击区域与页面间跳转关系、页面输入区域,生成软件的功能地图,其中有效点击跳转区域作为地图的“地点”,页面输入区域输入的内容作为两个“地点”间的道路名称。

可选地,第一遍历子模块,包括:

作为单元,用于对点击前后的两个页面截屏图片进行相似度比较,若差异集中在像素值大于设定阈值的像素连通子集内,则判定该页面信息热点数据信息的子集为可点击区域。则认为页面发生跳转,该页面信息热点可作为有效点击区域处理。系统页面下拉框、弹出框作为新页面处理。

确定单元,用于利用文字识别算法对页面有效点击区域进行文字识别,确定页面可点击区域的标签,在文字识别失败的情况下,采用该输有效点击区域截图作为标签。

可选地,第三获取子模块,包括:

比较单元,用于遍历页面信息热点数据信息的子集,比较软件系统前后两个相邻页面之间像素数量的差异比例;

判断单元,用于在差异集中在相应的页面信息热点数据信息的子集内,并使用文字识别算法识别差异部分与发送的固定字符串相似程度超过阈值,则判断该页面信息热点子集为页面输入区域。

可选地,软件地图生成模块420,包括:

第一作为子模块,用于将软件系统首页内的各页面元素信息作为功能地图的起点集合,并将首页内的各个页面元素的标签作为起点名称;

第二作为子模块,用于根据软件系统的全部页面的页面元素信息,将点击次数作为各页面之间元素的道路连通距离;

生成子模块,用于根据功能地图的起点、起点名称以及页面之间元素的道路连通距离,生成功能地图;

第三作为子模块,用于根据页面有效点击区域所附带的输入信息,作为两个不同页面间页面元素间的道路名称。

对于页面文字识别结果中非点击区域、输入区域的部分,作为该页面的输出信息处理。

可选地,软件功能判断模块430,包括:

第三确定子模块,用于利用深度有限搜索算法遍历功能地图的路径全集,在待测试软件两个功能点之间的路径包含在路径全集的情况下,确定待测试软件功能已经实现。

示例性电子设备

图5是本发明一示例性实施例提供的电子设备的结构。如图5所示,电子设备50包括一个或多个处理器51和存储器52。

处理器51可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。

存储器52可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器51可以运行所述程序指令,以实现上文所述的本发明的各个实施例的软件程序的方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置53和输出装置54,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

此外,该输入装置53还可以包括例如键盘、鼠标等等。

该输出装置54可以向外部输出各种信息。该输出装置54可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图5中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的对历史变更记录进行信息挖掘的方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明中涉及的器件、系统、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、系统、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

还需要指出的是,在本发明的系统、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 一种自动化压力测试方法及装置、计算设备及存储介质
  • 一种软件稳定性测试方法、装置、设备及介质
  • 一种软件测试方法、装置、设备及计算机可读存储介质
  • 自动化测试方法、装置、电子设备及计算机可读介质
  • 软件测试方法、装置、计算机设备和可读存储介质
  • 一种软件自动化单元测试方法、装置、服务器及存储介质
  • 一种软件自动化测试方法、装置、设备及可读存储介质
技术分类

06120116331385