一种基于人工智能的测试软件的方法及装置与流程

文档序号:11950038阅读:456来源:国知局
一种基于人工智能的测试软件的方法及装置与流程

本发明涉及计算机技术领域,具体而言,涉及一种基于人工智能的测试软件的方法及装置。



背景技术:

众所周知,软件测试是软件开发过程中必不可缺的环节,其目的在于尽可能的发现软件中存在的缺陷,以便能够及时修正错误,进而提高软件的可靠性。传统的软件测试通常需要众多测试人员亲自参与到测试过程中,需要耗费较多的人力成本。

为了减少亲自测试的工作量,测试人员可以事先编写自动化测试文档,通过自动化测试文档完成软件测试,然而这种自动化测试文档测试软件的方式,通常只能针对单一或同类的软件进行测试,随着软件的更新需要对该自动化测试文档进行相应的调整,这种调整的频率有时比较高,调整所需花费的时间成本有时也比较高,这种自动化测试文档进行软件测试的方式无法适用于各类软件的测试需求,局限性较大。

针对上述自动化测试文档进行软件测试具有较大的局限性的问题,目前尚未提出有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种基于人工智能的测试软件的方法及装置,能够打破传统的自动化测试文档进行软件测试的局限性,灵活应用到较多的软件测试中。

第一方面,本发明实施例提供了一种基于人工智能的测试软件的方法,包括:获取目标对象的当前显示界面;根据该当前显示界面的内容确定操作点和操作点对应的测试操作,该测试操作包括点击操作、输入操作、拖动操作或缩放操作;对确定的每个操作点执行对应的测试操作,并保存每次执行测试操作后的结果界面;根据结果界面设置出现该结果界面对应的操作点和测试操作的奖励分值;累积所有操作点和测试操作对应的奖励分值,将累积后得到的奖励分值作为上述当前显示界面的奖励分值;切换至下一个显示界面,继续获取下一个显示界面的奖励分值,直至得到上述目标对象对应的所有显示界面的奖励分值,根据所有显示界面的奖励分值生成目标对象的测试结果。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,根据当前显示界面的内容确定测试点和测试点对应的测试操作包括:根据预先训练的测试神经网络确定当前显示界面的测试点和测试点对应的测试操作,其中,该测试神经网络的训练过程包括:根据当前训练界面的分辨率,将当前训练界面划分为N行*M列的网格,其中,N和M均为大于1的自然数;对于网格中相交的交点重复下述步骤直至达到预设次数或预设时长:测试神经网络对当前交点执行训练操作,保存执行训练操作后的结果界面,并根据结果界面为当前交点和对应的训练操作设置奖励分值;根据奖励分值的大小从交点和对应的训练操作中选择并保存当前训练界面的测试点和测试点对应的测试操作;重置训练界面,继续训练,直至训练次数或训练时间达到设定阈值。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,测试神经网络的训练过程还包括:在训练过程中,如果交点和对应的训练操作的奖励分值为0的次数大于设定次数阈值,舍弃交点和对应的训练操作;当在预设时间和/或预设次数中检测到执行连续步骤的训练操作所对应的奖励分值的总和低于设定分数阈值时,舍弃训练操作。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,根据当前显示界面的内容确定测试点和测试点对应的测试操作之前,还包括:在当前显示界面内随机选择测试点并随机执行测试操作,直至执行测试操作的次数达到预设次数。

结合第一方面或第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述奖励分值的设置方式包括:通过预先训练的缺陷比对神经网络将结果界面与预先存储的缺陷标识图片进行比对;根据比对结果生成缺陷测试结果;其中,该缺陷测试结果包括结果界面对应的类型、缺陷判定结果以及缺陷等级;在预先设置的测试奖励参照表中查找与缺陷测试结果对应的奖励分值;设置结果界面对应的奖励分值为查找到的奖励分值。

结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在预先设置的测试奖励参照表中查找与缺陷测试结果对应的奖励分值之后,上述方法还包括:比对结果界面和出现结果界面的上一个界面的差异大小;根据差异大小和测试奖励参照表对结果界面的奖励分值追加额外分值。

