CN110968502B - 基于mfac算法进行遍历测试的系统及方法 - Google Patents

基于mfac算法进行遍历测试的系统及方法 Download PDF

Info

Publication number
CN110968502B
CN110968502B CN201910985004.2A CN201910985004A CN110968502B CN 110968502 B CN110968502 B CN 110968502B CN 201910985004 A CN201910985004 A CN 201910985004A CN 110968502 B CN110968502 B CN 110968502B
Authority
CN
China
Prior art keywords
control
tested
coordinate information
traversal
collapse
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.)
Active
Application number
CN201910985004.2A
Other languages
English (en)
Other versions
CN110968502A (zh
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.)
Xiamen Meishao Co ltd
Original Assignee
Xiamen Meishao 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 Xiamen Meishao Co ltd filed Critical Xiamen Meishao Co ltd
Priority to CN201910985004.2A priority Critical patent/CN110968502B/zh
Publication of CN110968502A publication Critical patent/CN110968502A/zh
Application granted granted Critical
Publication of CN110968502B publication Critical patent/CN110968502B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本发明公开了基于MFAC算法进行遍历测试的系统及方法。涉及软件测试领域,其中,系统包括:用于触发待测控件列表中待测控件,以完成待测控件列表遍历测试的遍历测试触发模块、用于采集经过遍历测试触发模块触发后,当前待测控件列表中待测控件坐标信息的数据采集模块、用于根据MFAC算法预测崩溃空间坐标的预测控制模块和用于输出下一时刻待测控件至遍历测试触发模块进行触发控件的输出模块。实现在每一时刻通过MFAC算法预测能够触发崩溃的控件作为下一时刻的待测控件,形成发现崩溃数最多的遍历路径,避免了人工规划遍历路径导致的测试效率低而测试维护成本高的问题,提高了遍历测试效率以及控件的优化效果。

Description

