CN108829590B - 一种软件测试方法、装置及*** - Google Patents
一种软件测试方法、装置及*** Download PDFInfo
- Publication number
- CN108829590B CN108829590B CN201810549985.1A CN201810549985A CN108829590B CN 108829590 B CN108829590 B CN 108829590B CN 201810549985 A CN201810549985 A CN 201810549985A CN 108829590 B CN108829590 B CN 108829590B
- Authority
- CN
- China
- Prior art keywords
- data
- tested
- path
- path information
- file
- 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
Links
Images
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
-
- 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/3688—Test 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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种软件测试方法、装置及***,其中所述***包括:用例管理器,用于确定测试用例的组织形式和描述格式,其中,描述格式包括多个描述字段,描述字段包括路径信息以及执行条件,路径信息包括关键字信息;调度器,用于读取用例管理器中的测试用例,并将路径信息发送至数据解析器,以及,获取数据解析器根据路径信息确定的待测试数据,并将待测试数据以及执行条件发送至用例执行器;数字解析器,用于根据路径信息,确定数据读写方式,并采用数据读写方式,根据路径信息确定待测试数据;用例执行器,用于采用执行条件,对待测试数据进行测试,获得测试结果。本发明可以适用于各种数据类型的数据测试。
Description
技术领域
本发明涉及数据测试技术领域,特别是涉及一种软件测试***、方法、装置、电子设备以及机器可读介质。
背景技术
在软件工程中,软件数据是软件的一个重要组成部分,软件数据通常包含在配置文件、程序代码、接口传参与接口返回等形式中。而针对软件数据的测试是软件测试不可或缺的一部分,软件数据测试能够在软件发布之前最大程度地验证软件的设计是否符合预期,是否存在安全性隐患等问题。
软件数据测试中,最常使用的方法包括人工校验和自动化校验两种方式。
人工校验通常由测试人员通过肉眼比对的方式来判定数据是否符合预期,这种方式测试少量的数据比较有效,但是当需要测试的数据量很大的时候,这种方式的工作量和效率很难满足测试需求。
自动化校验最常使用的方式是针对需要测试的数据,使用特定的语言(例如脚本语言)开发对应的测试脚本或工具来完成对应数据的测试。这种使用脚本编写的自动化工具,比较快以及比较精准地完成对应的数据的测试。但是在一个软件开发的过程中,软件的需求和代码的实现逻辑经常需要快速迭代,软件对应的数据也会跟着有所变动。这就要求对应的测试脚本和工具需要不断地维护和更新。并且,由于不同软件使用的数据或者组织数据的方式不尽相同,很难找出一种通用的测试框架来覆盖大部分类型的数据的测试。
发明内容
本发明实施例所要解决的技术问题是提供一种软件测试方法,以解决现有的测试脚本和工具需要不断地维护和更新,以及,现有的测试框架较难覆盖大部分类型的数据的测试的问题。
相应的,本发明实施例还提供了一种软件测试***、一种软件测试装置、一种电子设备以及一个或多个机器可读介质,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种软件测试***,包括:
用例管理器,用于确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息以及执行条件,所述路径信息包括关键字信息;
调度器,用于读取所述用例管理器中的测试用例,并将所述路径信息发送至所述数据解析器,以及,获取所述数据解析器根据所述路径信息确定的待测试数据,并将所述待测试数据以及所述执行条件发送至所述用例执行器;
数字解析器,用于根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
用例执行器,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
优选地,所述调度器还用于:
接收所述用例执行器发送的测试结果,其中,所述测试结果包括错误结果;
根据所述错误结果生成出错提示信息;
展示所述出错提示信息。
优选地,所述出错提示信息包括以下中的至少一种:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
优选地,所述描述字段还包括第一过滤条件,所述调度器还用于:
采用所述第一过滤条件,对所述待测试数据进行筛选,并将筛选得到的待测试数据以及所述执行条件发送至所述用例执行器。
优选地,所述路径信息包括文件路径以及数据路径;
所述数据解析器还用于:
根据所述文件路径,确定对应的数据读写方式;
采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
按照所述数据路径从所述文件数据中确定待测试数据,并将所述待测试数据发送至调度器中。
优选地,所述描述字段还包括第二过滤条件,所述第二过滤条件包含在所述路径信息中,所述数据解析器还用于:
按照指定的字符,对所述数据路径进行划分,得到关键字组;
针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
优选地,所述执行条件包括:指定的调用方法以及所述调用方法对应的指定数值。
本发明还公开了一种软件测试方法,所述方法包括:
确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息以及执行条件,所述路径信息包括关键字信息;
针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
优选地,所述测试结果包括错误结果,所述方法还包括:
根据所述错误结果生成出错提示信息;
展示所述出错提示信息。
优选地,所述出错提示信息包括以下中的至少一种:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
优选地,所述描述字段还包括第一过滤条件,在所述采用所述执行条件,对所述待测试数据进行测试,获得测试结果之前,还包括:
采用所述第一过滤条件,对所述待测试数据进行筛选。
优选地,所述路径信息包括文件路径以及数据路径;所述采用所述数据读写方式,根据所述路径信息确定待测试数据,包括:
根据所述文件路径,确定对应的数据读写方式;
采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
按照所述数据路径从所述文件数据中确定待测试数据。
优选地,所述描述字段还包括第二过滤条件,所述第二过滤条件包含在所述路径信息中,所述按照所述数据路径从所述文件数据中确定待测试数据,包括:
按照指定的字符,对所述数据路径进行划分,得到关键字组;
针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
优选地,所述执行条件包括:指定的调用方法以及所述调用方法对应的指定数值。
本发明还公开了一种软件测试装置,所述装置包括:
测试用例确定模块,用于确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息以及执行条件,所述路径信息包括关键字信息;
待测试数据确定模块,用于针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
测试模块,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
本发明还公开了一种电子设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如上述的一种软件测试方法。
本发明还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行上述的一种软件测试方法。
与现有技术相比,本发明实施例包括以下优点:
在本发明实施例中,用户可以根据预定的描述格式描述测试用例,其中每个测试用例可以包括包含关键字信息的路径信息,以及执行条件。针对每个测试用例,本发明实施例可以根据该路径信息确定对应的数据读写方式,使得本发明实施例可以适用于各种数据类型的数据测试,并且这种测试不会因为软件的实现和软件的类型而变化,提高自动化测试的适用范围。
另外,在本发明实施例中,路径信息可以包括关键字信息,可以根据该关键字信息对数据进行筛选,得到待测数据。当由于软件的需求和代码的实现逻辑需要更新软件对应的数据时,只需要更新该路径信息对应的关键字信息,无需对软件数据的测试脚本和工具进行维护和更新,节省了更新和维护成本。
进一步的,由于该路径信息包含关键字信息,在按照关键字信息对数据进行过滤后,可以减少了需要测试的数据量,从而提高了数据测试的效率。
并且该关键字信息可以由用户自定义,使得待测数据更加符合用户的个性化需求,提高了测试的精准度。
附图说明
图1是本发明实施例的一种软件测试***实施例的结构框图;
图2是本发明实施例的一种软件测试***实施例中的测试用例示意图;
图3是本发明实施例的一种软件测试***实施例中的出错提示示意图;
图4是本发明实施例的一种软件测试方法实施例的步骤流程图;
图5是本发明实施例的一种软件测试装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例的一种软件测试***实施例的结构框图,所述软件测试***10至少可以包括:用例管理器101、调度器102、数据解析器103以及用例执行器104。
所述用例管理器101,用于确定测试用例的组织形式和描述格式。
在本发明实施例中,用户可以在用例管理器101中添加和组织用例,用例管理器101用于管理测试用例的集合,规定了测试用例的组织形式和描述格式,在实现中,用例管理器101中所有的测试用例均可以采用统一的格式描述。
具体的,用例管理器101规定了用例文件(即检查规则文件、测试规则文件)的存放形式,例如,以py(python)文件来存储一个用例文件。
一方面,用例文件规定了测试用例的组织形式,其中,组织形式是指一组测试用例采用何种结构聚合。在具体实现中,可以以k-v字典或者数组等集合类的形式来聚合一组测试规则(或称检查规则)。例如,当以k-v字典来描述一组测试规则时,key可以为测试规则的序号,value为一个具体的测试规则。
另一方面,用例文件还规定了测试用例的描述格式,格式描述是指一个用例采用什么方式描述。其中,每个测试用例可以采用统一的格式(即书写方法)描述。在实现时,可以以k-v字典的形式描述一个测试用例。
作为一种示例,每个测试用例的描述格式可以包括多个描述字段,例如,描述字段可以包括但不限于:用例描述name、路径信息path、过滤条件filter(过滤器)、执行条件condition,等等。
其中,name描述了测试用例所要测试的内容,记载了测试用例的描述信息。
path可以包括文件路径以及数据路径xpath。其中,文件路径描述了需要测试的文件信息,包括文件名称、文件存储路径等。数据路径描述了上述需要测试的文件中具体的需要测试的数据。在本发明实施例中,数据路径可以包括关键字信息,即数据路径可以采用关键字的形式进行描述,进一步的,关键字可以包括用户自定义的关键字,用关键字的方式来描述数据路径,可以较为直观地表现了需要获取的待测数据的组织形式,从而较快地定位待测数据。
过滤条件描述了进行数据的过滤,从而获得用户想要测试的数据。
在一种实施方式中,过滤条件可以包括第二过滤条件,该第二过滤条件可以包含在路径信息中,即第二过滤条件包含在path字段中,例如,若想要得到待测试数据{“a”:{“b”:1,”d”:2},”c”:{“b”:2,”d”:3}}中所有d=3时b的值,则path的描述可以为“*/d=3,b”,其中,d=3为第二过滤条件,通过第二过滤条件来表达的数据路径的关键字,可以筛选出更精准更符合用户需求的待测试数据。
在另一种实施方式中,过滤条件还可以包括第一过滤条件,第一过滤条件独立于路径信息,该第一过滤条件用于对待测试数据进行预处理。
condition描述了待测试数据所要满足的条件,提供常用的逻辑判断、文件是否存在和判断方法的自由扩展。
作为一种示例,执行条件可以包括但不限于:指定的调用方法以及所述调用方法对应的指定数值。具体的,该指定的调用方法可以包括常用的逻辑判断方法,该逻辑判断方法可以满足常用的数值逻辑测试,该逻辑判断方法可以包括但不限于:>、<、==、!=、>=、<=等判断方法。除此以外,用例管理器101还可以提供自定义扩展,用户可以将自己编写的判断方法直接描述在测试用例的执行条件中。
例如,一个测试用例采用k-v字典形式的描述可以如图2所示。在图2中,name字段描述了该测试用例需要测试的内容为“特惠套装表.xlsx的战斗内物品id必须存在于战斗物品表.xlsx的物品id中”。
数据路径为"xpath":"data/*/combat_item_id",描述了需要检查的数据为data字段下所有的(*表示所有)combat_item_id字段对应的执行。则在xpath字段下存在第二过滤条件“combat_item_id”。第一过滤条件filter是独立于数据路径的过滤条件,描述了待测试数据的预处理方式,例如,图4中的预处理方式为将待测试数据处理成tuple2list。
condition字段描述的执行条件为:调用方法为“存在于”的方法,调用方法对应的指定数值为“combat_item_data.py:data/*/id”。
另外,检查规则文件还规定了文件路径和测试规则的映射,在实现时,可以采用k-v的形式将文件路径和测试规则进行对应,其中,key表示需要检查的文件路径(即数据从哪里来),包括文件名等,value是对应的测试规则(即某个数据的某个字段需要进行何种校验)。
需要说明的是,本发明实施例的用例文件并不限于上述k-v字典形式,还可以采用其他方式来表示描述字段,例如,采用数据的形式表示。
所述调度器102,用于读取所述用例管理器中的测试用例,并将所述路径信息发送至所述数据解析器,以及,获取所述数据解析器根据所述路径信息确定的待测试数据,并将所述待测试数据以及所述执行条件发送至所述用例执行器。
在本发明实施例中,调度器102负责调度用例管理器101、数据解析器103与用例执行器104的有序运行。
具体的,调度器102可以首先读取用例管理器101中的测试用例,调用用例管理101中规定的解析方法对测试用例进行解析,获得需要检查的文件的路径信息path、过滤条件filter、执行条件condition等。
随后,调度器102可以将需要检查的规则传给数据解析器103,例如,可以将路径信息path传递给数据解析器103。数据解析器103解析路径信息path,并从对应的文件中提取待测试数据数据,返回给调度器102。
在一种实施方式中,获取数据分析器103确定的待测试数据以后,调度器102还用于:采用所述第一过滤条件,对所述待测试数据进行筛选,并将筛选得到的待测试数据以及所述执行条件发送至所述用例执行器。
调度器对测试用例进行解析后,如果测试用例中包括第一过滤条件的字段,则调度器102可以根据第一过滤条件对待测试数据进行过滤筛选,并将过滤后得到的待测试数据和测试用例中满足的执行条件condition,发送给用例执行器104。如果测试用例中不包括第一过滤条件,则调度器102可以直接将待测试数据数据和测试用例中满足的执行条件condition,发送给用例执行器104。在一种优选实施方式中,调度器102还用于接收用例执行器104发送的测试结果。
在具体实现中,用例执行器104接收到待测试数据以及condition以后,可以调用具体的逻辑判断方法或者用户自定义检查方法执行检查,向调度器102返回测试结果。
作为一种示例,该测试结果可以包括正确结果(TRUE)或者错误结果(FALSE)。
当该测试结果为正确结果时,则可以继续执行下一测试用例。
当所述测试结果为错误结果时,在一种实施方式中,调度器102还用于根据所述错误结果生成出错提示信息,并展示所述出错提示信息。
作为一种示例,该出错提示信息可以包括但不限于:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件,等等。
在具体实现中,如图3出错提示示意图所示,该出错提示信息可以以消息通知格式通知用户,详细输出出错的数据的出错描述(即检查类型)、出错文件名称和路径、出错节点、出错数据、检查条件(即执行条件)等信息。
所述数字解析器103,用于根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据。
在本发明实施例中,数字解析器103可以根据路径信息,匹配该路径信息对应的待测试数据。
在本发明实施例的一种优选实施例中,数据解析器103进一步用于
根据所述文件路径,确定对应的数据读写方式;采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;按照所述数据路径从所述文件数据中确定待测试数据,并将所述待测试数据发送至调度器中。
在具体实现中,数据解析器103可以根据文件路径中的文件名称的后缀,确定对应的数据读写方式。
作为一种示例,本发明实施例可以支持txt、csv、py、json、xls等数据结构,并提供了对其它格式支持的扩展方法。其中,每种数据结构采用对应的数据读写方式,例如,xml格式的数据采用xml的读写方式,json格式的数据采用json读写方式等。
数据解析器103确定数据读写方式以后,可以根据该数据读写方式,从磁盘中读取对应的文件数据,并根据数据读写方式,将该文件数据存入内存缓存中。当下次需要用到该文件的内容时,就不需要从磁盘通过IO读写,而是直接从内存中取出即可,因此同一个文件通过内存缓存,只需要一次IO读写,下次从内存取出即可,从而提高整个测试运行的速度。
确定文件数据以后,数据解析器103可以按照数据路径的关键字,从文件数据中确定对应的待测试数据。随后,数据解析器103可以将该待测试数据直接发送至调度器102。
在具体实现中,数据解析器103获得路径信息以后,可以首先判断该路径信息中是否包含第二过滤条件。在一种实施方式中,数据解析器103还可以用于:按照指定的字符,对所述数据路径进行划分,得到关键字组;针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
在具体实现中,数据解析器103可以对路径信息中的数据路径进行分割,具体的,可以根据数据路径中的指定的字符(例如“/”与“.”等分隔符),将数据路径进行分割,得到一个包含多个关键词的关键字组。遍历关键字组中的关键字,判断每个关键字是否含有符合预设判断规则的第二过滤条件,例如,第二过滤条件可以是“d=3”、“combat_item_id”等。
如果关键词中包括第二过滤条件,则数据解析器103可以根据第二过滤条件对文件数据进行过滤筛选,得到待测试数据,并将待测试数据发送至调度器102,以及将待测试数据存入内存中。在本发明实施例中,数据解析器103可以自动适配不同类型的数据,确定对应的数据读写方式,使得本发明实施例中测试用例的执行与数据类型无关,提高了本发明实施例的适用范围,使得本发明实施例可以适用于各种类型的数据测试。
所述用例执行器104,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
具体的,用例执行器104接收到执行条件以及待测试数据以后,可以对执行条件进行解析,确定指定的调用方法以及该调用方法对应的指定数值。例如,可以调用具体的逻辑判断方法或者用户自定义检查方法,采用该调用方法对应的指定数值对待测试数据进行测试检查,得到测试结果。
例如,若执行条件为[“大于”,1]时,那么指定的调用方法为“大于”对应的方法,调用方法对应的指定数值为数值1,然后将待测试数据与执行条件中的数字1进行比较,得出测试结果,若待测试数据大于数值1,则测试结果为正确结果;若待测试数据小于或等于数值1,则测试结果为错误结果。
在本发明实施例中,由用例管理器、调度器、数据解析器以及用例执行器组成的软件测试***,用户可以通过用例管理器配置测试用例的组织形式和描述格式,调度器可以根据用例管理器中的测试用例,调度数据解析器以及用例执行器的运行,则在测试过程中,可以根据路径信息,确定数据读写方式,并按照数据读写方式从路径信息对应的存储路径中获取待测试数据,随后按照执行条件,对待测试数据进行测试,获得测试结果。本发明实施例由于可以自动适配不同的数据读写方式,可以覆盖软件测试中大部分类型的数据测试,并且不会因为软件的实现和软件的类型而变化。
参照图4,示出了本发明实施例的一种软件测试方法实施例的步骤流程图,该软件测试方法可以应用在上述软件测试***中,具体可以包括如下步骤:
步骤401,确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息以及执行条件,所述路径信息包括关键字信息;
步骤402,针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
步骤403,采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
在本发明实施例的一种优选实施例中,所述测试结果包括错误结果,所述方法还包括:
根据所述错误结果生成出错提示信息;
展示所述出错提示信息。
在本发明实施例的一种优选实施例中,所述出错提示信息包括但不限于:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
在本发明实施例的一种优选实施例中,所述描述字段还包括第一过滤条件,在步骤403之前,本发明实施例还可以包括如下步骤:
采用所述第一过滤条件,对所述待测试数据进行筛选。
在本发明实施例的一种优选实施例中,所述路径信息包括文件路径以及数据路径;所述步骤402进一步可以包括如下子步骤:
子步骤S11,根据所述文件路径,确定对应的数据读写方式;
子步骤S12,采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
子步骤S13,按照所述数据路径从所述文件数据中确定待测试数据。
在本发明实施例的一种优选实施例中,所述描述字段还包括第二过滤条件,所述第二过滤条件包含在所述路径信息中,所述子步骤S13进一步可以包括如下子步骤:
子步骤S131,按照指定的字符,对所述数据路径进行划分,得到关键字组;
子步骤S132,针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
子步骤S133,根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
在本发明实施例的一种优选实施例中,所述执行条件包括但不限于:指定的调用方法以及所述调用方法对应的指定数值。
具体的,在一种实施方式中,以下对本发明实施例进行整体性的具体说明:
1)描述用例,用户使用同一的格式描述一条测试用例,例如,使用k-v的字典形式描述测试用例,所有的测试用例形成一个测试用例集,其中,每个测试用例包括:用例描述name、路径信息path、过滤条件filter(过滤器)、执行条件condition等,进一步的,该路径信息path包括文件路径以及数据路径,且该数据路径可以包括第二过滤条件;
2)根据上述文件路径,定位对应的文件数据,并确定该文件数据对应的数据读写方式,根据该数据读写方式,将该文件数据从磁盘读入到内存中;
3)对数据路径进行解析,判断数据路径是否包括第二过滤条件;
4)在文件数据中匹配该第二过滤条件对应的数据,以从文件数据中筛选出待测试数据;
5)判断测试用例中是否包含独立于路径信息的第一过滤条件;如果包含第一过滤条件,则按照第一过滤条件对该待测试数据进行过滤后执行6),如果不包含第一过滤条件,则直接执行6);
6)解析测试用例的执行条件condition,调用该执行条件condition对应的调用方法以及该调用方法对应的数值,对该待测试数据进行比对,得到测试结果;如果测试结果为正确结果True,则接着读取下一条数据;如果测试结果为错误结果False,则执行步骤7);
7)生成出错提示信息,具体是根据测试用例和错误结果生成对应的通知消息,详细输出出错的数据所在的文件名,数据的路径,具体的出错值,出错提示等信息。
在本发明实施例中,用户可以根据预定的描述格式描述测试用例,其中每个测试用例可以包括包含关键字信息的路径信息,以及执行条件。针对每个测试用例,本发明实施例可以根据该路径信息确定对应的数据读写方式,使得本发明实施例可以适用于各种数据类型的数据测试,并且这种测试不会因为软件的实现和软件的类型而变化,提高自动化测试的适用范围。
另外,在本发明实施例中,路径信息可以包括关键字信息,可以根据该关键字信息对数据进行筛选,得到待测数据。当由于软件的需求和代码的实现逻辑需要更新软件对应的数据时,只需要更新该路径信息对应的关键字信息,无需对软件数据的测试脚本和工具进行维护和更新,节省了更新和维护成本。
进一步的,由于该路径信息包含关键字信息,在按照关键字信息对数据进行过滤后,可以减少了需要测试的数据量,从而提高了数据测试的效率。
并且该关键字信息可以由用户自定义,使得待测数据更加符合用户的个性化需求,提高了测试的精准度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明实施例的一种软件测试装置实施例的结构框图,具体可以包括如下模块:
测试用例确定模块501,用于确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息以及执行条件,所述路径信息包括关键字信息;
待测试数据确定模块502,用于针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
测试模块503,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
在本发明实施例的一种优选实施例中,所述测试结果包括错误结果,所述装置还可以包括如下模块:
出错提示模块,用于根据所述错误结果生成出错提示信息,并展示所述出错提示信息。
在本发明实施例的一种优选实施例中,所述出错提示信息包括但不限于:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
在本发明实施例的一种优选实施例中,所述描述字段还包括第一过滤条件,所述装置还可以包括如下模块:
过滤模块,用于采用所述第一过滤条件,对所述待测试数据进行筛选。
在本发明实施例的一种优选实施例中,所述路径信息包括文件路径以及数据路径;所述待测试数据确定模块502可以包括如下子模块:
读写方式确定子模块,用于根据所述文件路径,确定对应的数据读写方式;
数据写入子模块,用于采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
待测试数据确定子模块,用于按照所述数据路径从所述文件数据中确定待测试数据。
在本发明实施例的一种优选实施例中,所述描述字段还包括第二过滤条件,所述第二过滤条件包含在所述路径信息中,所述待测试数据确定子模块可以包括如下单元:
数据拆分单元,用于按照指定的字符,对所述数据路径进行划分,得到关键字组;
数据判断单元,用于针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
数据过滤单元,用于根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
在本发明实施例的一种优选实施例中,所述执行条件包括但不限于:指定的调用方法以及所述调用方法对应的指定数值。
对于装置实施例而言,由于其与上述***及方法实施例基本相似,所以描述的比较简单,相关之处参见***及方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种软件测试方法、装置及***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种软件测试***,其特征在于,包括:
用例管理器,用于确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息和执行条件,所述路径信息包括文件路径以及数据路径,所述数据路径包括关键字信息,第二过滤条件包含在所述路径信息中;
调度器,用于读取所述用例管理器中的测试用例,并将所述路径信息发送至数据解析器,以及,获取所述数据解析器根据所述路径信息确定的待测试数据,并将所述待测试数据以及所述执行条件发送至用例执行器;
数字解析器,用于根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
所述数据解析器还用于:根据所述文件路径,确定对应的数据读写方式;采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;按照指定的字符,对所述数据路径进行划分,得到关键字组;针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据,并将所述待测试数据发送至调度器中;
用例执行器,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果。
2.根据权利要求1所述的***,其特征在于,所述调度器还用于:
接收所述用例执行器发送的测试结果,其中,所述测试结果包括错误结果;
根据所述错误结果生成出错提示信息;
展示所述出错提示信息。
3.根据权利要求2所述的***,其特征在于,所述出错提示信息包括以下中的至少一种:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
4.根据权利要求1-3任一项所述的***,其特征在于,所述描述字段还包括第一过滤条件,所述调度器还用于:
采用所述第一过滤条件,对所述待测试数据进行筛选,并将筛选得到的待测试数据以及所述执行条件发送至所述用例执行器。
5.根据权利要求1-3任一项所述的***,其特征在于,所述执行条件包括:指定的调用方法以及所述调用方法对应的指定数值。
6.一种软件测试方法,其特征在于,所述方法包括:
确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息和执行条件,所述路径信息包括文件路径以及数据路径,所述数据路径包括关键字信息,第二过滤条件包含在所述路径信息中;
针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
采用所述执行条件,对所述待测试数据进行测试,获得测试结果;
其中,所述采用所述数据读写方式,根据所述路径信息确定待测试数据,包括:
根据所述文件路径,确定对应的数据读写方式;
采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
按照指定的字符,对所述数据路径进行划分,得到关键字组;
针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
7.根据权利要求6所述的方法,其特征在于,所述测试结果包括错误结果,所述方法还包括:
根据所述错误结果生成出错提示信息;
展示所述出错提示信息。
8.根据权利要求7所述的方法,其特征在于,所述出错提示信息包括以下中的至少一种:出错的数据所在的文件名称、出错的路径信息、出错值、出错描述、执行条件。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述描述字段还包括第一过滤条件,在所述采用所述执行条件,对所述待测试数据进行测试,获得测试结果之前,还包括:
采用所述第一过滤条件,对所述待测试数据进行筛选。
10.根据权利要求6-8任一项所述的方法,其特征在于,所述执行条件包括:指定的调用方法以及所述调用方法对应的指定数值。
11.一种软件测试装置,其特征在于,所述装置包括:
测试用例确定模块,用于确定测试用例的组织形式和描述格式,其中,所述描述格式包括多个描述字段,所述描述字段包括路径信息和执行条件,所述路径信息包括文件路径以及数据路径,所述数据路径包括关键字信息,第二过滤条件包含在所述路径信息中;
待测试数据确定模块,用于针对所述测试用例,根据所述路径信息,确定数据读写方式,并采用所述数据读写方式,根据所述路径信息确定待测试数据;
测试模块,用于采用所述执行条件,对所述待测试数据进行测试,获得测试结果;
其中,所述待测试数据确定模块包括如下子模块:
读写方式确定子模块,用于根据所述文件路径,确定对应的数据读写方式;
数据写入子模块,用于采用所述数据读写方式,从磁盘中读取对应的文件数据,并将所述文件数据存入内存缓存中;
待测试数据确定子模块,用于按照所述数据路径从所述文件数据中确定待测试数据;
所述待测试数据确定子模块包括如下单元:
数据拆分单元,用于按照指定的字符,对所述数据路径进行划分,得到关键字组;
数据判断单元,用于针对所述关键字组中的每个关键字,判断所述关键字是否存在符合预设判断规则的第二过滤条件;
数据过滤单元,用于根据所述第二过滤条件,从所述文件数据中筛选出对应的待测试数据。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求6-10一个或多个的一种软件测试方法。
13.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求6-10一个或多个的一种软件测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810549985.1A CN108829590B (zh) | 2018-05-31 | 2018-05-31 | 一种软件测试方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810549985.1A CN108829590B (zh) | 2018-05-31 | 2018-05-31 | 一种软件测试方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108829590A CN108829590A (zh) | 2018-11-16 |
CN108829590B true CN108829590B (zh) | 2021-11-16 |
Family
ID=64145804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810549985.1A Active CN108829590B (zh) | 2018-05-31 | 2018-05-31 | 一种软件测试方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829590B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096428A (zh) * | 2019-03-18 | 2019-08-06 | 平安普惠企业管理有限公司 | 智能测试脚本运行前数据筛选的方法及装置、电子设备 |
CN112597742A (zh) * | 2020-12-02 | 2021-04-02 | 长春光华微电子设备工程中心有限公司 | 晶圆探针台自定义测试路径实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174240A (zh) * | 2006-11-03 | 2008-05-07 | 凌阳科技股份有限公司 | 一种软件测试管理方法及其*** |
CN104598376A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院计算机网络信息中心 | 一种数据驱动的分层自动化测试***和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108535B2 (en) * | 2016-07-08 | 2018-10-23 | Accenture Global Solutions Limited | Web application test script generation to test software functionality |
-
2018
- 2018-05-31 CN CN201810549985.1A patent/CN108829590B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174240A (zh) * | 2006-11-03 | 2008-05-07 | 凌阳科技股份有限公司 | 一种软件测试管理方法及其*** |
CN104598376A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院计算机网络信息中心 | 一种数据驱动的分层自动化测试***和方法 |
Non-Patent Citations (2)
Title |
---|
Towards adaptive framework of keyword driven automation testing;Jingfan Tang等;《2008 IEEE International Conference on Automation and Logistics》;20080930;1631-1636 * |
基于Web的测试用例管理及生成***;陈颖超;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415;I138-335 * |
Also Published As
Publication number | Publication date |
---|---|
CN108829590A (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984389B (zh) | 一种应用程序测试方法及终端设备 | |
CN105446874B (zh) | 一种资源配置文件的检测方法和装置 | |
US9322872B2 (en) | Correlated testing system | |
CN114546738B (zh) | 服务器通用测试方法、***、终端及存储介质 | |
CN111338692B (zh) | 基于漏洞代码的漏洞分类方法、装置及电子设备 | |
US10664644B1 (en) | Method and apparatus for schematic verification of electronic circuits | |
US20100131472A1 (en) | Detection and utilzation of inter-module dependencies | |
CN112052172A (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN114116496A (zh) | 自动化测试方法、装置、设备及介质 | |
CN108829590B (zh) | 一种软件测试方法、装置及*** | |
CN114461534A (zh) | 软件性能测试方法、***、电子设备及可读存储介质 | |
US10042638B2 (en) | Evaluating documentation coverage | |
CN116541270B (zh) | 一种操作***的适配验证测试方法及装置 | |
CN109376285B (zh) | 基于json格式的数据排序验证方法、电子设备及介质 | |
CN116662197A (zh) | 一种接口自动化测试方法、***、计算机和可读存储介质 | |
CN116016270A (zh) | 一种交换机测试管理方法、装置、电子设备和存储介质 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN114064510A (zh) | 功能测试方法、装置、电子设备和存储介质 | |
CN110618943B (zh) | 安防服务测试方法、装置、电子设备及可读存储介质 | |
CN110442370B (zh) | 一种测试用例查询方法及装置 | |
CN112650679B (zh) | 一种测试校验方法、装置及计算机*** | |
CN110661678B (zh) | 一种异常监控方法和装置 | |
CN117873878A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN117033208A (zh) | 接口契约检查方法、装置、电子设备及存储介质 | |
CN118035065A (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 |