结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,根据所有显示界面的奖励分值生成目标对象的测试结果后,上述方法还包括:获取目标对象的用户反馈信息;根据用户反馈信息和测试结果,调整测试奖励参照表对应表项的奖励分值。

第二方面,本发明实施例还提供一种基于人工智能的测试软件的装置,包括:界面获取模块,用于获取目标对象的当前显示界面;操作确定模块,用于根据该当前显示界面的内容确定操作点和操作点对应的测试操作,该测试操作包括点击操作、输入操作、拖动操作或缩放操作;操作执行模块,用于对确定的每个操作点执行对应的测试操作,并保存每次执行测试操作后的结果界面;分值设置模块,用于根据结果界面设置出现该结果界面对应的操作点和测试操作的奖励分值;分值累积模块,用于累积所有操作点和测试操作对应的奖励分值,将累积后得到的奖励分值作为当前显示界面的奖励分值;界面切换与触发模块,用于切换至下一个显示界面,触发界面获取模块、操作确定模块、操作执行模块、分值设置模块和分值累积模块继续获取下一个显示界面的奖励分值,直至得到目标对象对应的所有显示界面的奖励分值;测试结果生成模块,用于根据所有显示界面的奖励分值生成目标对象的测试结果。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,该装置还包括:随机测试模块,用于在当前显示界面内随机选择测试点并随机执行测试操作,直至执行测试操作的次数达到预设次数。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,装置还包括:反馈信息获取模块,用于获取目标对象的用户反馈信息;分值调整模块,用于根据用户反馈信息和测试结果,调整分值查找单元查找的测试奖励参照表中对应表项的奖励分值。

本发明实施例提供了一种基于人工智能的测试软件的方法及装置,通过在目标对象(即,被测试的软件)的界面上确定操作点和测试操作,并根据在操作点执行测试操作后的结果界面设置对应的奖励分值,将所有操作点和测试操作对应的奖励分值累积而得到当前界面的奖励分值;切换界面重复上述过程,直至得到目标对象对应的所有界面的奖励分值,最后根据该总的奖励分值生成目标对象的测试结果。这种软件测试方式,能够将任意软件的测试过程转换为其显示界面的测试过程,并且对于每个界面,可以根据其显示的内容确定出合理的操作点和该操作点对应的测试操作,因此与现有技术中自动化测试文档通常只能针对单一或同类的软件进行测试,具有较大的局限性的问题相比,上述方法及装置不再局限于某类软件,其应用范围更为广泛,从而可以对多种软件进行测试,打破了传统的软件测试的局限性。并且根据奖励分值生成测试结果的方式,还可以简单可靠的对该测试过程进行评判,提升了测试的有效性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例所提供的一种基于人工智能的测试软件的方法流程图;

图2示出了本发明实施例所提供的另一种基于人工智能的测试软件的方法流程图;

图3示出了本发明实施例所提供的一种基于人工智能的测试软件的装置的结构框图;

图4示出了本发明实施例所提供的另一种基于人工智能的测试软件的装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到现有技术中自动化测试文档通常只能针对单一或同类的软件进行测试,具有较大的局限性的问题,本发明实施例提供了一种基于人工智能的测试软件的方法及装置,该技术可以采用相应的软件和硬件实现,下面通过实施例进行描述。

实施例1

参见图1所示的一种基于人工智能的测试软件的方法流程图,该方法包括以下步骤:

步骤S102,获取目标对象的当前显示界面,该目标对象即为被测试的软件,其中,被测试的软件的类型可以包括APP、网页等;当前显示界面可以通过对被测试软件的界面进行截图得到。

步骤S104,根据当前显示界面的内容确定操作点和该操作点对应的测试操作,该测试操作包括点击操作、输入操作、拖动操作或缩放操作;该测试方法可以根据显示界面来选择操作点和在该操作点上执行的测试操作,不同的界面相对应的优选操作点和测试操作可能不同。应当注意的是,上述所列的测试操作仅为示意,不应当被视为限制,所有可能执行的合法操作动作均可以包括在内。