基于MFAC算法进行遍历测试的系统及方法
技术领域
本发明涉及软件测试领域,尤其是一种基于MFAC算法进行遍历测试的系统及方法。
背景技术
在自动化测试领域中,遍历测试现已普遍应用于各类测试之中,并且发挥着重要的作用。遍历测试应当尽可能的去发现被测应用或控件运行过程中出现的Crash(崩溃),最大程度发挥其作用。在遍历测试过程中,遍历测试的路径对测试结果影响较大,如果测试路径覆盖度高且选择合理,则能够触发待测控件的更多崩溃情况,对崩溃情况进行修复的过程即优化控件的过程,因此选择合理的遍历测试路径,以尽可能多触发崩溃情况在遍历测试过程中非常重要。但是由于很多控件测试时,需要人工去选择待测控件的测试顺序以适配测试路径和参数,导致测试效率较低而测试维护成本非常高。因此通过控制算法预测遍历过程中每一时刻能够触发崩溃的控件,并根据预测结果生成遍历测试路径进行遍历测试是很有必要的。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的目的是提供一种根据MFAC算法预测遍历过程中每一时刻能够触发崩溃的控件,并根据预测结果进行遍历测试的系统及方法。
本发明实施例所采用的技术方案是:
第一方面,本发明实施例提供一种基于MFAC算法进行遍历测试的系统,包括:
遍历测试触发模块:用于触发待测控件列表中待测控件,以完成所述待测控件列表的遍历测试;
数据采集模块:用于采集经过所述遍历测试触发模块触发后,当前待测控件列表中待测控件坐标信息,所述待测控件坐标信息为待测控件的中心坐标;
预测控制模块:用于接收所述待测控件坐标信息并MFAC算法预测新增控件崩溃数、崩溃坐标信息以及下一时刻待测控件;
控件输出模块:用于将下一时刻待测控件发送至所述遍历测试触发模块进行触发,所述下一时刻待测控件为所述崩溃坐标信息对应的待测控件列表中待测控件。
进一步地,所述MFAC算法为无模型自适应控制算法,根据MFAC算法预测的具体预测过程为:
根据所述遍历测试触发模块的触发顺序,采集被触发的待测控件坐标信息;
利用所述MFAC算法,根据所述被触发的待测控件坐标信息,预测新增控件崩溃数和崩溃坐标信息;
选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息,并以崩溃坐标信息对应的待测控件作为下一时刻待测控件。
进一步地,所述预设崩溃次数为1。
进一步地,根据所述遍历测试触发模块的触发待测控件列表中待测控件顺序生成遍历路径。
进一步地,还包括:数据采集模块在每一时刻获取当前控件崩溃数,用于遍历测试过程中崩溃数量统计。
第二方面,本发明实施例还提供一种基于MFAC算法进行遍历测试的方法,应用于如第一方面任一项所述的一种基于MFAC算法进行遍历测试的系统,包括:
触发待测控件列表中待测控件;
采集经过触发之后,当前待测控件列表中待测控件坐标信息;
接收所述待测控件坐标信息并根据MFAC算法预测下一时刻新增控件崩溃数和崩溃坐标信息;
根据所述崩溃坐标信息触发下一时刻待测控件,以完成遍历测试。
进一步地,根据MFAC算法预测的具体预测过程为:
根据触发顺序,采集被触发的待测控件坐标信息;
利用所述MFAC算法,根据所述被触发的待测控件坐标信息,预测新增控件崩溃数和崩溃坐标信息;
选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息作为下一时刻待测控件的控件坐标信息。
进一步地,所述预设崩溃次数为1。
第三方面,本发明实施例提供一种基于MFAC算法进行遍历测试的设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如第二方面任一项所述的方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第二方面任一项所述的方法。
本发明实施例的有益效果是:
本发明实施例的一种基于MFAC算法进行遍历测试的系统,包括:用于触发待测控件列表中待测控件,以完成待测控件列表遍历测试的遍历测试触发模块、用于采集经过遍历测试触发模块触发后,当前待测控件列表中待测控件坐标信息的数据采集模块、用于根据MFAC算法预测下一时刻新增控件崩溃数和崩溃空间坐标的预测控制模块和用于输出下一时刻待测控件至遍历测试触发模块进行触发控件的输出模块。形成闭环遍历测试系统,实现在每一时刻通过MFAC算法预测能够触发崩溃的控件作为下一时刻的待测控件,形成发现崩溃数最多的遍历路径,避免了人工规划遍历路径导致的测试效率低而测试维护成本高的问题,提高了遍历测试效率以及控件的优化效果。可广泛应用于软件遍历测试领域。
附图说明
图1是本发明中基于MFAC算法进行遍历测试系统的一具体实施例的结构框图;
图2是本发明中基于MFAC算法进行遍历测试方法的一具体实施例的实现流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一:
本发明实施例一提供一种基于MFAC算法进行遍历测试的系统,MFAC(Model FreeAdaptive Control)算法为无模型自适应控制算法,图1为本发明实施例提供的一种基于MFAC算法进行遍历测试的系统的结构框图,如图1所示,该系统包括以下几个模块:
遍历测试触发模块10:用于触发待测控件列表中待测控件,待测控件列表中包括本次遍历测试需要测试的所有控件,该模块用于根据测试需要点击触发对应的待测控件,以完成待测控件列表的遍历测试。
数据采集模块20:用于采集经过遍历测试触发模块10触发后,当前待测控件列表中待测控件坐标信息,因为经过点击触发控件之后,会引起界面变化,例如页面的跳转、缩放等,此时待测控件列表中待测控件状态和数量会随之发生变化,因此需要获取待测控件坐标信息,本实施例中,待测控件坐标信息为待测控件的中心坐标。
预测控制模块30:用于接收待测控件坐标信息,并根据MFAC算法预测下一时刻新增控件崩溃数和崩溃坐标信息。
本实施例中,根据MFAC算法预测的具体预测过程为:
根据遍历测试触发模块的触发顺序,采集当前时刻之前所有被触发的待测控件坐标信息;
利用MFAC算法,根据被触发的待测控件坐标信息,预测新增控件崩溃数和发生崩溃的控件坐标信息;
选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息作为下一时刻待测控件的控件坐标信息,预设崩溃次数可选的为1次。
控件输出模块40:用于将下一时刻待测控件发送至遍历测试触发模块进行触发,其中,下一时刻待测控件为崩溃坐标信息对应的待测控件。
上述图1中各个模块形成一个闭环系统,从遍历测试触发模块触发待测控件进行响应,到数据采集模块采集待测控件坐标信息,然后预测控制模块根据MFAC算法进行预测并输出预测结果(即下一时刻待测控件的控件坐标信息)到控件输出模块,最后控件输出模块将预测结果反馈给遍历测试触发模块,形成闭环,同时,根据遍历测试触发模块的触发顺序生成遍历路径,循环多次完成遍历测试,另外,数据采集模块可选的在每一时刻或者按照其他预设获取策略获取当前控件崩溃数,用于整个遍历测试过程中崩溃数量统计。
其中MFAC算法具体表示为:
Figure BDA0002236423430000051
上式中,
Figure BDA0002236423430000052
表示伪偏导函数估计值,η、ρ表示步长序列,ε表示一个充分小的正数,λ、u表示权重因子(可根据实际情况调整),
Figure BDA0002236423430000053
表示的
Figure BDA0002236423430000054
初值,y*(k+1)表示系统在第k时刻的崩溃次数预测值(可选的,其值恒为1次),y(k)表示新增控件崩溃数。可以看出MFAC算法仅利用输入输出数据参与计算即可,无需建立受控系统的模型。
下面以一具体实例说明本实施例的流程,但是要注意的是,以下描述仅作示意,便于理解本实施例的系统工作流程,并不做限定。
将遍历测试触发模块触发待测控件的时刻记为时刻k,下一时刻记为时刻k+1...依次类推;
将控件坐标信息(即控件的中心坐标)记为u=(p,q);
将新增控件崩溃数(即当前系统记录中发现新增控件崩溃数)记为y。
本实施例可概括性描述为:采集当前系统的控件坐标信息(作为系统输入信号),通过MFAC控制算法计算并预测下一时刻应当选择哪一个待测控件进行触发响应才能达到新增控件崩溃数为1的条件。
假设k-1时刻:
控件坐标信息表示为:u(k-1)=(20,300);
新增控件崩溃数表示为:y(k)=0;
k时刻:
理想的情况是,在点击某个待测控件u(k)之后,新增控件崩溃数y(k+1)达到预设崩溃次数(即1),这样就能尽可能的发现Bug,则将问题概括为:要使新增控件崩溃数y*(k+1)=1,则控件信息u(k)是多少?
为了达到该目的,根据遍历测试触发模块的触发顺序,采集所有被触发的待测控件坐标信息,即时刻0,1,2,…,k时刻的历史数据,通过使用MFAC控制算法实时构建新增控件崩溃数y和控件坐标信息u的关系。
其中,y*(k+1)即预设崩溃次数恒为1,通过不断迭代,计算出k时刻的控件信息u(k)。假设k时刻,预测出点击待测控件A后新增控件崩溃数为1,则下一时刻点击待测控件A,当待测控件A被点击后的k+1时刻,触发响应会引发界面的变化,此时重新获取当前待测控件列表中待测控件坐标信息,继续根据MFAC算法做预测,比如下一时刻预测出待测控件B的新增控件崩溃数为1,则对待测控件B进行触发响应,触发后进入到k+2时刻...,按以上流程循环,即可得到能够发现崩溃数量(等同于bug数量)最多的遍历路径。
假设通过MFAC控制算法计算后得到预测结果是:u(k)=(30,100),则将此控件坐标信息位置对应的待测控件作为下一时刻待测控件,并通过控件输出模块发送给遍历测试触发模块进行触发响应,遍历路径即为遍历测试触发模块的触发顺序。
本实施例实现了在每一时刻通过MFAC算法预测能够触发崩溃的控件作为下一时刻的待测控件,形成发现崩溃数最多的遍历路径,避免了人工规划遍历路径导致的测试效率低而测试维护成本高的问题,提高了遍历测试效率以及控件的优化效果。可广泛应用于软件遍历测试领域。
实施例二:
如图2所示,为本实施例的一种基于MFAC算法进行遍历测试的方法实现流程图,该方法应用于如实施例一所示的系统,包括以下几个步骤:
S1:触发待测控件列表中待测控件。
S2:采集经过触发之后,当前待测控件列表中待测控件坐标信息。
S3:接收待测控件坐标信息并根据MFAC算法预测下一时刻新增控件崩溃数和崩溃坐标信息,其中,待测控件坐标信息为待测控件的中心坐标。
S4:根据崩溃坐标信息触发下一时刻待测控件,以完成待测控件列表中所有待测控件的遍历测试。
其中,根据MFAC算法预测下一时刻待测控件的具体预测过程为:
S31:根据待测控件列表中待测控件的触发顺序,采集被触发的待测控件坐标信息。
S32:利用MFAC算法,根据被触发的待测控件坐标信息,预测新增控件崩溃数和崩溃坐标信息,具体的MFAC算法如实施例一所述,在此不做赘述。
S33:选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息作为下一时刻待测控件的控件坐标信息,其中,预设崩溃次数可选的为1。
本实施例描述了通过MFAC算法预测遍历过程中每一时刻能够触发崩溃的控件,并根据预测结果生成遍历测试路径进行遍历测试的实现过程。
另外,本发明还提供一种基于MFAC算法进行遍历测试的设备,包括:
至少一个处理器,以及与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如实施例一所述的方法。
另外,本发明还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,其中计算机可执行指令用于使计算机执行如实施例一所述的方法。
以上各实施例仅用以说明本发明的技术方案,而非对其限制,尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (8)

