CN108804304B - 测试用例生成方法及装置、存储介质、电子设备 - Google Patents

测试用例生成方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
CN108804304B
CN108804304B CN201710312624.0A CN201710312624A CN108804304B CN 108804304 B CN108804304 B CN 108804304B CN 201710312624 A CN201710312624 A CN 201710312624A CN 108804304 B CN108804304 B CN 108804304B
Authority
CN
China
Prior art keywords
test
test case
coverage
coverage rate
path
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
CN201710312624.0A
Other languages
English (en)
Other versions
CN108804304A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710312624.0A priority Critical patent/CN108804304B/zh
Publication of CN108804304A publication Critical patent/CN108804304A/zh
Application granted granted Critical
Publication of CN108804304B publication Critical patent/CN108804304B/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

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)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种测试用例生成方法及装置、存储介质、电子设备,该方法包括:接收包括与测试覆盖率对应的覆盖率标签的待测代码;对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。本公开实现了测试用例的自动化生成,降低了对测试工作人员的要求以及白盒测试的开发成本,提高了测试用例生成的效率。

Description

测试用例生成方法及装置、存储介质、电子设备
技术领域
本公开涉及软件测试技术领域,尤其涉及一种测试用例生成方法及测试用例生成装置、存储介质、电子设备。
背景技术
软件测试是软件开发的重要过程之一,已经融入到软件产品生命周期的各个阶段中,目的是尽可能多的发现软件中的错误,保证软件质量。在软件测试工作中,测试用例由测试输入数据以及与之对应的输出结果组成。测试用例的设计非常重要,是测试执行的正确性以及有效性的基础。如何有效地设计测试用例,一直是测试工作人员关注的问题。
白盒测试也称结构测试或逻辑驱动测试,是一种测试用例设计方法,它从代码的控制结构导出测试用例。在白盒测试中,可以根据覆盖率进行测试用例设计。上述覆盖率可以包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率。目前白盒测试的步骤可以包括:分析程序设计说明书、代码走读、划分代码结构、标记代码节点、获取基本路径以及设计测试用例。通过白盒测试可以检测代码中的每条分支和路径,揭示隐藏在代码中的错误并对代码进行比较彻底的测试。
然而,一方面,在白盒测试中基于单一覆盖率设计的测试用例,即使100%覆盖也不能确保代码的健壮性,基于多种覆盖率设计的测试用例,虽然可以相互补充,但是测试用例太多,复杂度高,操作难度大;另一方面,通过白盒测试设计测试用例对测试工作人员的要求较高,且设计测试用例的工作过于分散、复杂,无法自动化。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种测试用例生成方法及测试用例生成装置、存储介质、电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供一种测试用例生成方法,包括:
接收包括与测试覆盖率对应的覆盖率标签的待测代码;
对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;
根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
在本公开的一种示例性实施例中,所述根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例包括:
根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件确定与所述测试路径对应的候选测试用例,其中所述候选测试用例包括与所述测试路径对应的各变量的数值以及期望输出值;
根据所述候选测试用例中的与所述测试路径对应的变量的数值执行所述待测代码以得到实际输出值,并判断所述期望输出值与所述实际输出值是否相同;
在判断所述期望输出值与所述实际输出值相同时,将候选测试用例确定为与所述测试路径对应的所述测试用例。
在本公开的一种示例性实施例中,还包括:
将所述测试用例中的数据按照数据表格中的预设规则存储到所述数据表格中。
在本公开的一种示例性实施例中,所述测试用例中的数据包括所述测试覆盖率、所述各变量的数值、所述期望输出值以及所述实际输出值。
在本公开的一种示例性实施例中,所述测试覆盖率包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率中的一个或多个。
在本公开的一种示例性实施例中,所述字符串的约束条件包括所述字符串的语义、所述字符串的类型以及所述字符串的取值范围中的一个或多个。
在本公开的一种示例性实施例中,所述覆盖率标签为单一覆盖率标签或多种覆盖率标签其中之一。
根据本公开的一个方面,提供一种测试用例生成装置,包括:
接收模块,用于接收包括与测试覆盖率对应的覆盖率标签的待测代码;
扫描模块,用于对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
存储模块,用于将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
遍历模块,用于基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;
生成模块,用于根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的测试用例生成方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的测试用例生成方法。
本公开一种示例性实施例提供的一种测试用例生成方法中,首先,通过分析待测代码中的字符串的约束条件并基于字符串的约束条件得到待测代码的树形数据结构,然后,基于覆盖率标签遍历树形数据结构得到测试路径并根据测试路径以及测试路径对应的所述字符串的约束条件生成测试用例。一方面,通过分析字符串的约束条件并根据测试路径与该测试路径对应的字符串的约束条件生成测试用例,将设计测试用例的过程转化为对字符串的约束条件以及树形数据结构的处理,实现了测试用例的自动化生成,降低了对测试工作人员的要求以及白盒测试的开发成本,提高了测试用例生成的效率;另一方面,由于树形数据结构更易于分析和处理,降低了测试用例生成的复杂度。
附图说明
通过参照附图来详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本公开一种测试用例生成方法的流程图;
图2为本公开一示例性实施例提供的树形数据结构示意图;
图3为本公开一示例性实施例提供的用于存储测试用例的数据表格的示意图;
图4为本公开一种测试用例生成装置的框图。
图5本公开示一示例性实施例中的电子设备的模块示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免模糊本公开的各方面。
此外,附图仅为本公开的示意性图解,并非一定是按照比例绘制。图中相同的附图标记标识相同或相似的部分,因而将省略对它们的重复描述。
本示例性实施例中首先公开了一种测试用例生成方法,应用于白盒测试。参照图1所示,该测试用例生成方法可以包括:
步骤S101.接收包括与测试覆盖率对应的覆盖率标签的待测代码;
步骤S102.对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
步骤S103.将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
步骤S104.基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;
步骤S105.根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
本示例性实施例提供的测试用例生成方法,一方面,通过分析字符串的约束条件并根据测试路径与该测试路径对应的字符串的约束条件生成测试用例,将设计测试用例的过程转化为对字符串的约束条件以及树形数据结构的处理,实现了测试用例的自动化生成,降低了对测试工作人员的要求以及白盒测试的开发成本,提高了测试用例生成的效率;另一方面,由于树形数据结构更易于分析和处理,降低了测试用例生成的复杂度。
下面,将参照图1对本示例实施例中的测试用例生成方法作进一步说明。
在步骤S101中,接收包括与测试覆盖率对应的覆盖率标签的待测代码。
在本示例性实施例中,在测试工作人员将包括与测试覆盖率对应的覆盖率标签的待测代码文件上传至测试用例生成系统中并向测试用例生成系统发出生成测试用例的请求时,测试用例生成系统根据接收到的生成测试用例的请求接收包括与测试覆盖率对应的覆盖率标签的待测代码文件中的待测代码。所述测试覆盖率可以包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率中的一个或多个。测试工作人员可以根据具体的测试要求和测试效果确定采用单一测试覆盖率生成测试用例或基于多种测试覆盖率生成测试用例。例如,测试工作人员可以基于语句覆盖率生成测试用例,也可以基于判定覆盖率生成测试用例,还可以基于语句覆盖率以及判定覆盖率的组合生成测试用例。
所述覆盖率标签可以为单一覆盖率标签或多种覆盖率标签其中之一。在测试工作人员基于单一测试覆盖率进行软件测试时,覆盖率标签为单一覆盖率;在测试工作人员基于多种测试覆盖率进行软件测试时,覆盖率标签为多种覆盖率标签。例如,可以通过@cover-level在待测代码中增加覆盖率标签,其中,语句覆盖率用statement标识,判定覆盖率用decision标识,条件覆盖率用condition标识,路径覆盖率用path标识。比如,@cover-level decision为单一覆盖率标签中的判定覆盖率标签,表示根据判定覆盖率生成测试用例。@cover-level statement为单一覆盖率标签中的语句覆盖率标签,表示根据语句覆盖率生成测试用例。@cover-level decision condition path为基于判定覆盖率、条件覆盖率以及路径覆盖率的组合的多种覆盖率标签,表示根据基于判定覆盖率、条件覆盖率以及路径覆盖率的组合生成测试用例。在多种覆盖率标签中各测试覆盖率之间用分隔符进行分隔(比如,空格),不能使用换行符进行分隔。
在步骤S102中,对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件。
在本示例性实施例中,通过扫描器对待测代码进行扫描并从扫描器中读入字符串,所述字符串为待测代码中的表达式或赋值语句等。在读取到字符串后,分析每个字符串的约束条件。所述字符串的约束条件可以包括所述字符串的语义、所述字符串的类型以及所述字符串的取值范围中的一个或多个。
下面通过代码对上述过程做进一步说明。
Figure BDA0001287564490000061
Figure BDA0001287564490000071
在对上述代码进行扫描分析时,首先读入字符串@cover-level statement并对@cover-level statement进行语义分析,@cover-level statement表示根据语句覆盖率生成测试用例。接下来读入字符串int a,int b,int c并对int a,int b,int c进行类型分析,int a,int b,int c表示a、b以及c均为整型变量。再接下来读入字符串a>1&&b==0并分析字符串a>1&&b==0的取值范围,得到该字符串的取值范围a>1and b==0。根据上述过程对整个代码中的每行代码进行扫描和分析。通过分析字符串的约束条件为生成测试用例提供数据。
在步骤S103中,将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构。
在本示例性实施例中,在对待测代码中的字符串进行扫描分析后,将字符串的约束条件以树形结构进行存储,得到待测代码的树形数据结构。由于树形数据结构更易于分析和处理,因此,将字符串的约束条件以树形数据结构进行存储降低了测试用例生成的复杂度。举例说明,将上述步骤S102中的代码中的字符串的约束条件以树形结构进行存储得到如图2所示的树形数据结构。
在步骤S104中,基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径。
在本示例性实施例中,根据待测代码中的覆盖率标签对树形结构数据进行遍历,得到与覆盖率标签对应的测试路径。以上述步骤S102中的代码为例做进一步说明,在上述代码中,@cover-level statement表示根据语句覆盖率生成测试用例,所述语句覆盖率指在对待测代码进行测试时代码中的每一个可执行语句至少被执行一次。基于语句覆盖率的要求对图2中的树形数据结构进行遍历,得到与语句覆盖率标签对应的测试路径(ab)。
在步骤S105中,根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
在本示例性实施例中,根据测试路径确定在该测试路径上每条可执行语句中的的字符串的约束条件并结合不同执行语句中的字符串中的相同变量的取值范围,缩小测试路径中的不同字符串中相同的变量的取值范围,根据缩小了范围的字符串中的变量的取值范围确定测试用例中的各变量的取值,并生成测试用例。
具体的,所述根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例可以包括:根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件确定与所述测试路径对应的候选测试用例,其中所述候选测试用例包括与所述测试路径对应的各变量的数值以及期望输出值;根据所述候选测试用例中的与所述测试路径对应的变量的数值执行所述待测代码以得到实际输出值,并判断所述期望输出值与所述实际输出值是否相同;在判断所述期望输出值与所述实际输出值相同时,将候选测试用例确定为与所述测试路径对应的所述测试用例。
在本示例性实施例中,根据测试路径中的字符串的约束条件确定测试用例中各变量的取值范围,在各变量的取值范围中确定各变量的数值并根据各变量的数值计算出期望输出值,以得到候选测试用例。根据候选测试用例中的各变量的数值执行待测代码,得到实际输出值。判断实际输出值与期望输出值是否相同,若实际输出值与期望输出值相同,将候选测试用例确定为该待测代码的测试用例。若实际输出值与期望输出值不相同,根据测试路径中的各变量的取值范围重新确定候选测试用例,再根据候选测试用例确定测试用例。
以图2中的树形数据结构为例对上述过程做进一步说明,根据待测代码中的覆盖率标签分析得到根据语句覆盖率生成该待测代码的测试用例,根据语句覆盖率遍历图2中的树形数据结构得到该待测代码的测试路径(ab),其中,测试路径(ab)中的两个字符串的取值范围分别为a>1 and b==0、a==2 and c>1,通过上述两个字符串的取值范围,可以将a的取值范围缩小到a==2,c的取值范围缩小到c>2。因此,在测试路径(ab)中各变量的取值范围为a==2、b==0、c>2。在a==2、b==0、c>2范围中确定候选测试用例,例如,取候选测试用例中各变量的数值分别为a==2、b==0、c=6,期望输出值=4。根据a==2、b==0、c=6执行待测代码,可得实际输出值=4。由上可知实际输出值与期望输出值相等,因此将候选测试用例(a==2、b==0、c=6,期望输出值=4)确定为该得测代码的测试用例。
通过分析字符串的约束条件并根据测试路径与该测试路径对应的字符串的约束条件生成测试用例,将设计测试用例的过程转化为对字符串的约束条件以及树形数据结构的处理,实现了测试用例的自动化生成,降低了对测试工作人员的要求以及白盒测试的开发成本,提高了测试用例生成的效率。其次,通过分析增加了多种覆盖率标签的待测代码,实现了基于多种测试覆盖率的测试用例的生成,且不增加人力成本以及测试用例生成的复杂度。
进一步的,所述测试用例生成方法还可以包括:将所述测试用例中的数据按照数据表格中的预设规则存储到所述数据表格中。
在本示例性实施例中,在生成测试用例后,将测试用例存储到数据表格中(比如Excel表格),测试工作人员可以根据具体的要求对数据表格进行格式和布局的设置。所述测试用例中的数据可以包括所述测试覆盖率、所述各变量的数值、所述期望输出值以及所述实际输出值。如图3所示,第一行包括变量a、b、c以及expected result(期望输出值)、actual result(实际输出值)和description(描述),根据图3中的表格将根据图2中的树形数据结构生成的测试用例进行存储,即在对应的项目下填写与该项目对应的测试数据。
基于上述步骤S102中的代码以及TestNG测试框架的测试用例生成代码如下:
Figure BDA0001287564490000091
Figure BDA0001287564490000101
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
在本公开的示例性实施例中,还提供了一种测试用例生成装置,参照图4所示,该测试用例生成装置100可以包括:获取模块101、扫描模块102、存储模块103、遍历模块104、生成模块105,其中
接收模块101可以用于接收包括与测试覆盖率对应的覆盖率标签的待测代码;
扫描模块102可以用于对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
存储模块103可以用于将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
遍历模块104可以用于基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;
生成模块105可以用于根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
上述中各测试用例生成装置模块的具体细节已经在对应的测试用例生成方法中进行了详细的描述,因此此处不再赘述。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的测试用例生成方法。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读存储介质中包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频等等,或者上述的任意合适的组合。
在本公开的示例性实施例中,还提出了一种电子设备,如图5所示,该电子设备200包括:处理组件201,其进一步可以包括一个或多个处理器,以及由存储器202所代表的存储器资源,用于存储可由处理组件201执行的指令,例如应用程序。存储器202中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件201被配置为执行指令,以执行上述的色彩喷码生成方法。
该电子设备200还可以包括:一个电源组件,电源组件被配置成对执行电子设备200进行电源管理;一个有线或无线网络接口203,被配置成将电子设备200连接到网络;以及一个输入输出(I/O)接口204。该电子设备200可以操作基于存储在存储器的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (10)