步骤S106,对确定的每个操作点执行对应的测试操作,并保存每次执行测试操作后的结果界面;不同的测试操作可能会生成不同的结果界面。例如当测试操作无效时,则结果界面保持不变;当测试操作有效时,结果界面则与原有界面发生差异性变化。

步骤S108,根据上述结果界面设置出现该结果界面对应的操作点和测试操作的奖励分值;不同的操作点和测试操作对于软件测试的贡献度不同,因而可以通过奖励分值来客观的衡量测试操作的贡献度。在此处,能够找到缺陷的测试操作对应的贡献度高,有助于软件测试,而无效操作对应的贡献度则较低。例如无效的测试操作对应的奖励分值为0,有效的测试操作对应的奖励分值则为不同正数值,其中,奖励分值可以根据测试操作的贡献度进行相应的设置,贡献度高的测试操作对应的奖励分值较高。

步骤S110,累积所有操作点和测试操作对应的奖励分值,将累积后得到的奖励分值作为上述当前显示界面的奖励分值;在被测试软件的当前界面上可能会依次进行多点测试,也可能执行不同的测试操作,最后对该界面的所有测试结果进行累加,从而确定该界面经过测试后对应的奖励分值。

步骤S112,切换至下一个显示界面,继续获取下一个显示界面的奖励分值,直至得到上述目标对象对应的所有显示界面的奖励分值,根据所有显示界面的奖励分值生成该目标对象的测试结果。

当一个显示界面测试完毕后,切换至下一个界面,重复上述步骤S102至步骤S110,获得目标对象的每个被测试界面对应的奖励分值,进而根据所有被测试界面的奖励分值而生成目标对象(即被测试软件)的测试结果。其中,上述目标对象对应的所有显示界面可以是目标对象的每个显示界面,也可以是其显示界面中的一部分。测试结果的生成方式可以根据事先自行设置,例如可以通过总的奖励分值进行整体分析,也可以通过单一界面的分散奖励分值进行有针对性的分析,尤其需要体现高奖励分值对应的界面和在该界面上的操作点执行的测试操作,从而使被测试软件的测试结果更为准确的反映真实情况。

本实施例的上述方法中,通过在目标对象(即,被测试的软件)的界面上确定操作点和测试操作,并根据在操作点执行测试操作后的结果界面设置对应的奖励分值,将所有操作点和测试操作对应的奖励分值累积而得到当前界面的奖励分值;切换界面重复上述过程,直至得到目标对象对应的所有界面的奖励分值,最后根据该总的奖励分值生成目标对象的测试结果。这种软件测试方式,能够将任意软件的测试过程转换为其显示界面的测试过程,并且对于每个界面,可以根据其显示的内容确定出合理的操作点和该操作点对应的测试操作,因此上述方法及装置不再局限于某类软件,其应用范围更为广泛,从而可以对多种软件进行测试,打破了传统的软件测试的局限性。并且根据奖励分值生成测试结果的方式,还可以简单可靠的对该测试过程进行评判,提升了测试的有效性。

考虑到不同界面上的有效操作点和有效测试操作不同,为了能够对被测软件进行高效测试,需要确定待测试界面上的有效测试点和有效测试操作,因而上述根据当前显示界面的内容确定测试点和测试点对应的测试操作的具体实施方式为:根据预先训练的测试神经网络确定当前显示界面的测试点和测试点对应的测试操作;其中,测试神经网络经过训练后,可以根据被测界面而确定优选测试点和在该测试点上执行的优选测试操作。例如,当被测试软件为视频播放软件时,则相应的需要对视频播放界面进行测试,测试神经网络会根据该界面确定可以在界面右上角执行点击操作,在界面的底端侧执行点击、滑动操作,在界面的四周边界以及四个端点执行拉伸、拖拽操作等;当被测试软件为网络购物平台时,则相应的需要对购物界面进行测试,经过训练后的测试网络会根据该界面的多个点执行点击操作,在界面右侧方执行滑动操作、在界面的上方侧执行输入操作等。应当注意的是,预先训练后的测试神经网络能够根据被测试图片确定最有可能获得奖励分值的操作点和测试操作,从而能够确保自动测试软件过程的高效性。