1.一种基于MFAC算法进行遍历测试的系统,其特征在于,包括:
遍历测试触发模块:用于触发待测控件列表中待测控件,以完成所述待测控件列表的遍历测试;
数据采集模块:用于采集经过所述遍历测试触发模块触发后,当前待测控件列表中待测控件坐标信息,所述待测控件坐标信息为待测控件的中心坐标;
预测控制模块:用于接收所述待测控件坐标信息并MFAC算法预测新增控件崩溃数、崩溃坐标信息以及下一时刻待测控件;
控件输出模块:用于将下一时刻待测控件发送至所述遍历测试触发模块进行触发,所述下一时刻待测控件为所述崩溃坐标信息对应的待测控件列表中待测控件;
所述MFAC算法为无模型自适应控制算法,根据MFAC算法预测的具体预测过程为:
根据所述遍历测试触发模块的触发顺序,采集被触发的待测控件坐标信息;
利用所述MFAC算法,根据所述被触发的待测控件坐标信息,预测新增控件崩溃数和崩溃坐标信息;
选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息,并以崩溃坐标信息对应的待测控件作为下一时刻待测控件。
2.根据权利要求1所述的一种基于MFAC算法进行遍历测试的系统,其特征在于,所述预设崩溃次数为1。
3.根据权利要求1至2任一项所述的一种基于MFAC算法进行遍历测试的系统,其特征在于,根据所述遍历测试触发模块的触发待测控件列表中待测控件顺序生成遍历路径。
4.根据权利要求3所述的一种基于MFAC算法进行遍历测试的系统,其特征在于,还包括:数据采集模块获取当前控件崩溃数,用于遍历测试过程中崩溃数量统计。
5.一种基于MFAC算法进行遍历测试的方法,其特征在于,包括:
触发待测控件列表中待测控件;
采集经过触发之后,当前待测控件列表中待测控件坐标信息;
接收所述待测控件坐标信息并根据MFAC算法预测下一时刻新增控件崩溃数和崩溃坐标信息;
根据所述崩溃坐标信息触发下一时刻待测控件,以完成遍历测试;
根据MFAC算法预测的具体预测过程为:
根据触发顺序,采集被触发的待测控件坐标信息;
利用所述MFAC算法,根据所述被触发的待测控件坐标信息,预测新增控件崩溃数和崩溃坐标信息;
选择使新增控件崩溃数达到预设崩溃次数的崩溃坐标信息作为下一时刻待测控件的控件坐标信息。
6.根据权利要求5所述的一种基于MFAC算法进行遍历测试的方法,其特征在于,所述预设崩溃次数为1。
7.一种基于MFAC算法进行遍历测试的设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如权利要求5至6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求5至6任一项所述的方法。
CN201910985004.2A 2019-10-16 2019-10-16 基于mfac算法进行遍历测试的系统及方法 Active CN110968502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910985004.2A CN110968502B (zh) 2019-10-16 2019-10-16 基于mfac算法进行遍历测试的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910985004.2A CN110968502B (zh) 2019-10-16 2019-10-16 基于mfac算法进行遍历测试的系统及方法