1.一种测试用例生成方法,其特征在于,包括:
接收包括与测试覆盖率对应的覆盖率标签的待测代码;
对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;所述覆盖率标签包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率对应的标签中的一个或多个;
根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
2.根据权利要求1所述的测试用例生成方法,其特征在于,所述根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例包括:
根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件确定与所述测试路径对应的候选测试用例,其中所述候选测试用例包括与所述测试路径对应的各变量的数值以及期望输出值;
根据所述候选测试用例中的与所述测试路径对应的变量的数值执行所述待测代码以得到实际输出值,并判断所述期望输出值与所述实际输出值是否相同;
在判断所述期望输出值与所述实际输出值相同时,将候选测试用例确定为与所述测试路径对应的所述测试用例。
3.根据权利要求2所述的测试用例生成方法,其特征在于,还包括:
将所述测试用例中的数据按照数据表格中的预设规则存储到所述数据表格中。
4.根据权利要求3所述的测试用例生成方法,其特征在于,所述测试用例中的数据包括所述测试覆盖率、所述各变量的数值、所述期望输出值以及所述实际输出值。
5.根据权利要求1所述的测试用例生成方法,其特征在于,所述测试覆盖率包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率中的一个或多个。
6.根据权利要求1所述的测试用例生成方法,其特征在于,所述字符串的约束条件包括所述字符串的语义、所述字符串的类型以及所述字符串的取值范围中的一个或多个。
7.根据权利要求1所述的测试用例生成方法,其特征在于,所述覆盖率标签为单一覆盖率标签或多种覆盖率标签其中之一。
8.一种测试用例生成装置,其特征在于,包括:
接收模块,用于接收包括与测试覆盖率对应的覆盖率标签的待测代码;
扫描模块,用于对所述待测代码中的每行代码进行扫描以得到多个字符串,并分别分析每个所述字符串的约束条件;
存储模块,用于将全部所述字符串的所述约束条件以树形结构进行存储以得到所述待测代码的树形数据结构;
遍历模块,用于基于所述覆盖率标签对所述树形数据结构进行遍历以得到与所述覆盖率标签对应的测试路径;所述覆盖率标签包括语句覆盖率、判定覆盖率、条件覆盖率以及路径覆盖率对应的标签中的一个或多个;
生成模块,用于根据所述测试路径以及与所述测试路径对应的所述字符串的约束条件生成测试用例。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的测试用例生成方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述的测试用例生成方法。
CN201710312624.0A 2017-05-05 2017-05-05 测试用例生成方法及装置、存储介质、电子设备 Active CN108804304B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710312624.0A CN108804304B (zh) 2017-05-05 2017-05-05 测试用例生成方法及装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710312624.0A CN108804304B (zh) 2017-05-05 2017-05-05 测试用例生成方法及装置、存储介质、电子设备