具体的,上述测试神经网络的训练过程可以按照下述步骤执行:

(1)根据当前训练界面的分辨率,将当前训练界面划分为N行*M列的网格,其中,N和M均为大于1的自然数;因为需要多种界面训练测试神经网络,而不同的界面的分辨率可能不同,故可以有针对性的事先根据分辨率划分训练界面,将网格的各个交点确定为可操作点。通过这种方式,能够有效的对不同界面进行相应的测试操作。

(2)对于网格中相交的交点重复下述步骤直至达到预设次数或预设时长:测试神经网络对当前交点执行训练操作,保存执行训练操作后的结果界面,并根据结果界面为当前交点和对应的训练操作设置奖励分值;在训练过程中,测试神经网络会一次选择一个交点作为测试点,并在该点上选择执行一种训练操作,最后根据执行训练操作后的结果界面来设置上述测试行为的奖励分值。例如,如果测试神经网络选择了有效的测试点和测试操作,则给予正向激励(高奖励分值),如果测试神经网络选择了无效的测试点和测试操作,则可以给予负反馈,或者给予零分;通过这种训练方式,可以逐步使测试神经网络在测试过程中优先选择最有可能获得高奖励分值的有效测试点和测试操作。

(3)根据奖励分值的大小从交点和对应的训练操作中选择并保存当前训练界面的测试点和测试点对应的测试操作。奖励分值越高,代表测试点与测试操作为值得鼓励的有效测试,则可以保存该测试点和测试操作,以使得测试神经网络在之后的应用中会直接选择高奖励分值的测试点和测试操作,进而提升了测试的有效性。

(4)重置训练界面,继续训练,直至训练次数或训练时间达到设定阈值。切换不同的训练界面,重复执行上述步骤来对测试神经网络进行训练,以使测试神经网络最终能够较为准确的对不同界面确定出相对应的优选操作点和操作动作。其中,训练次数或训练时间的阈值可以由人工事先设定。当然,训练的次数越多,训练时间越长,采用的测试图片数量和种类越多,测试神经网络的准确性可能就越高,就越有可能在对界面进行测试时尽快确定有效测试点和测试操作,较早的发现缺陷。

为了使测试神经网络在训练过程中能够根据经验来实现自我优化,可以采用逐步抛弃无用的训练操作的方式来实现,基于此,上述测试神经网络的训练过程还包括:

1、在训练过程中,如果交点和对应的训练操作的奖励分值为0的次数大于设定次数阈值,舍弃该交点和对应的训练操作;即测试神经网络在训练过程中,会逐步抛弃一直没有获得奖励的步骤,

2、当在预设时间和/或预设次数中检测到执行连续步骤的训练操作所对应的奖励分值的总和低于设定分数阈值时,舍弃该训练操作。例如,在有限时间或者有限X步中,在多种连续Y步操作(其中Y小于X)的实现过程中,获得奖励相对较小的连续Y步操作也将会被测试神经网络抛弃。

通过上述方式,使得测试神经网络逐步优化改进,从而在有限时间或者有限步骤中获得奖励最大化,进而这种基于人工智能的测试软件方法能够高效的对软件进行测试,并通过较少的测试操作能够尽快的查找出关于软件的相关问题。通过采用多个训练界面(即可以是任一软件的页面截图)对测试神经网络进行多次训练的方式,使测试神经网络能够确定多种图片的有效操作点和操作动作,因而在后续在对被测试软件进行测试时,测试神经网络可以根据软件界面尽快确定出优选操作点和操作动作,提高测试效率和准确度。

但是为了避免过于极端最大化使系统走向同一个结果,系统可以在每批次开始运行的前几步都是随机状态,即不会随着经验来改进,因而本实施例提供的基于人工智能的测试软件的方法,在根据当前显示界面的内容确定测试点和测试点对应的测试操作之前,还包括:在当前显示界面内随机选择测试点并随机执行测试操作,直至执行测试操作的次数达到预设次数。

通过上述在初始测试时采用随机测试的方式,避免了系统最终都走向同一个结果,而可以多方面的对软件进行测试,使得测试结果更客观。