Publications (2)

Publication Number Publication Date
CN110968502A CN110968502A (zh) 2020-04-07
CN110968502B true CN110968502B (zh) 2022-05-31

Family

ID=70029902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910985004.2A Active CN110968502B (zh) 2019-10-16 2019-10-16 基于mfac算法进行遍历测试的系统及方法

Country Status (1)

Country Link
CN (1) CN110968502B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550101A (zh) * 2015-12-02 2016-05-04 北京奇虎科技有限公司 一种用于应用程序的测试方法、电子设备及系统
CN108595330A (zh) * 2018-04-23 2018-09-28 北京潘达互娱科技有限公司 一种应用测试方法及装置
CN109814386A (zh) * 2019-01-24 2019-05-28 天津大学 基于无模型外环补偿的机器人轨迹跟踪自抗扰控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577457B2 (en) * 2011-07-07 2013-11-05 Medtronics, Inc. Isolating lead body for fault detection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550101A (zh) * 2015-12-02 2016-05-04 北京奇虎科技有限公司 一种用于应用程序的测试方法、电子设备及系统
CN108595330A (zh) * 2018-04-23 2018-09-28 北京潘达互娱科技有限公司 一种应用测试方法及装置
CN109814386A (zh) * 2019-01-24 2019-05-28 天津大学 基于无模型外环补偿的机器人轨迹跟踪自抗扰控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Approach for Search Based Testing of Null Pointer Exceptions;Daniele Romano;《IEEE 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation》;20110519;第160-169页 *
使用并查集解决遍历所有点求最短路径问题——路径压缩;newbee_D;《CSDN博客 https://blog.csdn.net/weixin_43353645/article/details/89437010 》;20190421;第1-6页 *

