CN107678966B - 批量单元测试方法、装置、可读存储介质及设备 - Google Patents

批量单元测试方法、装置、可读存储介质及设备 Download PDF

Info

Publication number
CN107678966B
CN107678966B CN201710929557.7A CN201710929557A CN107678966B CN 107678966 B CN107678966 B CN 107678966B CN 201710929557 A CN201710929557 A CN 201710929557A CN 107678966 B CN107678966 B CN 107678966B
Authority
CN
China
Prior art keywords
unit test
test object
unit
data set
reference probability
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
CN201710929557.7A
Other languages
English (en)
Other versions
CN107678966A (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710929557.7A priority Critical patent/CN107678966B/zh
Publication of CN107678966A publication Critical patent/CN107678966A/zh
Application granted granted Critical
Publication of CN107678966B publication Critical patent/CN107678966B/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/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

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

本发明涉及软件测试技术领域,尤其涉及批量单元测试方法、装置、可读存储介质及设备,所述方法包括:构建与预设的多个优先级等级一一对应的多个强类型数据集容器,每个优先级等级对应一个测试对象引用概率区间,优先级等级与测试对象引用概率区间之间的对应关系为:优先级等级的优先级从高到低依次对应测试对象引用概率区间的引用概率从低到高;基于对应关系,将多个单元测试对象对应存放到多个强类型数据集容器中;在运行多个单元测试对象的过程中,基于面向切面方法对多个单元测试对象进行弱引用处理。本申请有效地避免断言机制对强引用未初始化抛出的异常,即使单个单元测试对象出现测试异常也不会影响到后续单元测试对象的运行。

Description

批量单元测试方法、装置、可读存储介质及设备
技术领域
本发明涉及软件测试技术领域,尤其涉及批量单元测试方法、装置、可读存储介质及设备。
背景技术
在应用程序开发过程中,单元测试是程序正式提交给测试人员进行大规模功能测试前的一个重要且必要的环节。单元测试是指对程序中最小可测试单元进行逻辑检查和验证,其中,单元就是规定的最小的被测功能模块。
在安卓(Android)应用的开发过程中,单元测试分为:Java虚拟机单元测试(JVMTest)和设备测试(Instrumentation Test)。其中,对于JVM Test而言,一般通过运行由纯Java代码编写的测试桩(Test Case)实现,无需依赖其他组件,由于代码运行于JVM虚拟机上,因此测试速度较快;对于Instrumentation Test而言,由于这类测试需要依赖Android系统提供的组件,因此需要在真机或者模拟器上部署运行,并需要进行预编译,因此测试速度较慢。
而无论是采用上述的JVM Test还是Instrumentation Test,在进行反序列化以及针对成员变量引用进行单元测试时,若反序列化存在反序列化异常(DeserializeException),或,成员变量引用测试的过程中存在变量为空的异常(NullPointer Exception),表明出现了成员对象未进行初始化而被强行引用的情况,而在断言机制下上述两种异常均会中断后续单元测试对象的正常运行。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的批量单元测试方法、装置、可读存储介质及设备。
本发明实施例提供一种批量单元测试方法,所述方法包括:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
优选的,所述单元测试对象的类型为JavaBean。
优选的,在所述基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中之前,所述方法还包括:
获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure GDA0002408606200000021
其中,F为所述单元测试对象的引用概率,f为所述单元测试对象的引用值,v为所有单元测试对象的引用总值。
优选的,所述基于面向切面方法对所述多个单元测试对象进行弱引用处理,包括:
在每个单元测试对象的类名前插入注解。
优选的,在所述构建与预设的多个优先级等级一一对应的多个强类型数据集容器之后,且在所述将所述多个单元测试对象对应存放到所述多个强类型数据集容器中之前,所述方法还包括:
利用队列数据接口将所述多个强类型数据集容器进行串联。
本发明实施例提供一种批量单元测试装置,所述装置包括:
构建模块,用于构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
存放模块,用于基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
处理模块,用于在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
优选的,所述单元测试对象的类型为JavaBean。
优选的,所述装置还包括:
获得模块,用于获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure GDA0002408606200000031
其中,F为所述单元测试对象的引用概率,f为所述单元测试对象的引用值,v为所有单元测试对象的引用总值。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
本申请通过预先设定多个优先级等级,每个优先级等级对应一个测试对象引用概率区间,其中,优先级等级与测试对象引用概率区间之间的对应关系为:优先级等级的优先级从高到低依次对应测试对象引用概率区间的引用概率从低到高,再构建与多个优先级等级一一对应的多个强类型数据集容器,接着,基于多个单元测试对象的引用概率和优先级等级与测试对象引用概率区间之间的对应关系,将多个单元测试对象对应存放到多个强类型数据集容器中,最后,在运行存放到多个强类型数据集容器中的多个单元测试对象的过程中,基于面向切面方法对多个单元测试对象进行弱引用处理,有效地避免断言机制对强引用未初始化抛出的异常,即使单个单元测试对象出现测试异常也不会影响到后续单元测试对象的运行,不会导致后续单元测试对象都中断运行。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:
图1示出了本发明实施例中的批量单元测试方法的流程图;
图2示出了本发明实施例中的批量单元测试装置的结构图;
图3示出了本发明实施例中的计算机设备的实体结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请实施例提供一种批量单元测试方法,所述方法可以应用在Android系统中,且,该方法的编码语言可以为Java,如图1所示,所述方法包括:
步骤101:构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高。
对于步骤101而言,在具体实施过程中,预先设定多个优先级等级,例如,预先设定5个优先级等级,分别为第一优先级等级(D1)、第二优先级等级(D2)、第三优先级等级(D3)、第四优先级等级(D4)和第五优先级等级(D5),上述五个优先级等级对应不同的优先级,在一种具体的设置情况下,第一优先级等级的优先级高于第二优先级等级的优先级,第二优先级等级的优先级高于第三优先级等级的优先级,第三优先级等级的优先级高于第四优先级等级的优先级,第四优先级等级的优先级高于第五优先级等级的优先级。
进一步,可以顺次划分出5个测试对象引用概率区间,分别为[1,5]、[5,10]、[10,30]、[30,50]和[50,99],在本申请中,所有测试对象引用概率区间的合集为[1,99]。进一步,根据上述对应关系,将5个测试对象引用概率区间与5个优先级等级进行对应,得到,D1对应[1,5],D2对应[5,10],D3对应[10,30],D4对应[30,50],D5对应[50,99],详见下表1:
等级 D1 D2 D3 D4 D5
引用概率(%) [1,5) [5,10) [10,30) [30,50) [50,99]
表1
进一步,在获得多个优先级等级以及将多个优先级等级与多个测试对象引用概率区间一一对应之后,构建与多个优先级等级一一对应的多个强类型数据集容器(SR-DS),SR-DS用于存放单元测试对象。例如,构建与D1对应的第一强类型数据集容器SR-DS1、与D2对应的第一强类型数据集容器SR-DS2、与D3对应的第一强类型数据集容器SR-DS3、与D4对应的第一强类型数据集容器SR-DS4,以及与D5对应的第一强类型数据集容器SR-DS5
在完成步骤101之后,执行步骤102:基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中。
对于步骤102而言,在具体实施过程中,若存在3个单元测试对象,分别为第一单元测试对象、第二单元测试对象和第三单元测试对象,其引用概率分别为3%、15%和45%,则根据表1的对应关系,可以将第一单元测试对象存放到SR-DS1,将第二单元测试对象存放到SR-DS3,将第三单元测试对象存放到SR-DS4
需要说明的是,在本申请中,单元测试对象所对应的优先级越高,则表明该单元测试对象越优先被执行,反之,单元测试对象所对应的优先级越低,则表明该单元测试对象越延后被执行。本申请根据引用概率划分优先级,引用概率为单元测试对象被引用的次数,被引用的次数越多,频率越高,则断言机制针对该单元测试对象初始化断言的频率就越高,如果断言机制对单元测试对象初始化断言的频率越高,那么该单元测试对象出现异常的概率就越高,可见,如果降低单元测试对象被初始化断言的次数可以有效地防止测试环节出现异常而终止整个测试程序,因此,本申请根据测试对象的引用频率的高低划分出多个优先级等级,引用频率低的单元测试对象将会被划分到优先级高的强类型数据集容器中,引用频率高的单元测试对象将会被划分到优先级低的强类型数据集容器中,从而最大限度地保证了单元测试对象被执行单元测试,也有利于测试报告的输出和异常问题的排查。
进一步来讲,强类型数据集容器可将各个单元测试对象在设备内层中进行映射缓存,这种缓存机制有利于大批量快速加载测试数据,避免因加载至内存过程缓慢导致测试中断,强类型数据集容器实现了内存预加载和分批管理。对于多个强类型数据集容器中单元测试对象的加载而言,依次从优先级最高的强类型数据集容器开始执行加载,而,由于是强类型数据集容器,即使其中一个强类型数据集容器出现异常也不会影响后续强类型数据集容器的正常加载。
在步骤102之前,所述方法还包括:
获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure GDA0002408606200000071
其中,F为单元测试对象的引用概率,f为单元测试对象的引用值,v为单元测试对象的引用总值,具体地,可以通过读取开发编译系统(Android Studio/Eclipse)输出单元测试对象的引用值f。
在执行完步骤102之后,执行步骤103:在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
对于步骤103而言,在具体实施过程中,在运行各个单元测试对象的过程中,采用面向切面方法(AOP)在单元测试对象引用前进行弱引用(WeakReference),具体方式为在每个单元测试对象的类名前插入注解,在运行阶段(Runtime)动态进行对象弱引用包裹,注解方式如下:
Figure GDA0002408606200000081
在上述代码中,TestBean一旦被弱引用包裹,即使TestBean对象未被初始化以及被引用,也不会抛出NullPointerException的异常。本申请通过使用AOP编程思想对单元测试对象进行弱引用,有效地防止了单元测试对象未初始化带来的空指针异常。
本申请还提供一种优选的实施例,在该优选的实施例中,在所述构建与预设的多个优先级等级一一对应的多个强类型数据集容器之后,且在所述将所述多个单元测试对象对应存放到所述多个强类型数据集容器中之前,所述方法还包括:利用队列数据接口将所述多个强类型数据集容器进行串联。
具体来讲,由于本申请在运行单元测试对象时按照单元测试对象优先级的顺序进行执行,因此可以将多个强类型数据集容器串联起来,本申请利用队列(Queue)数据接口进行强类型数据集容器的逐个入队和出队的操作,并加入异常处理机制:一旦某一强类型数据集容器出现异常,则立即将其逐出队列,并将后续的强类型数据集容器加入入列,从而达到所有强类型数据集容器有序串行运行。
在本申请中,单元测试对象的类型可以为JavaBean。
基于同一发明构思,本发明实施例还提供一种批量单元测试装置,如图2所示,所述装置包括:
构建模块201,用于构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
存放模块202,用于基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
处理模块203,用于在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
优选的,所述单元测试对象的类型为JavaBean。
优选的,所述装置还包括:
获得模块,用于获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure GDA0002408606200000091
其中,F为所述单元测试对象的引用概率,f为所述单元测试对象的引用值,v为所有单元测试对象的引用总值。
优选的,所述处理模块,具体用于:
在每个单元测试对象的类名前插入注解。
优选的,所述装置还包括:
串联模块,用于利用队列数据接口将所述多个强类型数据集容器进行串联。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
本发明实施例还提供了一种计算机设备,如图3所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以计算机设备为手机为例:
图3示出的是与本发明实施例提供的计算机设备相关的部分结构的框图。参考图3,该计算机设备包括:存储器301和处理器302。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
存储器301可用于存储软件程序以及模块,处理器302通过运行存储在存储器301的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储数据(比如音频数据、电话本等)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器302是计算机设备的控制中心,通过运行或执行存储在存储器301内的软件程序和/或模块,以及调用存储在存储器301内的数据,执行各种功能和处理数据。可选的,处理器302可包括一个或多个处理单元;优选的,处理器302可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
在本发明实施例中,该计算机设备所包括的处理器302可以具有以下功能:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
总之,本申请通过预先设定多个优先级等级,每个优先级等级对应一个测试对象引用概率区间,其中,优先级等级与测试对象引用概率区间之间的对应关系为:优先级等级的优先级从高到低依次对应测试对象引用概率区间的引用概率从低到高,再构建与多个优先级等级一一对应的多个强类型数据集容器,接着,基于多个单元测试对象的引用概率和优先级等级与测试对象引用概率区间之间的对应关系,将多个单元测试对象对应存放到多个强类型数据集容器中,最后,在运行存放到多个强类型数据集容器中的多个单元测试对象的过程中,基于面向切面方法对多个单元测试对象进行弱引用处理,有效地避免断言机制对强引用未初始化抛出的异常,即使单个单元测试对象出现测试异常也不会影响到后续单元测试对象的运行,不会导致后续单元测试对象都中断运行。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (9)

1.一种批量单元测试方法,其特征在于,所述方法包括:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
2.如权利要求1所述的方法,其特征在于,所述单元测试对象的类型为JavaBean。
3.如权利要求1所述的方法,其特征在于,在所述基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中之前,所述方法还包括:
获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure FDA0002408606190000011
其中,F为所述单元测试对象的引用概率,f为所述单元测试对象的引用值,v为所有单元测试对象的引用总值。
4.如权利要求1所述的方法,其特征在于,所述基于面向切面方法对所述多个单元测试对象进行弱引用处理,包括:
在每个单元测试对象的类名前插入注解。
5.如权利要求1所述的方法,其特征在于,在所述构建与预设的多个优先级等级一一对应的多个强类型数据集容器之后,且在所述将所述多个单元测试对象对应存放到所述多个强类型数据集容器中之前,所述方法还包括:
利用队列数据接口将所述多个强类型数据集容器进行串联。
6.一种批量单元测试装置,其特征在于,所述装置包括:
构建模块,用于构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
存放模块,用于基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
处理模块,用于在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
7.如权利要求6所述的装置,其特征在于,所述单元测试对象的类型为JavaBean。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
获得模块,用于获得各个单元测试对象的引用概率,其中,每个单元测试对象的引用概率通过以下公式获得:
Figure FDA0002408606190000021
其中,F为所述单元测试对象的引用概率,f为所述单元测试对象的引用值,v为所有单元测试对象的引用总值。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:
构建与预设的多个优先级等级一一对应的多个强类型数据集容器,其中,每个优先级等级对应一个测试对象引用概率区间,所述优先级等级与所述测试对象引用概率区间之间的对应关系为:所述优先级等级的优先级从高到低依次对应所述测试对象引用概率区间的引用概率从低到高;
基于多个单元测试对象的引用概率和所述对应关系,将所述多个单元测试对象对应存放到所述多个强类型数据集容器中;
在运行存放到所述多个强类型数据集容器中的所述多个单元测试对象的过程中,基于面向切面方法对所述多个单元测试对象进行弱引用处理。
CN201710929557.7A 2017-10-09 2017-10-09 批量单元测试方法、装置、可读存储介质及设备 Active CN107678966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710929557.7A CN107678966B (zh) 2017-10-09 2017-10-09 批量单元测试方法、装置、可读存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710929557.7A CN107678966B (zh) 2017-10-09 2017-10-09 批量单元测试方法、装置、可读存储介质及设备

Publications (2)

Publication Number Publication Date
CN107678966A CN107678966A (zh) 2018-02-09
CN107678966B true CN107678966B (zh) 2020-07-10

Family

ID=61139877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710929557.7A Active CN107678966B (zh) 2017-10-09 2017-10-09 批量单元测试方法、装置、可读存储介质及设备

Country Status (1)

Country Link
CN (1) CN107678966B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457152B (zh) * 2019-07-11 2022-12-30 贵阳语玩科技有限公司 一种用代理模式解决内存泄露的系统和方法
CN117076332B (zh) * 2023-10-13 2024-01-23 博智安全科技股份有限公司 一种测试用例的测试方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895577B1 (en) * 1999-05-13 2005-05-17 Compuware Corporation Risk metric for testing software
CN101212759A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种手机软件集成测试方法
CN104317722A (zh) * 2014-11-13 2015-01-28 中国建设银行股份有限公司 一种基于Junit的单元测试方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108178B2 (en) * 2008-05-16 2012-01-31 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Directed design of experiments for validating probability of detection capability of a testing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895577B1 (en) * 1999-05-13 2005-05-17 Compuware Corporation Risk metric for testing software
CN101212759A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种手机软件集成测试方法
CN104317722A (zh) * 2014-11-13 2015-01-28 中国建设银行股份有限公司 一种基于Junit的单元测试方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
回归测试中的测试用例优先排序技术评述;陈翔等;《软件学报Journal of Software》;20130831;第24卷(第8期);第1695-1712页 *
多目标优化的测试用例优先级在线调整策略;张娜等;《软件学报Journal of Software》;20151031;第26卷(第10期);第2451-2464页 *

Also Published As

Publication number Publication date
CN107678966A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
US9928150B2 (en) System and method for testing a logic-based processing device
US10990726B2 (en) Address generators for verifying integrated circuit hardware designs for cache memory
US20190227905A1 (en) Debugging support unit for microprocessor
US20140007060A1 (en) Implementation of distributed methods that support generic functions
US10379861B2 (en) Decoding instructions that are modified by one or more other instructions
CN110209520B (zh) 一种提高ssd测试效率的方法、装置、计算机设备及存储介质
CN107678966B (zh) 批量单元测试方法、装置、可读存储介质及设备
JP2017174418A (ja) モデルチェックのためのデータ構造抽象化
CN110569038B (zh) 随机验证参数设计方法、装置、计算机设备及存储介质
EP4318211A1 (en) Method for inspecting code under weak memory order architecture, and corresponding device
CN114676040A (zh) 一种测试覆盖率验证方法、装置及存储介质
CN110134598B (zh) 一种批量处理方法、装置及系统
US20190286544A1 (en) Method, device and server for checking a defective function
US9606802B2 (en) Processor system with predicate register, computer system, method for managing predicates and computer program product
US9158506B2 (en) Loop abstraction for model checking
US9740504B2 (en) Hardware acceleration for inline caches in dynamic languages
US9710388B2 (en) Hardware acceleration for inline caches in dynamic languages
CN109324838B (zh) 单片机程序的执行方法、执行装置及终端
US9442831B1 (en) Automated testing of program code for processing a simple boot flag data structure
US8745605B2 (en) Execution contexts with polymorphic type implementations
CN116450431A (zh) Cpu参考模型的指令功能测试系统及其方法、计算机设备和存储介质
US20230169352A1 (en) Generate source code to build secure machine learning engine for edge devices and existing toolchains
US9582497B2 (en) Providing context in functional testing of web services
CN108664414B (zh) Ddr内存配置空间访问方法及装置
CN109583198B (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