考虑到软件的缺陷类型较多,缺陷等级也不同,并且需要对能够找出缺陷的对应操作点和测试操作进行相应的鼓励,因而为了能够较为公平客观的衡量不同缺陷对应的每个操作点和操作动作,并建立之后对于测试操作的评价依据,可以设置合理的奖励分值,该奖励分值的设置方式的具体步骤参见如下所述:

步骤一,通过预先训练的缺陷比对神经网络将结果界面与预先存储的缺陷标识图片进行比对;

步骤二,根据比对结果生成缺陷测试结果;其中,缺陷测试结果包括结果界面对应的类型、缺陷判定结果以及缺陷等级;结果界面对应的类型例如可以是APP、网页等;缺陷判定结果可以为“是”或“否”;缺陷等级则可以根据缺陷的严重性而实现设定;

步骤三,在预先设置的测试奖励参照表中查找与缺陷测试结果对应的奖励分值;其中,测试奖励参照表可以是人工事先建立的各种类型缺陷以及相对应的奖励分值的检索表。

步骤四,设置结果界面对应的奖励分值为查找到的奖励分值。

通过由缺陷测试结果和测试奖励参照表来确定结果界面对应的奖励分值,从而判定生成该结果界面时的操作点和测试操作是否有效,并且能够客观的衡量缺陷结果,为后续评价被测试软件而提供理论依据。

其中,经过训练后的缺陷比对神经网络能够根据任一图片输出缺陷测试结果,例如,当对某一图片(通常为软件的截图)进行测试时,利用该缺陷比对神经网络,则可生成例如{软件类型:APP;是否缺陷:是;缺陷等级:严重-5}的缺陷测试结果,其中,“结果界面对应的类型”即为软件类型,“是否缺陷”即为上述的缺陷判定结果。应当注意的是,以上仅为示意性说明,不应当被视为限制。

根据上述缺陷测试结果来查找测试奖励参照表中对应的奖励分值,如查找到的缺陷测试结果越严重,对应的奖励分值越高,如没有查找到缺陷,则对应的奖励分值为0,从而对查找到缺陷的操作点和测试操作进行高分鼓励。

为了能够较为公平客观的衡量每个操作点和操作动作的有效性,并建立之后对于测试操作的评价依据,可以设置合理的奖励分值,上述奖励分值的设置方式在步骤三执行之后(即在预先设置的测试奖励参照表中查找与缺陷测试结果对应的奖励分值之后),还可以包括如下步骤:

(1)比对结果界面和出现结果界面的上一个界面的差异大小;

(2)根据差异大小和测试奖励参照表对结果界面的奖励分值追加额外分值。

上述步骤即为鼓励有效操作,在操作点执行测试操作后,如果结果界面与之前的界面相比发生了差异性变化(前后界面不一致或者相似度低于阈值),即认为是有效操作,而与结果界面是否为缺陷界面无关。通过这种追加额外分值的方式,可以鼓励有效操作。

为了使本实施例所提供的基于人工智能的测试软件的方法更加准确,如图2所示的另一种基于人工智能的测试软件的方法的流程图,该方法包括如下步骤:

步骤S202-步骤S212:同上述步骤S102-步骤S112,这里不再赘述。

步骤S214,获取目标对象的用户反馈信息;该用户反馈信息中包含了被测试软件的缺陷记录。

步骤S216,根据用户反馈信息和测试结果,调整测试奖励参照表对应表项的奖励分值。其中,测试奖励参照表中详细记录有测试结果、生成该测试结果对应的测试操作以及奖励分值之间的关系与索引。

通过将记录有被测试软件缺陷的用户反馈信息和测试软件后生成的测试结果进行比对,可以反向的调整测试奖励参照表,使本实施例的基于人工智能的测试软件的方法更为精确。

综上所述,本实施例所提供的基于人工智能的测试软件的方法,通过对软件界面确定操作点和测试操作,并根据奖励分值生成测试结果的方式,从而可以对多种软件进行测试;上述基于对界面的测试方式无需受到软件的类型和版本的限制,其应用范围更为广泛,从而可以对多种软件进行测试,从而打破了传统的软件测试的局限性;此外,根据奖励分值生成测试结果的方式,还可以简单可靠的对该测试过程进行评判,提升了测试的有效性。