Also Published As

Publication number Publication date
CN110968502A (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
US11797882B2 (en) Prognostic-surveillance technique that dynamically adapts to evolving characteristics of a monitored asset
US20150278706A1 (en) Method, Predictive Analytics System, and Computer Program Product for Performing Online and Offline Learning
CN109143094B (zh) 一种动力电池的异常数据检测方法和装置
EP3671374A1 (en) Method and system for determining system settings for an industrial system
US8660979B2 (en) Event prediction
US20130191104A1 (en) System, method and computer program product for modeling electronic circuits
JP6718500B2 (ja) 生産システムにおける出力効率の最適化
US20200409823A1 (en) Method and apparatus for optimal distribution of test cases among different testing platforms
JP2019109580A (ja) 産業用制御システムとその支援装置、制御支援方法およびプログラム
US10635078B2 (en) Simulation system, simulation method, and simulation program
CN114647525A (zh) 诊断方法、装置、终端及存储介质
AT511272A1 (de) Kopplungsmethodik für nicht-iterative co-simulation
CN109714201B (zh) 网络系统可靠性评估方法、装置、计算机设备和存储介质
US20230238801A1 (en) Dynamic hosting capacity analysis framework for distribution system planning
CN115427968A (zh) 边缘计算设备中的鲁棒人工智能推理
US11151475B2 (en) Method and device for generating a machine learning system and virtual sensor device
US6947870B2 (en) Neural network model for electric submersible pump system
US20230066703A1 (en) Method for estimating structural vibration in real time
CN104679858A (zh) 一种查询数据的方法和装置
EP3734460B1 (en) Probabilistic software testing via dynamic graphs
Song et al. Novel application of deep learning for adaptive testing based on long short-term memory
CN110968502B (zh) 基于mfac算法进行遍历测试的系统及方法
EP3364256A1 (en) Heat recovery steam generator adaptive control
CN111581101A (zh) 软件模型的测试方法、装置、设备和介质
CN112084117B (zh) 一种测试方法和装置

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
GR01 Patent grant
GR01 Patent grant