Publications (2)

Publication Number Publication Date
CN108804304A CN108804304A (zh) 2018-11-13
CN108804304B true CN108804304B (zh) 2022-06-07

Family

ID=64054636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710312624.0A Active CN108804304B (zh) 2017-05-05 2017-05-05 测试用例生成方法及装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN108804304B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110059000A (zh) * 2019-03-15 2019-07-26 深圳壹账通智能科技有限公司 聊天剧本测试控制方法、装置、计算机设备及存储介质
CN109977030B (zh) * 2019-04-26 2022-04-19 北京信息科技大学 一种深度随机森林程序的测试方法及设备
CN110362497A (zh) * 2019-07-23 2019-10-22 上海金融期货信息技术有限公司 覆盖全异常字符的自动化api接口测试方法和系统
CN110765020B (zh) * 2019-10-25 2023-03-24 上海笃策信息科技有限公司 基于领域知识的测试用例生成方法
CN112905443B (zh) * 2019-12-04 2024-06-14 阿里巴巴集团控股有限公司 一种测试用例生成方法、设备及存储介质
CN113238932B (zh) * 2021-04-30 2024-03-19 西南电子技术研究所(中国电子科技集团公司第十研究所) 测试用例自动生成方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436128B (zh) * 2007-11-16 2012-10-31 北京邮电大学 软件测试用例自动生成方法及系统
CN102419728B (zh) * 2011-11-01 2014-10-29 北京邮电大学 基于覆盖率量化指标确定软件测试过程充分性的方法
CN103714000A (zh) * 2013-12-18 2014-04-09 杭州电子科技大学 一种面向敏感区域的嵌入式软件测试用例生成方法