实施例2

对应于上述实施例提供的方法,本发明实施例还提供了一种基于人工智能的测试软件的装置,参见图3,该装置包括以下模块:

界面获取模块32,用于获取目标对象的当前显示界面;该目标对象即为被测试的软件,被测试的软件的类型可以包括APP、网页等;当前显示界面可以通过对被测试软件的界面进行截图得到。

操作确定模块34,用于根据当前显示界面的内容确定操作点和该操作点对应的测试操作,该测试操作包括点击操作、输入操作、拖动操作或缩放操作;该模块可以根据显示界面来选择操作点和在该操作点上执行的测试操作,不同的界面相对应的优选操作点和测试操作可能不同。应当注意的是,上述所列的测试操作仅为示意,不应当被视为限制,所有可能执行的合法操作动作均可以包括在内。

操作执行模块36,用于对确定的每个操作点执行对应的测试操作,并保存每次执行测试操作后的结果界面;不同的测试操作可能会生成不同的结果界面。例如当测试操作无效时,则结果界面保持不变;当测试操作有效时,结果界面则与原有界面发生差异性变化。

分值设置模块38,用于根据结果界面设置出现结果界面对应的操作点和测试操作的奖励分值;不同的操作点和测试操作对于软件测试的贡献度不同,因而可以通过奖励分值来客观的衡量测试操作的贡献度。在此处,能够找到缺陷的测试操作对应的贡献度高,有助于软件测试,而无效操作对应的贡献度则较低。

分值累积模块40,用于累积所有操作点和测试操作对应的奖励分值,将累积后得到的奖励分值作为当前显示界面的奖励分值;在被测试软件的当前界面上可能会依次进行多点测试,也可能执行不同的测试操作,最后对该界面的所有测试结果进行累加,从而确定该界面经过测试后对应的奖励分值。

界面切换与触发模块42,用于切换至下一个显示界面,触发界面获取模块32、操作确定模块34、操作执行模块36、分值设置模块38和分值累积模块40继续获取下一个显示界面的奖励分值,直至得到目标对象对应的所有显示界面的奖励分值;

测试结果生成模块44,用于根据所有显示界面的奖励分值生成目标对象的测试结果。测试结果的生成方式可以根据事先自行设置,例如可以通过总的奖励分值进行整体分析,也可以通过单一界面的分散奖励分值进行有针对性的分析,尤其需要体现高奖励分值对应的界面和在该界面上的操作点执行的测试操作,从而使被测试软件的测试结果更为准确的反映真实情况。

本实施例的上述装置中,通过在目标对象(即,被测试的软件)的界面上确定操作点和测试操作,并根据在操作点执行测试操作后的结果界面设置对应的奖励分值,将所有操作点和测试操作对应的奖励分值累积而得到当前界面的奖励分值;切换界面重复上述过程,直至得到目标对象对应的所有界面的奖励分值,最后根据该总的奖励分值生成目标对象的测试结果。该装置能够将任意软件的测试过程转换为其显示界面的测试过程,并且对于每个界面,可以根据其显示的内容确定出合理的操作点和该操作点对应的测试操作,因此上述方法及装置不再局限于某类软件,其应用范围更为广泛,从而可以对多种软件进行测试,打破了传统的软件测试的局限性。并且根据奖励分值生成测试结果的方式,还可以简单可靠的对该测试过程进行评判,提升了测试的有效性。

考虑到不同界面上的有效操作点和有效测试操作不同,为了能够对被测软件进行高效测试,需要确定待测试界面上的有效测试点和有效测试操作,因而操作确定模块34包括操作确定单元,用于根据预先训练的测试神经网络确定当前显示界面的测试点和测试点对应的测试操作,其中,测试神经网络经过训练后,可以根据被测界面而确定优选测试点和在该测试点上执行的优选测试操作。

具体的,上述测试神经网络的训练过程可以按照下述步骤执行:

(1)根据当前训练界面的分辨率,将当前训练界面划分为N行*M列的网格,其中,N和M均为大于1的自然数;

