CN105677570B - 一种基于事件响应函数树的gui软件测试用例生成方法 - Google Patents
一种基于事件响应函数树的gui软件测试用例生成方法 Download PDFInfo
- Publication number
- CN105677570B CN105677570B CN201610016760.0A CN201610016760A CN105677570B CN 105677570 B CN105677570 B CN 105677570B CN 201610016760 A CN201610016760 A CN 201610016760A CN 105677570 B CN105677570 B CN 105677570B
- Authority
- CN
- China
- Prior art keywords
- function
- event response
- event
- response function
- test case
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于事件响应函数树模型的GUI软件测试用例生成方法,包括:分析GUI软件的函数调用关系,并构造其函数调用图;根据所构造的软件函数调用图提取所有的事件响应函数,并录制事件响应函数相应的操作,生成脚本文件;通过函数调用图,分析出各个事件响应函数之间的主从关系,从而构造事件响应函数树;遍历步骤3所生成的事件响应函数树,找出所有从根节点出发到叶子结点截止的路径,根据这些路径,按照事件响应函数的先后顺序,依次组合所录制的相应操作脚本,最终组成测试用例。该方法构造了事件响应函数树,可以自动分析事件之间的可达关系,进而生成有效的测试用例。
Description
技术领域
本发明涉及一种GUI软件测试用例生成方法,特别是一种基于事件响应函数树模型的GUI软件测试用例生成方法。该方法属于软件测试技术领域。
背景技术
图形用户界面(Graphical User Interface,GUI)的使用在当今的软件***中变得越来越普遍,通常,在一个软件***中,GUI部分占据一半以上的代码,因此软件***GUI部分的正确性是确保整个***操作正确的关键。为了确保软件GUI部分的正确性,一个较为常见的方式就是GUI测试。GUI软件测试用例的获取一般都是很耗费资源的,涉及到大量的人力参与。尽管一些研究者提出了一些GUI测试用例自动生成方法,但是由于各种原因,在现实中测试用例的生成使用的依旧是录制/回放工具。在使用这些工具时,首先测试人员与待测软件进行交互,然后工具的录制模块会把用户的这些交互记录下来并保存到脚本文件中,最后工具的回放模块能够在无人干涉的情况下运行这些脚本文件。一般情况下,使用这些录制回放工具录制一个具有50个事件的测试用例就需要花费20-30分钟,由于花费的时间比较多,测试人员一般只会为一个应用软件生成100-300个测试用例,因此每一个测试用例都是十分宝贵的。同时,由于后期界面的变动,还会导致测试用例失效,需要进行修复,有时候修复一个测试用例反而比重新录制这个测试用例花费更多的时间。
近年来,GUI测试用例的生成受到了许多学者的关注,并提出了各种方法,其中最为出名的是国外的研究者Atif Memon及其团队,他们提出了一种事件流图(Event FlowGraph,EFG)模型,在EFG中,事件代表节点,事件之间的可达关系代表边。从节点nx到节点ny的边,表示节点ny所代表的事件可以在节点nx所代表的事件执行之后立即执行。
如图1所示,是一个微软记事本软件,其中E1~E8表示了一些可以进行的一些操作,比如E1代表单击“文件”菜单,E8表示单击“取消”按钮。图2表示了由这些事件所组成的EFG,图中节点表示各个事件,边代表事件之间的先后关系。当然这里为了显示方便,只选取了其中标出的8个事件,事实上,一个完整的EFG应该包括GUI软件中所有的事件。在这个局部EFG中,事件E8(点击“取消”按钮)可以在事件E7(点击“查找下一个(F)”按钮)执行之后立即执行,事件E2(点击“新建”菜单)、事件E4(点击“换行”菜单)等可以在它自己之后立即执行,但是事件E7(点击“查找下一个(F)”按钮)不能在事件E8(点击“取消”按钮)执行之后立即执行,因为事件E8会关闭查找对话框,使“查找下一个(F)”按钮对用户不可见。
最后,通过图论的方法,遍历EFG图即可生成相应的测试用例,根据其所覆盖的事件个数可以将其分为2-way(覆盖2个事件),3-way…multi-way的测试用例。基于这种模型,Memon团队开发了一套名叫“GUITAR”的工具套件,专门用于GUI测试用例的生成。
但是这种方法也存在很大的不足,一方面由于EFG模型的复杂性,随着测试用例所覆盖的事件个数的增长,测试用例的规模将呈指数增长,生成2-way,3-way的测试用例规模已很庞大,生成multi-way甚至4-way的测试用例都将变得不可能;另一方面EFG模型属于一种黑盒模型,没有结合源代码所能提供的信息,进行测试用例的精简比较困难。
发明内容
为了弥补上述模型的不足,本发明提出了一种事件响应函数树的模型,这一模型属于EFG模型的子集,一方面简化了EFG模型,另一方面结合了源码信息,为测试用例的精简提供了帮助。
根据本发明的一个方面,提供了一种基于事件响应函数树模型的GUI软件测试用例生成方法,以克服现有方法中模型复杂且无法结合源码对测试用例进行精简的缺点,提供一种基于事件响应函数树模型的GUI软件测试用例生成方法。
根据本发明的一个进一步的方面,提供了一种基于事件响应函数树模型的GUI软件测试用例生成方法,包括:首先提取GUI软件的事件响应函数,然后将事件响应函数构造成树形模型,再遍历此树形模型生成测试用例,其中,由于事件响应函数结合了用户操作与底层代码,因此能够为测试用例的精简提供更多的信息。
根据本发明的一个更具体的方面,提供了一种基于事件响应函数树模型的GUI软件测试用例生成方法,包括:
第一步分析程序源代码,构造函数调用图。通过分析GUI软件源代码,可以提取出各个函数之间的相互调用图,GUI软件一般用面向对象的编程语言编写而成,这里的函数调用图表示各个“类中”方法以及“类间”方法之间的相互调用关系图。
第二步根据函数调用图,提取事件响应函数,并录制事件响应函数相应的测试脚本。事件响应函数能够连接用户操作和程序底层代码,用录制的事件响应函数测试脚本来模拟用户的操作。
第三步利用函数调用图,分析事件响应函数主从关系,构造事件响应函数树。一些事件响应函数在其他事件响应函数触发之后才能触发,通过函数调用图,可以分析出事件响应函数之间的先后顺序,从而能够提供相应信息,有利于构造有效的测试用例。
第四步遍历事件响应函数树,组合测试脚本,生成测试用例。通过遍历事件响应函数树,可以获得所有合法的测试用例。这样的遍历方法有很多种,其中最简单且最容易实现的一个遍历方法是:首先找出所有从根节点出发到叶子结点截止的路径,根据这些路径,按照事件响应函数的先后顺序,依次组合所录制的相应操作脚本,最终组成测试用例。
本发明与现有方法相比较的优点在于:本发明所提出的模型简化了EFG模型,使模型更加简明,并且能够结合源码信息,为测试用例的精简提供参考信息,提高测试效率,方法简单,容易实现。
附图说明
图1用于说明本发明的实施例的一个示例性的Windows记事本程序相关操作示例。
图2用于说明本发明的实施例的一个示例性的记事本程序EFG模型示例。
图3用于说明本发明的实施例的一个示例性的Java编写的GUI软件函数调用图示例。
图4用于说明本发明的实施例的一个示例性的Windows记事本程序事件响应函数树示例。
图5用于说明本发明的实施例的一个示例性的TerpPaint界面截图。
图6是根据本发明的一个实施例的GUI软件测试用例生成方法的流程框图。
图7为根据本发明的一个实施例的GUI软件测试用例生成方法中利用BCEL模块提取的TerpPaint函数调用图局部。
图8为根据本发明的一个实施例的TerpPaint整体函数调用图。
图9是图8所示的TerpPaint部分事件响应函数列表示例。
图10是应用根据本发明的一个实施例的GUI软件测试用例生成方法的实例所构造的TerpPaint事件响应函数树。
图11显示了根据本发明的方法与其他方法的效果对比。
图12是TerpPaint部分结果测试报告。
具体实施方式
在具体描述之前,先确定相关概念。
函数调用图:一个软件的函数调用图为一个有向图,其节点为全体函数,其边为函数之间的调用关系,既包含“类内”函数调用,也包括“类间”函数调用,如果函数A调用了函数B,则有一条由A指向B的边。如图3所示,为一个用Java语言编写的GUI软件函数调用图的一部分,其中节点“FileMenuUtil.exit”到节点“Notepad.exit”的边为“类间”函数调用,节点“FileMenuUtil.exit”到节点“FileMenuUtil.confirmExit”的边为“类内”函数调用。
事件响应函数:事件响应函数是GUI软件中一种特殊的函数,它连接了用户操作与内部代码。比如当用户点击某个按钮时,***会自动调用事件响应函数,然后执行一系列操作。以图3为例,“MainUI$1.actionPerformed”即为一个事件响应函数,当用户点击GUI中的exit菜单时,***会自动调用此函数,然后依次执行图中的其他函数。
事件响应函数树:当GUI软件刚刚打开时,并不是所有的事件响应函数(严格说来,应为按钮或菜单等组件,但由于每一个按钮或菜单都与一个事件响应函数对应,为了方便,这里直接用事件响应函数代替)都对用户直接可见,有些事件响应函数需要在另外一些事件响应函数触发之后才对用户可见,以GUI软件所有的事件响应函数作为结点,以事件响应函数之间触发关系作为边,可以构造一棵事件响应函数树。为了与EFG模型进行比较,仍以微软的记事本程序为例进行介绍。如图4所示,同图2一样对记事本程序进行了抽象,其中E0表示程序的启动,E1~E8代表相应的相应事件所对应的事件响应函数,E7(点击“查找下一个(F)”所对应的事件响应函数)与E8(点击“取消”所对应的事件响应函数)必须在点击“查找”之后才能点击。图4表示了记事本程序事件响应函数的一部分。
TerpPaint是一款基于Java语言编写的画图软件,其下载地址为:http://www.cs.umd.edu/~atif/Benchmarks/UMD2005b.html,图5为其软件界面截图。这款软件仿照Windows***下的“画图”程序,实现了各种基本的画图功能,并且添加了一些常用的特效,能够帮助使用者完成简单图像的绘制。该软件为一款跨平台软件,可以运行于Windows、Linux和Mac OS等多个平台上。TerpPaint总共包含16个窗口,301个组件。其代码行数总共有10803行,其中包含了330个类,1253个方法和310个事件。
在GUI测试研究领域,TerpPaint常被用来作为实验对象。下面,就以TerpPaint为例,来说明本发明的具体实施方式。根据本发明的一个实施例的流程如图6所示,其具体实施步骤包括:
第一步分析程序源码,构造函数调用图。利用Apache Commons BCEL库可以对Java字节码进行操作,其为遍历Java软件所有的类提供了了一个org.apache.bcel.classfile.JavaClass模块,此模块可以自动的找出Java代码中所有的类。另外,为了遍历类中的方法,BCEL库还提供了一个org.apache.bcel.generic.EmptyVisitor访问者模式,通过继承此模块,然后重载其中的visitInvokeInstruction方法,可以找出所有的函数调用关系,进而构造出软件的函数调用图。具体过程可以在GitHub中找到例子,网址为:https://github.com/gousiosg/java-call graph。如图7所示,为利用BCEL模块提取的TerpPaint函数局部调用图,图8为其整体函数调用图。
第二步根据函数调用图,提取事件响应函数,并录制事件响应函数相应的测试脚本。事件响应函数直接由***调用,在步骤一中所构造的函数调用图中并没有包含***调用,所以事件响应函数在函数调用图中“入度”为零,即没有函数调用到这些事件响应函数。根据这一特性,可以很方便的提取出事件响应函数。由于程序中可能存在一些无用函数,这些函数并没有被任何其他函数调用到,但有可能被错误地识别为事件响应函数,因此需要对初步获取到的事件响应函数进行筛选。在Java程序中,事件响应函数有着固定的几种形式(具体可参见例如http://docs.oracle.com/javase/tutorial/uiswing/events/api.html中的Listener Methods),而程序中的无用函数一般不具备这些形式,因此可以据此判断初步获取的事件响应函数是否具备上述形式,从而进行筛选。在步骤一中所生成的函数调用图,包含了函数所在文件的行号信息,因此可以很方便的定位到事件响应函数所在位置,然后通过比照代码可以很容易的分析出事件响应函数所对应的操作,最后利用Abbot测试用例录制框架录制出相应的测试脚本,在脚本的录制过程中,可以人为地进行判断,从而进一步的对那些误识别的事件响应函数做精确的筛选。如图9所示,为TerpPaint的部分事件响应函数示例,使用本发明所提供的方法,最终提取了277个事件响应函数。
第三步利用函数调用图,分析事件响应函数之间的主从关系,构造事件响应函数树。事件响应函数的先后顺序可以体现在其所在类的创建顺序上,比如事件响应函数A所在类在事件响应函数B内部创建,即事件响应函数B调用了事件响应函数A所在类的构造函数,那么事件响应函数B为事件响应函数A的父节点。结合第一步所构造的函数调用图,对第二步所提取出的277个事件响应函数进行分析,可以构造出TerpPaint的事件响应函数树,具体结果如图10所示,图中的根节点为main函数,这里把main函数也看作一个事件响应函数,相当于打开应用,所有的事件响应函数都只有在main函数运行之后才能运行,因此main函数为根节点。
第四步遍历事件响应函数树,组合测试脚本,生成测试用例。通过遍历事件响应函数树,可以获得所有合法的测试用例,这样的遍历方法有很多种,其中最简单且最容易实现的一个遍历方法是:首先找出所有从根节点出发到叶子结点截止的路径,根据这些路径,按照事件响应函数的先后顺序,依次组合所录制的相应操作脚本,最终组成测试用例。本例中以此为遍历方法,最终生成了287个测试用例。为了验证方法的效果,需要对TerpPaint植入缺陷,同时为了便于比较,我们***了与网站http://www.cs.umd.edu/~atif/Benchmarks/UMD2006b.html中位置相同的缺陷,最终植入了263个缺陷。对于测试Oracle,本例中采用了“通过”测试,在所有缺陷位置***了一些“断言”语句,如果执行了缺陷代码,则触发相关Exception,即只要执行了缺陷代码,就认为发现了缺陷。最后,通过执行全部287个测试用例,发现了190个缺陷。图11为本发明结果与其他方法结果对比,表中其他方法的数据参见论文“3-Way GUI Test Cases Generation Based on Event-WisePartitioning”,结果显示,本发明方法所生成的测试用例数量明显少于其他方法,而所能检测到的缺陷要高于其他方法,可见本发明方法具有很高的缺陷检测效率。图12为利用本发明方法所开发的一款测试平台,执行完所有测试用例之后生成的测试报告,由于报告内容很多,这里只列出了前几条。由测试报告可以看出1号测试用例发现了三个错误,这说明同一个测试用例有可能发现多个缺陷。
Claims (9)
1.一种基于事件响应函数树模型的GUI软件测试用例生成方法,其特征在于包括:
A)分析程序源代码,构造函数调用图,其中通过分析GUI软件源代码,提取出各个函数之间的相互调用图,
B)根据函数调用图,提取事件响应函数,并录制事件响应函数相应的测试脚本,其中事件响应函数能够连接用户操作和程序底层代码,用录制的事件响应函数测试脚本来模拟用户的操作,
其中,根据事件响应函数的先后顺序体现了在事件响应函数所在类的创建顺序这个特性,即一个第二事件响应函数调用了一个第一事件响应函数所在类的构造函数,那么该第二事件响应函数为该第一事件响应函数的父节点,并结合步骤A)所构造的函数调用图,对步骤B)所提取出的事件响应函数进行分析,构造出事件响应函数树,
C)利用函数调用图,分析事件响应函数主从关系,构造事件响应函数树,
D)遍历事件响应函数树,组合测试脚本,生成测试用例。
2.根据权利要求1所述的方法,其特征在于进一步包括:
当GUI软件用面向对象的编程语言编写而成时,函数调用图表示各个类中方法以及类间方法之间的相互调用关系图。
3.根据权利要求1或2所述的方法,其特征在于所述步骤D)的遍历方法包括:
首先找出所有从根节点出发到叶子结点截止的路径,
根据所述路径,按照事件响应函数的先后顺序,依次组合所录制的相应操作脚本,最终组成测试用例。
4.根据权利要求1或2所述的方法,其特征在于
利用Apache Commons BCEL库对Java字节码进行操作,Apache Commons BCEL库为遍历Java软件所有的类提供了一个org.apache.bcel.classfile.JavaClass模块,此模块自动找出Java代码中所有的类,
利用Apache Commons BCEL库所提供的一个org.apache.bcel.generic.EmptyVisitor访问者模式,通过继承此模块,然后重载其中的visitInvokeInstruction方法,找出所有的函数调用关系,进而构造出软件的函数调用图。
5.根据权利要求1或2所述的方法,其特征在于:
事件响应函数直接由***调用,在所述步骤A)中所构造的函数调用图中并没有包含***调用,所以事件响应函数在函数调用图中入度为零,即没有函数调用到这些事件响应函数,根据这一特性提取出事件响应函数,
对初步获取到的事件响应函数进行筛选,包括根据事件响应函数在Java程序中所具有的固定的形式,判断初步获取的事件响应函数是否具备上述固定的形式,从而进行筛选,
利用在所述步骤A)中所生成的函数调用图所包含的函数所在文件的行号信息,对事件响应函数所在位置进行定位,
然后通过比照代码,分析出事件响应函数所对应的操作,
再利用Abbot测试用例录制框架录制出相应的测试脚本。
6.根据权利要求1所述的方法,其特征在于:
在所述步骤C)中,当一些事件响应函数在其他事件响应函数触发之后才能被触发时,通过函数调用图,分析出事件响应函数之间的先后顺序,从而提供相应信息,构造有效的测试用例。
7.根据权利要求1所述的方法,其特征在于:
其中的根节点为main函数,把main函数也看作一个事件响应函数,相当于打开应用,
所有的事件响应函数都只有在main函数运行之后才能运行,即main函数为根节点。
8.根据权利要求1所述的方法,其特征在于:
在所述步骤D)中,通过遍历事件响应函数树,获得所有合法的测试用例。
9.根据权利要求1、2或8所述的方法,其特征在于所述步骤D)包括:
首先找出所有从根节点出发到叶子结点截止的路径,
根据这些路径,按照事件响应函数的先后顺序,依次组合所录制的相应操作脚本,最终组成测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610016760.0A CN105677570B (zh) | 2016-01-11 | 2016-01-11 | 一种基于事件响应函数树的gui软件测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610016760.0A CN105677570B (zh) | 2016-01-11 | 2016-01-11 | 一种基于事件响应函数树的gui软件测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677570A CN105677570A (zh) | 2016-06-15 |
CN105677570B true CN105677570B (zh) | 2018-05-18 |
Family
ID=56299892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610016760.0A Expired - Fee Related CN105677570B (zh) | 2016-01-11 | 2016-01-11 | 一种基于事件响应函数树的gui软件测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677570B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368293B (zh) * | 2017-05-24 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 页面结构生成方法、页面截图上报方法、装置及*** |
CN109902004B (zh) * | 2019-02-18 | 2022-09-30 | 深圳壹账通智能科技有限公司 | 一种应用程序链接渠道的测试方法及装置 |
CN111459824B (zh) * | 2020-04-01 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 并发服务的测试用例处理方法及装置 |
CN112506766B (zh) * | 2020-12-02 | 2023-06-20 | 华南理工大学 | 交互式测试用例的自动生成方法 |
CN113590477B (zh) * | 2021-07-16 | 2023-06-09 | 四川大学 | 一种移动应用功能测试用例生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872325A (zh) * | 2010-06-25 | 2010-10-27 | 北京航空航天大学 | 一种基于谓词执行序列的软件动态缺陷定位方法 |
CN101916225A (zh) * | 2010-09-02 | 2010-12-15 | 于秀山 | 图形用户界面软件功能覆盖测试方法 |
CN102736973A (zh) * | 2011-04-07 | 2012-10-17 | 中国科学技术大学 | 不变量指导的随机测试用例自动化生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955945A (zh) * | 2005-10-25 | 2007-05-02 | 国际商业机器公司 | 为软件测试过程自动生成测试执行序列的方法和装置 |
-
2016
- 2016-01-11 CN CN201610016760.0A patent/CN105677570B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872325A (zh) * | 2010-06-25 | 2010-10-27 | 北京航空航天大学 | 一种基于谓词执行序列的软件动态缺陷定位方法 |
CN101916225A (zh) * | 2010-09-02 | 2010-12-15 | 于秀山 | 图形用户界面软件功能覆盖测试方法 |
CN102736973A (zh) * | 2011-04-07 | 2012-10-17 | 中国科学技术大学 | 不变量指导的随机测试用例自动化生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105677570A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677570B (zh) | 一种基于事件响应函数树的gui软件测试用例生成方法 | |
CN104699608B (zh) | 图形用户界面软件自动测试方法及装置 | |
CN107193739B (zh) | 一种黑盒回归测试方法 | |
CN101916225B (zh) | 图形用户界面软件功能覆盖测试方法 | |
Murphy-Hill et al. | How we refactor, and how we know it | |
CN102279791B (zh) | 用户界面清单 | |
Kamimura et al. | Extracting candidates of microservices from monolithic application code | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN109739755A (zh) | 一种基于程序追踪和混合执行的模糊测试*** | |
Arora et al. | Web application testing: A review on techniques, tools and state of art | |
CN109508298B (zh) | 图形化的脚本测试方法及*** | |
EP2976865B1 (en) | Firewall testing | |
Marchetto et al. | Reajax: a reverse engineering tool for ajax web applications | |
CN108536593A (zh) | 基于ui的cs架构软件自动化测试方法及*** | |
CN104615544A (zh) | 面向问题的gui软件关联功能分析方法及装置 | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测*** | |
CN108334441A (zh) | 一种软件开发工具包的自动化测试方法和*** | |
CN101976196B (zh) | 一种面向“服务质量”的代码自动生成方法 | |
Saddler et al. | EventFlowSlicer: a tool for generating realistic goal-driven GUI tests. | |
Fuchs et al. | Monitoring students' mobile app coding behavior data analysis based on IDE and browser interaction logs | |
Greiler et al. | Understanding plug-in test suites from an extensibility perspective | |
Sinha et al. | A measurement framework for evaluating model-based test generation tools | |
CN110362463A (zh) | 一种自动挑选测试用例进行回归测试的方法和装置 | |
NL2032297B1 (en) | Automatic generation method for android application micro-service driven by application scenario | |
Machado et al. | Automatic test-case generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180518 Termination date: 20190111 |
|
CF01 | Termination of patent right due to non-payment of annual fee |