Also Published As

Publication number Publication date
CN108804304A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108804304B (zh) 测试用例生成方法及装置、存储介质、电子设备
US9996613B2 (en) System and method for accessibility assessment of a web application
CN106294120B (zh) 测试代码的方法、设备和计算机程序产品
CN107783901B (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN103294598B (zh) 一种源代码检查方法及装置
CN109871326A (zh) 一种脚本录制的方法和装置
US20130125098A1 (en) Transformation of Computer Programs
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
JP2017138978A (ja) カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法
US10055329B2 (en) Detection of antipatterns through statistical analysis
CN105930257A (zh) 一种确定目标测试用例的方法及装置
US20150286555A1 (en) System and method for converting the business processes to test-centric activity diagrams
CN111427583A (zh) 组件的编译方法、装置和电子设备及计算机可读存储介质
CN111026660A (zh) 一种基于专家系统知识库的渗透测试方法
CN112506778A (zh) Web用户界面自动化测试方法、装置、设备和存储介质
CN113138927A (zh) 一种软件功能测试方法和装置
CN107066302B (zh) 缺陷检测方法、装置及服务终端
CN115562656A (zh) 页面的生成方法、装置、存储介质及计算机设备
US11526429B1 (en) Identifying critical methods and critical paths in software code
US20160292067A1 (en) System and method for keyword based testing of custom components
CN111580821A (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
US20210232495A1 (en) System and method for executing a test case
CN112988578A (zh) 一种自动化测试方法和装置
US20160188435A1 (en) Fixing anti-patterns in javascript
Villalobos-Arias et al. Evaluation of a model‐based testing platform for Java applications

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