(2)对于网格中相交的交点重复下述步骤直至达到预设次数或预设时长:测试神经网络对当前交点执行训练操作,保存执行训练操作后的结果界面,并根据结果界面为当前交点和对应的训练操作设置奖励分值;

(3)根据奖励分值的大小从交点和对应的训练操作中选择并保存当前训练界面的测试点和测试点对应的测试操作;

(4)重置训练界面,继续训练,直至训练次数或训练时间达到设定阈值。

上述步骤的具体释义可以参照前述方法实施例的对应内容,在此不再赘述。

通过采用多个训练界面(即可以是任一软件的页面截图)对测试神经网络进行多次训练的方式,使测试神经网络能够确定多种图片的有效操作点和操作动作,因而在后续在对被测试软件进行测试时,测试神经网络可以根据软件界面尽快确定出优选操作点和操作动作,提高测试效率和准确度。

考虑到软件的缺陷类型较多,缺陷等级也不同,并且需要对能够找出缺陷的对应操作点和测试操作进行相应的鼓励,因而为了能够较为公平客观的衡量不同缺陷对应的每个操作点和操作动作,并建立之后对于测试操作的评价依据,可以设置合理的奖励分值,因而上述分值设置模块38包括:

缺陷比对单元,用于通过预先训练的缺陷比对神经网络将结果界面与预先存储的缺陷标识图片进行比对;其中,经过训练后的缺陷比对神经网络能够根据任一图片输出缺陷测试结果,

结果生成单元,用于根据比对结果生成缺陷测试结果;其中,缺陷测试结果包括结果界面对应的类型、缺陷判定结果以及缺陷等级;结果界面对应的类型例如可以是APP、网页等;缺陷判定结果可以为“是”或“否”;缺陷等级则可以根据缺陷的严重性而实现设定;

分值查找单元,用于在预先设置的测试奖励参照表中查找与缺陷测试结果对应的奖励分值;其中,测试奖励参照表可以是人工事先建立的各种类型缺陷以及相对应的奖励分值的检索表。

分值设置单元,用于设置结果界面对应的奖励分值为查找到的奖励分值。

通过由缺陷测试结果和测试奖励参照表来确定结果界面对应的奖励分值,从而判定生成该结果界面时的操作点和测试操作是否有效,并且能够客观的衡量缺陷结果,为后续评价被测试软件而提供理论依据。

为了能够较为公平客观的衡量每个操作点和操作动作的有效性,并建立之后对于测试操作的评价依据,可以设置合理的奖励分值,分值设置模块38还包括:

差异比对单元,用于比对结果界面和出现结果界面的上一个界面的差异大小;

分值追加单元,用于根据差异大小和测试奖励参照表对分值设置单元设置结果界面后的奖励分值追加额外分值。

上述单元即为鼓励有效操作,在操作点执行测试操作后,如果结果界面与之前的界面相比发生了差异性变化(前后界面不一致或者相似度低于阈值),即认为是有效操作,而与结果界面是否为缺陷界面无关。通过这种追加额外分值的方式,可以鼓励有效操作。

为了使本实施例所提供的基于人工智能的测试软件的装置更加准确,如图4所示,该装置在上述图3对应的结构框图的基础上,还包括如下模块:

反馈信息获取模块46,用于获取目标对象的用户反馈信息;

分值调整模块48,用于根据用户反馈信息和测试结果,调整分值查找单元查找的测试奖励参照表中对应表项的奖励分值。

通过将记录有被测试软件缺陷的用户反馈信息和测试软件后生成的测试结果进行比对,可以反向的调整测试奖励参照表,使本实施例的基于人工智能的测试软件的装置更为精确。

具体的,本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例1相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

综上所述,本实施例所提供的基于人工智能的测试软件的装置,通过对软件界面确定操作点和测试操作,并根据奖励分值生成测试结果的方式,从而可以对多种软件进行测试;上述基于对界面的测试方式无需受到软件的类型和版本的限制,其应用范围更为广泛,从而可以对多种软件进行测试,从而打破了传统的软件测试的局限性;此外,根据奖励分值生成测试结果的方式,还可以简单可靠的对该测试过程进行评判,提升了测试的有效性。

实施例3

本实施例提供了一种应用前述实施例所提供的基于人工智能的测试软件的方法及装置的具体操作方式。应当注意的是,以下仅为基于上述基于人工智能的测试软件的方法及装置的一种实现方式,并不应当被视为限制,具体应用中可以根据实际情况采用不同的实现方式。其中,采用神经网络进行测试则为本实施例中基于人工智能的最典型表现形式。

初始准备:

(一)根据海量含有图片的标签数据训练缺陷比对神经网络,以使该神经网络能够判断缺陷。

其中,一个典型数据应该如下:有一个普通软件截图(无论是网页,Windows软件,或者APP软件的截图),该截图上弹出了一个提示框提示用户“软件遇到了问题,请联系管理员解决。”则可以标示该图的信息为:{软件类型:APP,是否缺陷:是,缺陷等级:严重-5}。

当缺陷比对神经网络训练完成以后,给出任何一个图片,该神经网络就能给出与图片相对应的结果,例如:{软件类型:Windows,是否缺陷:否,缺陷等级:无}。

(二)建立测试奖励参照表,该表中包含有各种操作结果、操作结果对应的测试操作与奖励数值的对应关系。以操作结果和奖励数值的关系为例:“错误(error)-10分”“宕机-100分”等。缺陷的等级越严重,与得到该缺陷的测试操作对应的分值就越高。

(三)根据多类型的大量图片训练测试神经网络,以使该神经网络能够根据图片内容确定优选的操作点和测试操作。

具体如下:

第一步:初始化测试神经网络,设定相应的参数。

第二步:系统打开任何一个软件的首页,对当前页面截图,根据图片分辨率,将该图片分成N行*M列的网格,每一个网格的交叉点对应一个操作点,每个操作点会对应有针对该软件的所有合法操作,包括点击,输入,拖动,拖曳等操作。系统将当前图片输入测试神经网络,该测试神经网络选择一个操作点并选择一个操作方法(如:点击),操作完成以后,获得当前屏幕截图。

第三步:将当前屏幕截图输入之前训练的缺陷比对神经网络,获得输出结果。如果结果为:是缺陷,则将当前给予第二步的操作行为进行奖励。如果操作后屏幕截图跟操作前屏幕截图不一致或者相似度低于一定阀值,则对第二步的操作行为追加奖励。

第四步:将以上屏幕截图和对应奖励值记录至指定内存,并对测试神经网络继续进行训练。

第五步:如果操作步骤数多于一定值,或者操作时间超过一定值,则表明一次训练场景结束,重置系统环境,并重复上述第二步到第四步。

第六步,重复上述第二步到第五步,如果训练场景数多于一定值,则对该测试神经网络训练结束,将训练结果记录在一个文件当中。将该文件作为测试文件。

完成初始准备后,即可以利用上述测试文件对任一软件进行测试。

对软件的测试步骤可参见如下:

1、打开任一软件的界面,采用已准备好的测试文件对任一软件进行测试

2、通过测试文件中的测试神经网络确定软件当前界面的优选操作点和测试操作,并在该操作点上执行测试操作,得到操作后的结果(即可以是屏幕截图);

3、根据上述操作结果查询测试奖励参照表,得到该操作结果的测试操作所对应的奖励数值;

4、重复上述步骤,直至获得该软件的各个被测试界面中所执行的必要测试操作的操作结果与奖励数值。

5、将上述各奖励数值进行求和,并基于所得到的和值评价待测试软件的测试指标。

在此之后,当被测试软件自身携带有缺陷声明时,还可以包括以下步骤:

6、获取客户所反馈的关于软件的BUG(缺陷)声明;

7、基于所评价的测试指标和所获取的BUG声明,调整测试奖励参照表中的各操作结果所对应的奖励数值。

通过调整与修正,进一步确保该基于人工智能的测试软件的方法更准确,从而使得后续的测试结果更加精确。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的基于人工智能的测试软件的具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。

本发明实施例所提供的基于人工智能的测试软件的方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1