CN107247665A - 一种c接口函数的测试方法及系统 - Google Patents

一种c接口函数的测试方法及系统 Download PDF

Info

Publication number
CN107247665A
CN107247665A CN201710352233.1A CN201710352233A CN107247665A CN 107247665 A CN107247665 A CN 107247665A CN 201710352233 A CN201710352233 A CN 201710352233A CN 107247665 A CN107247665 A CN 107247665A
Authority
CN
China
Prior art keywords
function
interface function
current
interface
parameters
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.)
Granted
Application number
CN201710352233.1A
Other languages
English (en)
Other versions
CN107247665B (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 Infosec Technologies Co Ltd
Original Assignee
Beijing Infosec Technologies 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 Infosec Technologies Co Ltd filed Critical Beijing Infosec Technologies Co Ltd
Priority to CN201710352233.1A priority Critical patent/CN107247665B/zh
Publication of CN107247665A publication Critical patent/CN107247665A/zh
Application granted granted Critical
Publication of CN107247665B publication Critical patent/CN107247665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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

本发明公开了一种C接口函数的测试方法及系统,用以解决现有技术中存在的测试效率和测试精度较低的问题。该方法为:测试系统确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:从所有C接口函数中选取一个C接口函数作为当前C接口函数;获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;将返回值与预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过。通过测试系统依次选取当前C接口函数进行测试,实现了对测试产品的所有C接口函数的自动化测试,避免了人工测试带来的漏测、测试结果不准确等问题。

Description

一种C接口函数的测试方法及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种C接口函数的测试方法及系统。
背景技术
随着计算机技术的不断发展,各个平台产品应运而生,在实际应用中,主要包括Windox32、Windox64、Linux32、Linux64、AIX32和AIX64等6个平台产品,为了保证平台产品的正常运行,提高用户体验,平台产品的测试就成为一个重要环节,其中,C接口函数测试是平台产品测试的重要组成部分。
现有技术中,通常采用人工测试方式对C接口函数进行测试,以保证C接口函数的可用性,这种人工测试C接口函数的方式,虽然在一定程度上能够实现对C接口函数的测试,但是,由于各个平台产品包含的C接口不尽相同,而且,为了满足使用需求,每个平台产品可能存在不同的版本,而每个版本的C接口函数的数目一般在70-80个不等,这就使得测试C接口函数的工作量较大,在此情况下,通过人工测试C接口函数,不仅耗费了大量的人力资源,而且测试效率和测试精度也比较低。
发明内容
本发明实施例提供了一种接口函数的测试方法及系统,用以解决现有技术中的接口函数测试方法存在人力资源消耗量大,以及测试效率和测试精度较低的问题。
本发明实施例提供的具体技术方案如下:
一种C接口函数的测试方法,包括:
测试系统确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
较佳的,从所有C接口函数中选取一个C接口函数作为当前C接口函数之后,获取当前C接口函数的各个参数之前,进一步包括:
测试系统判断预先建立的注册函数数据库中是否存在当前C接口函数的函数说明,并在确定注册函数数据库中存在当前C接口函数的函数说明的情况下,认定当前C接口函数已注册。
较佳的,测试系统获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,包括:
测试系统从预先建立的测试数据信息库中,获取当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
测试系统将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
较佳的,测试系统分别为获得的各个参数分配存储空间,包括:
测试系统获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
测试系统按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
较佳的,测试系统按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间,包括:
测试系统针对各个参数,若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
较佳的,还包括:测试系统若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
较佳的,测试系统将获得的各个参数提供给当前C接口函数,包括:
测试系统从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将各个参数提供给当前C接口函数。
较佳的,进一步包括:测试系统确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
一种C接口函数的测试系统,包括:执行模块,其中,执行模块用于:
确定满足预设的测试条件的情况下,确定待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
较佳的,上述测试系统还包括:注册模块,其中,注册模块用于:
判断预先建立的注册函数数据库中是否存在当前C接口函数的函数说明,并在确定注册函数数据库中存在当前C接口函数的函数说明的情况下,认定当前C接口函数已注册。
较佳的,获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数时,执行模块具体用于:
从预先建立的测试数据信息库中,获取当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
较佳的,分别为获得的各个参数分配存储空间时,执行模块具体用于:
获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
较佳的,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间时,执行模块具体用于:
针对各个参数,若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
较佳的,上述测试系统还包括:释放模块,其中,释放模块用于:若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
较佳的,将获得的各个参数提供给当前C接口函数时,执行模块具体用于:
从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将各个参数提供给当前C接口函数。
较佳的,上述测试系统还包括:统计模块,其中,统计模块用于:
确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
一种电子设备,包括:存储器,以及至少一个处理器,其中,
存储器,用于存储上述至少一个处理器执行的程序指令;
上述至少一个处理器,用于调用所述存储器中存储的所述程序指令,按照获得的所述程序指令执行:确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
较佳的,从所有C接口函数中选取一个C接口函数作为当前C接口函数之后,获取当前C接口函数的各个参数之前,上述程序指令进一步设置为:
判断预先建立的注册函数数据库中是否存在当前C接口函数的函数说明,并在确定注册函数数据库中存在当前C接口函数的函数说明的情况下,认定当前C接口函数已注册。
较佳的,获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数时,上述程序指令设置为:
从预先建立的测试数据信息库中,获取当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
较佳的,分别为获得的各个参数分配存储空间时,上述程序指令设置为:
获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
较佳的,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间时,上述程序指令设置为:
针对各个参数,若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
较佳的,上述程序指令还可以设置为:若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
较佳的,将获得的各个参数提供给当前C接口函数时,上述程序指令设置为:
从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将各个参数提供给当前C接口函数。
较佳的,上述程序指令进一步设置为:确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
一种非易失性计算机存储介质,存储有计算机可执行指令,上述计算机可执行指令用于:在确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
较佳的,从所有C接口函数中选取一个C接口函数作为当前C接口函数之后,获取当前C接口函数的各个参数之前,上述计算机可执行指令进一步用于:
判断预先建立的注册函数数据库中是否存在当前C接口函数的函数说明,并在确定注册函数数据库中存在当前C接口函数的函数说明的情况下,认定当前C接口函数已注册。
较佳的,获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数时,上述计算机可执行指令用于:
从预先建立的测试数据信息库中,获取当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
较佳的,分别为获得的各个参数分配存储空间时,上述计算机可执行指令用于:
获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
较佳的,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间时,上述计算机可执行指令用于:
针对各个参数,若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
较佳的,上述计算机可执行指令还用于:若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
较佳的,将获得的各个参数提供给当前C接口函数时,上述计算机可执行指令用于:
从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将各个参数提供给当前C接口函数。
较佳的,上述计算机可执行指令还用于:确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
本发明实施例的有益效果如下:
本发明实施例中,通过测试系统依次将待测试的各个C接口函数作为当前C接口函数进行测试,能够实现对测试产品包含的所有C接口函数的自动化测试,避免了人工测试带来的漏测、测试结果不准确等问题,还节省了人力资源,提高了测试效率。
附图说明
图1为本发明实施例一中C接口函数的测试方法的概况示意图;
图2A和图2B为本发明实施例二中C接口函数的测试方法的具体流程示意图;
图3为本发明实施例三中C接口函数的测试系统的功能结构示意图;
图4为本发明实施例四中用于执行C接口函数的测试方法的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中在对C接口函数进行测试时存在的人力资源消耗量大,以及测试效率和测试精度较低的问题,本发明实施例中,测试系统确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,针对每一个C接口函数,获取该C接口函数的各个参数,并将获得的各个参数提供给该C接口函数,获取到该C接口函数的返回值后,将获得的返回值与该C接口函数的预期值进行匹配,若匹配成功,则认定该C接口函数测试通过;若匹配失败,则认定该C接口函数测试不通过。通过上述自动化测试方式对各个C接口函数进行测试,不仅节省了人力资源,还提高了测试效率和测试精度。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
实施例一
参阅图1所示,本发明实施例一中,C接口函数的测试方法的流程如下:
步骤100:测试系统确定满足预设的测试条件的情况下,确定待测试的所有C接口函数,并循环执行以下操作(即循环执行步骤101-步骤104),直至所有C接口函数测试完毕为止。
在实际应用中,为了保证C接口函数测试的顺利进行,在执行步骤100之前,可以执行如下操作:
操作1:设置基本信息。
(1)运行属性设置,其中,运行属性表征该C接口函数是否需要测试,具体地,可以用“on”表示运行,用“off”表示不运行。
(2)绝对路径设置,具体包括:动态数据库的绝对路径(其中,该动态数据库包含所有C接口函数的函数入口地址),测试结果文件的存储绝对路径,等等。比如:测试结果文件的存储绝对路径设置为:F://Debug//ResultLog.txt;动态数据库的绝对路径设置为:F://Debug//librenhangapi.dll。
操作2:自定义参数类型。
在具体实施时,可以根据不同的应用场景和使用需求,设置不同的参数类型定义规则,以实现参数类型的自定义。较佳的,参数类型定义规则可以是但不限于:将可直接输入C接口函数的一类参数定义为输入类型参数,将引用其他参数的一类参数定义为全局类型参数,将引用其它C接口函数的输出参数的一类参数定义为引用类型参数,将承载C接口函数的输出结果的参数定义为输出类型参数,等等。这样,即可自定义出四种参数类型,该四种参数类型分别为:输入类型、引用类型、全局类型和输出类型。利用上述参数类型定义规则,即可针对C接口函数的各个参数的参数类型进行自定义,即将C接口函数的各个参数均归类于上述四种参数类型。
操作3:建立注册函数数据库。
在具体实施时,该注册函数数据库可以以注册函数可扩展标记语言(eXtensibleMarkup Language,XML)文件的形式存在,较佳的,可以将测试产品的所有C接口函数的函数说明全部编写在该注册函数XML文件中,其中,一个C接口函数的函数说明可以包括但不限于该C接口函数的函数名称,形式参数名称,形式参数类型,以及函数返回类型等。通过配置该注册函数XML文件,即可实现对测试产品包含的所有C接口函数的注册,以便后续在测试过程中能够调用测试产品包含的各个C接口函数。
操作4:建立测试数据信息库。
在具体实施时,该测试数据信息库可以以测试数据XML文件的形式存在,较佳的,可以将测试过程中使用的所有测试信息全部编写在该测试数据XML文件中,具体包括两类测试信息,一类测试信息是C接口函数的函数名称;另一类测试信息是C接口函数的数据信息,即各个C接口函数的运行属性,各个C接口函数对应的各个参数的参数名称、按照配置的参数类型定义规则为各个参数定义的参数类型,各个C接口函数的输出空间预测值(其中,C接口函数输出空间预测值可以根据该C接口函数的各个参数占用空间之和的4/3来确定,也可以根据C接口函数定义的输出结果的实际占用空间来确定),各个C接口函数的预期值以及预期值与返回值的匹配方式,等等。通过配置该测试数据XML文件,后续在对测试产品包含的各个C接口函数进行测试的过程中,可以根据该测试数据XML文件获取C接口函数的测试信息。
进一步地,在完成上述操作后,测试系统在确定满足预设的测试条件的情况下,即可执行C接口函数的测试流程,具体地,测试系统可以在确定到达预设的测试周期的情况下,认定预设的测试条件,也可以在接收到接口函数测试指令的情况下,认定预设的测试条件,在此不作具体限定。较佳的,测试系统在确定满足预设的测试条件的情况下,确定待测试的所有C接口函数时,可以采用但不限于以下方式:
测试系统从预先配置的测试数据信息库(即测试数据XML文件)中获取测试信息,每获取到一条测试信息的情况下,若确定获得的测试信息是C接口函数的函数名称,则将获得的该函数名称加入至执行队列,若确定获得的测试信息是C接口函数的数据信息,则将获得的该数据信息加入至数据队列,直至测试数据信息库(即测试数据XML文件)中的所有测试信息获取完毕为止,从而获得了两个队列,一个是执行队列,一个是数据队列,这样,测试系统在确定满足预设的测试条件的情况下,即可根据执行队列中的各个C接口函数的函数名称,确定出待测试的所有C接口函数,后续在测试各个C接口函数的过程中,即可从数据队列中获取C接口函数的数据信息。进一步地,测试系统在确定出待测试的所有C接口函数之后,即可循环执行步骤101-步骤104。
步骤101:从所有C接口函数中选取一个C接口函数作为当前C接口函数。
在具体实施时,可以按照执行队列中的C接口函数的排列顺序依次选取一个C接口函数作为当前C接口函数。
步骤102:获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值。
较佳的,为了确保能够调用当前C接口函数,在执行步骤102之前,测试系统可以先判断预先建立的注册函数数据库(即注册函数XML文件)中是否存在当前C接口函数的函数说明,具体的,可能存在以下两种情况:
第一种情况:注册函数数据库(即注册函数XML文件)中不存在当前C接口函数的函数说明。在此情况下,测试系统可以认定当前C接口函数未注册,无法调用当前C接口函数,此时,可以直接结束对当前C接口函数的测试,并从执行队列中选取下一个C接口函数作为当前C接口函数进行测试。
例如:假设执行队列为:C接口函数1、C接口函数2……C接口函数N。
测试系统从执行队列中选取C接口函数1作为当前C接口函数,若注册函数XML文件中不存在C接口函数1的函数说明,则认定C接口函数1未注册,此时,将无法调用C接口函数1,可以直接结束对C接口函数1的测试,并从执行队列中选取C接口函数2作为当前C接口函数进行测试。
第二种情况:注册函数数据库(即注册函数XML文件)中存在当前C接口函数的函数说明。在此情况下,测试系统可以认定当前C接口函数已注册,可以调用当前C接口函数。此时,可以继续获取当前C接口函数的各个参数,具体地,可以从根据测试数据信息库(即测试数据XML文件)获得的数据队列中,获取当前C接口函数的各个参数。
例如:假设执行队列为:C接口函数1、C接口函数2……C接口函数N。
测试系统从执行队列中选取C接口函数1作为当前C接口函数,若注册函数XML文件中存在C接口函数1的函数说明,则认定C接口函数1已注册,此时,可以从数据队列中,获取C接口函数1的各个参数。
进一步地,测试系统获取到当前C接口函数的各个参数后,在将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值时,可以采用但不限于以下方式:
首先,测试系统分别为获得的各个参数分配存储空间。较佳的,在分别为各个参数分配存储空间时,可以采用但不限于以下方式:测试系统获取各个参数的参数类型,并按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。具体地,测试系统可以针对各个参数分别执行以下操作,以便为各个参数分配存储空间:若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
然后,测试系统将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。较佳的,测试系统在将存储在各自对应的存储空间中的各个参数供给当前C接口函数时,可以采用但不限于以下方式:测试系统通过调用应用程序接口(Application Programming Interface,API),从预先加载的包含所有C接口函数的函数入口地址的动态数据库中(其中,动态数据库可以根据预先配置的动态数据库的绝对路径进行加载),获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
最后,获取当前C接口函数输出的返回值。
例如:假设当前C接口函数为C接口函数1,C接口函数1有3个参数,分别为参数1、参数2和参数3,其中,从数据队列中获得的参数1的参数类型为输入类型,参数2的参数类型为引用类型,参数3的参数类型为输出参数。
测试系统针对参数1(参数类型为输入类型),可根据参数类型与存储空间大小之间的关联关系,确定出参数1的存储空间大小为6Byte后,为参数1分配6Byte的存储空间1,并将参数1存储至6Byte的存储空间1中。
测试系统针对参数2(参数类型为引用类型),可根据参数类型与存储空间大小之间的关联关系,确定出参数2的存储空间大小为12Byte后,为参数2分配12Byte的存储空间2,并将参数2存储至12Byte的存储空间2中。
测试系统针对参数3(参数类型为输出类型),从数据队列中获取到C接口函数1的输出空间预测值为2048Byte后,为参数3分配2048Byte的存储空间3,并将参数3存储至2048Byte的存储空间3中。其中,若数据队列中存在C接口函数1定义的输出结果的实际占用空间,则可直接将C接口函数1定义的输出结果的实际占用空间作为输出空间预测值;若数据队列中不存在C接口函数1定义的输出结果的实际占用空间,则可以将C接口函数1的各个参数占用空间之和的4/3作为输出空间预测值。
测试系统通过调用API,从动态数据库中获取C接口函数1的函数入口地址,并基于获得的C接口函数1的函数入口地址,将存储在存储空间1的参数1、存储在存储空间2的参数2和存储在存储空间3的参数3提供给C接口函数1,获取C接口函数1输出的返回值。
步骤103:将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过。
例如:假设C接口函数1的返回值为208,C接口函数1的预期值为208,此时,返回值208与预期值208一致,可以认定C接口函数1测试通过。
又如:假设C接口函数1的返回值为1027,C接口函数1的预期值为1024,此时,返回值1027与预期值1024不一致,可以认定C接口函数1测试不通过。
步骤104:确定当前C接口函数测试完毕。
值得说的是,测试系统在确定当前C接口函数测试完毕后,可以从执行队列中选取下一个C接口函数作为当前C接口函数进行测试,直至所有C接口函数测试完毕为止。较佳的,为了节省存储空间,测试系统在确定满足预设的空间释放条件的情况下,可以释放为各个参数分配的存储空间。具体地,测试系统可以在确定所有C接口函数测试完毕的情况下,认定满足预设的空间释放条件,此时,即可释放为各个参数分配的存储空间。
进一步地,为了能够获取测试产品包含的各个C接口函数的测试情况,测试系统可以在确定测试产品包含的所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。较佳的,该测试结果文件可以包括但不限于:基于测试通过的C接口函数的数目和函数名称生成的测试通过文件,以及基于测试不通过的C接口函数的数目和函数名称生成的测试不通过文件,等等。
实施例二
在实际应用中,测试系统在对测试产品包含的各个C接口函数进行测试的过程中,还可以针对不同情况下的C接口函数进行测试,以实现C接口函数的全方位测试,保证测试产品的可靠性。下面针对测试产品包含的各个C接口函数的全方位测试作进一步详细说明,参阅图2A和图2B所示,本发明实施例二中,C接口函数的测试方法的具体流程如下:
步骤200:设置基本信息,自定义参数类型,并在测试系统中配置注册函数XML文件和测试数据XML文件。
具体地,在设置基本信息时,主要包括以下三类基本信息:
(1)基本属性设置,包括但不限于:
A、功能属性设置,具体包括:测试产品包含的各个产品功能的产品功能名称,各个产品功能包含的C接口函数的数目以及各个C接口函数的函数名称(其中,一个C接口函数包含一个或多个测试用例),各个产品功能包含的测试用例的数目以及各个测试用例的测试用例名称,等等。
B、测试用例属性设置,具体包括:各个测试用例的测试用例名称,各个测试用例包含的测试情况的数目以及各个测试情况的测试情况名称,等等。
C、测试情况属性设置,具体包括:各个测试情况的测试情况名称,各个测试情况对应的C接口函数的函数名称、C接口函数的参数数目、返回类型和返回值,等等。
(2)运行属性设置,包括但不限于:
产品功能的运行属性,C接口函数的运行属性,测试用例的运行属性,测试情况的运行属性,等等。较佳的,可以用“on”表示运行,用“off”表示不运行。
(3)绝对路径设置,包括但不限于:
动态数据库的绝对路径(其中,该动态数据库包含所有C接口函数的函数入口地址),测试结果文件的存储绝对路径,等等。
具体地,在自定义参数类型时,将可直接输入C接口函数的一类参数定义为输入类型参数,将引用其它参数的一类参数定义为全局类型参数,将引用其它C接口函数的输出参数的一类参数定义为引用类型参数,将承载C接口函数的输出结果的参数定义为输出类型参数,等等。这样,即可自定义出四种参数类型,该四种参数类型分别为:输入类型、引用类型、全局类型和输出类型。
具体地,在配置注册函数XML文件时,可以将测试产品的所有C接口函数的函数说明全部配置在该注册函数XML文件中,其中,一个C接口函数的函数说明可以包括但不限于该C接口函数的函数名称,形式参数名称,形式参数类型,以及函数返回类型等。
具体地,在配置测试数据XML文件时,可以将测试过程中使用的所有测试信息全部配置在该测试数据XML文件中,具体包括两类测试信息,一类测试信息是名称信息,即测试产品包含的各个产品功能的功能名称,产品功能包含的各个C接口函数的函数名称,C接口函数对应的各个测试用例的测试用例名称,测试用例包含的各种测试情况的测试情况名称,等等;另一类测试信息是数据信息,包括:(1)各个产品功能的运行属性,各个C接口函数的运行属性,各个测试用例的运行属性,各种测试情况的运行属性;(2)各个C接口函数在不同测试情况下的各个参数,按照配置的参数类型定义规则为各个参数定义的参数类型;(3)各个C接口函数在不同测试情况下的输出空间预测值(其中,输出空间预测值可以根据该C接口函数的各个参数占用空间之和的4/3来确定,也可以根据该C接口函数定义的输出结果的实际占用空间来确定),预期结果,以及预期值与返回值的匹配方式,等等。
步骤201:测试系统确定满足预设的测试条件的情况下,从预先配置的测试数据XML文件中获取测试信息,并基于获得的测试信息,获取执行队列和数据队列两个队列。
具体地,在基于获得的测试信息,生成执行队列和数据队列两个队列时,可以采用但不限于一下方式:每获取到一条测试信息的情况下,若获得的测试信息是名称信息,则将获得的该函名称信息加入至执行队列,若获得的测试信息是数据信息,则将获得的该数据信息加入至数据队列,直至测试数据XML文件中的所有测试信息获取完毕为止,从而获取到两个队列,即执行队列和数据队列。
步骤202:测试系统根据预先配置的动态数据库的绝对路径加载动态数据库,以便后续从加载的动态数据库中获取C接口函数的函数入口地址。
步骤203:测试系统将执行队列中的各个产品功能定义为Test Groupi,其中,i=1,2,3,……,N。
步骤204:测试系统令i=1。
步骤205:测试系统从数据队列中获取Test Groupi的运行属性,并根据TestGroupi的运行属性,判断Test Groupi是否需要测试,若是,则执行步骤207;若否,则执行步骤206。
步骤206:测试系统令i=i+1,返回步骤205。
步骤207:测试系统将Test Groupi下的各个C接口函数定义为Functionj,其中,j=1,2,3,……,M。
步骤208:测试系统令j=1。
步骤209:测试系统从数据队列中获取Functionj的运行属性,并根据Functionj的运行属性,判断Functionj是否需要测试,若是,则执行步骤211;若否,则执行步骤210。
步骤210:测试系统令j=j+1,返回步骤209。
步骤211:测试系统判断注册函数XML文件中是否存在Functionj的函数说明,若存在,则执行步骤213;若不存在,则执行步骤212。
步骤212:测试系统认定Functionj未注册,返回步骤210。
步骤213:测试系统认定Functionj已注册,并将Functionj下的各种测试情况定义为Testk,其中,k=1,2,3,……,L。
步骤214:测试系统令k=1。
步骤215:测试系统从数据队列中获取Testk的运行属性,并根据Testk的运行属性,判断Testk是否需要测试,若是,则执行步骤217;若否,则执行步骤216。
步骤216:测试系统令k=k+1,返回步骤215。
步骤217:测试系统判断数据队列中是否存在Functionj在测试情况Testk下的各个参数,若存在,则执行步骤218;若不存在,则返回步骤216。
步骤218:测试系统从数据队列中获取Functionj在测试情况Testk下的各个参数,并确定各个参数的参数类型。
步骤219:测试系统针对获得的各个参数,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间,并将各个参数存储至各自对应的存储空间中。
具体地,若参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
步骤220:测试系统通过测试产品的API,从预先加载的动态数据库中,获取Functionj的函数入口地址,并基于Functionj的函数入口地址,将存储在各自对应的存储空间中的各个参数提供给Functionj
步骤221:测试系统Functionj输出返回值。
步骤222:测试系统获取Functionj在测试情况Testh下的预期值。
步骤223:测试系统将返回值与预期值进行匹配,基于匹配结果确定Functionj对应的测试情况Testk是否测试通过,并返回步骤220,直至Functionj对应的所有测试情况Testk测试完毕为止。
具体地,在基于匹配结果确定Functionj对应的测试情况Testk是否测试通过时,可以在确定匹配成功的情况下,认定Functionj对应的测试情况Testk测试通过,在确定匹配失败的情况下,认定Functionj对应的测试情况Testk测试不通过。
步骤224:测试系统确定Functionj对应的所有测试情况Testk测试完毕,并返回步骤210,直至Test Groupi包含所有Functionj测试完毕为止。
步骤225:测试系统确定Test Groupi包含所有Functionj测试完毕,并返回步骤206,直至测试产品包含的所有Test Groupi测试完毕为止。
步骤226:测试系统确定测试产品包含的所有Test Groupi测试完毕的情况下,释放为各个参数分配的存储空间。
步骤227:测试系统统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称。
步骤228:测试系统基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
实施例三
基于上述实施例,参阅图3所示,本发明实施例三中,C接口函数的测试系统,至少包括:执行模块300,其中,执行模块300用于:确定满足预设的测试条件的情况下,确定待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
较佳的,C接口函数的测试系统还包括:注册模块301,其中,注册模块301用于:
判断预先建立的注册函数数据库中是否存在当前C接口函数的函数说明,并在确定注册函数数据库中存在当前C接口函数的函数说明的情况下,认定当前C接口函数已注册。
较佳的,获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数时,执行模块300具体用于:
从预先建立的测试数据信息库中,获取当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给当前C接口函数。
较佳的,分别为获得的各个参数分配存储空间时,执行模块300具体用于:
获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
较佳的,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间时,执行模块300具体用于:
针对各个参数,若参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定参数的存储空间大小,并按照确定出的存储空间大小,为参数分配存储空间;若参数的参数类型为输出类型,则获取当前C接口函数的输出空间预测值,并按照获得的输出空间预测值,为参数分配存储空间。
较佳的,C接口函数的测试系统还包括:释放模块302,其中,释放模块302用于:若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
较佳的,将获得的各个参数提供给当前C接口函数时,执行模块300具体用于:
从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取当前C接口函数的函数入口地址,并基于获得的当前C接口函数的函数入口地址,将各个参数提供给当前C接口函数。
较佳的,C接口函数的测试系统还包括:统计模块303,其中,统计模块303用于:
确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
实施例四
本发明实施例四提供了一种电子设备,该电子设备具体可以为但不限于桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。参阅图4所示,该电子设备可以包括存储器400、处理器401、输入设备402、输出设备403等,输入设备402可以包括但不限于键盘、鼠标、触摸屏等,输出设备403可以包括但不限于显示设备,例如:液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode RayTube,CRT)等,其中,存储器400、处理器401、输入设备402和输出设备403可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器400可以包括只读存储器(ROM)和随机存储器(RAM),存储器400可以向处理器401提供存储器400中存储的程序指令和数据,本发明实施例四中,存储器400用于存储C接口函数的测试方法的程序指令。
处理器401可调用存储器400存储的程序指令,并按照获得的程序指令执行:确定满足预设的测试条件的情况下,确定待测试的所有接口函数,并循环执行以下操作,直至所有接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;
将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;
确定当前C接口函数测试完毕。
实施例五
本发明实施例五提供了一种非易失性计算机存储介质,用于储存为上述电子设备所用的程序指令,其包含用于执行上述C接口函数的测试方法的程序。上述非易失性计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如:软盘、硬盘、磁带、磁光盘(MO)等),光学存储器(例如:CD、DVD、BD、HVD等),以及半导体存储器(例如:ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
综上所述,本发明实施例中,测试系统确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:从所有C接口函数中选取一个C接口函数作为当前C接口函数;获取当前C接口函数的各个参数,并将获得的各个参数提供给当前C接口函数,获取当前C接口函数的返回值;将返回值与当前C接口函数的预期值进行匹配,基于匹配结果确定当前C接口函数是否测试通过;确定当前C接口函数测试完毕。该方法通过测试系统依次将待测试的各个C接口函数作为当前C接口函数进行测试,能够实现对测试产品包含的所有C接口函数的自动化测试,避免了人工测试带来的漏测、测试结果不准确等问题,还节省了人力资源,提高了测试效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种C接口函数的测试方法,其特征在于,包括:
测试系统确定满足预设的测试条件的情况下,确定出待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取所述当前C接口函数的各个参数,并将获得的各个参数提供给所述当前C接口函数,获取所述当前C接口函数的返回值;
将所述返回值与所述当前C接口函数的预期值进行匹配,基于匹配结果确定所述当前C接口函数是否测试通过;
确定所述当前C接口函数测试完毕。
2.如权利要求1所述的方法,其特征在于,从所有C接口函数中选取一个C接口函数作为当前C接口函数之后,获取所述当前C接口函数的各个参数之前,进一步包括:
测试系统判断预先建立的注册函数数据库中是否存在所述当前C接口函数的函数说明,并在确定所述注册函数数据库中存在所述当前C接口函数的函数说明的情况下,认定所述当前C接口函数已注册。
3.如权利要求1所述的方法,其特征在于,测试系统获取所述当前C接口函数的各个参数,并将获得的各个参数提供给所述当前C接口函数,包括:
测试系统从预先建立的测试数据信息库中,获取所述当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
测试系统将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给所述当前C接口函数。
4.如权利要求3所述的方法,其特征在于,测试系统分别为获得的各个参数分配存储空间,包括:
测试系统获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
测试系统按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
5.如权利要求4所述的方法,其特征在于,测试系统按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间,包括:
测试系统针对各个参数,若所述参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定所述参数的存储空间大小,并按照确定出的存储空间大小,为所述参数分配存储空间;若所述参数的参数类型为输出类型,则获取所述当前C接口函数的输出空间预测值,并按照获得的所述输出空间预测值,为所述参数分配存储空间。
6.如权利要求3-5任一项所述的方法,其特征在于,还包括:测试系统若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
7.如权利要求1所述的方法,其特征在于,测试系统将获得的各个参数提供给所述当前C接口函数,包括:
测试系统从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取所述当前C接口函数的函数入口地址,并基于获得的所述当前C接口函数的函数入口地址,将各个参数提供给所述当前C接口函数。
8.如权利要求1-7任一项所述的方法,其特征在于,进一步包括:
测试系统确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
9.一种C接口函数的测试系统,其特征在于,包括:执行模块,其中,所述执行模块用于:
确定满足预设的测试条件的情况下,确定待测试的所有C接口函数,并循环执行以下操作,直至所有C接口函数测试完毕为止:
从所有C接口函数中选取一个C接口函数作为当前C接口函数;
获取所述当前C接口函数的各个参数,并将获得的各个参数提供给所述当前C接口函数,获取所述当前C接口函数的返回值;
将所述返回值与所述当前C接口函数的预期值进行匹配,基于匹配结果确定所述当前C接口函数是否测试通过;
确定所述当前C接口函数测试完毕。
10.如权利要求9所述的系统,其特征在于,还包括:注册模块,其中,所述注册模块用于:
判断预先建立的注册函数数据库中是否存在所述当前C接口函数的函数说明,并在确定所述注册函数数据库中存在所述当前C接口函数的函数说明的情况下,认定所述当前C接口函数已注册。
11.如权利要求9所述的系统,其特征在于,获取所述当前C接口函数的各个参数,并将获得的各个参数提供给所述当前C接口函数时,所述执行模块具体用于:
从预先建立的测试数据信息库中,获取所述当前C接口函数的各个参数,并分别为获得的各个参数分配存储空间;
将各个参数存储至各自对应的存储空间中,并将存储在各自对应的存储空间中的各个参数提供给所述当前C接口函数。
12.如权利要求11所述的系统,其特征在于,分别为获得的各个参数分配存储空间时,所述执行模块具体用于:
获取各个参数的参数类型,其中,各个参数的参数类型是按照预先配置的参数类型定义规则定义的;
按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间。
13.如权利要求12所述的系统,其特征在于,按照与参数类型相关联的存储空间分配方式,分别为各个参数分配相应的存储空间时,所述执行模块具体用于:
针对各个参数,若所述参数的参数类型为输入类型、引用类型和全局类型中的任意一种,则基于预先建立的参数类型与存储空间大小之间的关联关系,确定所述参数的存储空间大小,并按照确定出的存储空间大小,为所述参数分配存储空间;若所述参数的参数类型为输出类型,则获取所述当前C接口函数的输出空间预测值,并按照获得的所述输出空间预测值,为所述参数分配存储空间。
14.如权利要求11-13任一项所述的系统,其特征在于,还包括:释放模块,其中,所述释放模块用于:若确定满足预设的空间释放条件,则释放为各个参数分配的存储空间。
15.如权利要求9所述的系统,其特征在于,将获得的各个参数提供给所述当前C接口函数时,所述执行模块具体用于:
从预先加载的包含所有C接口函数的函数入口地址的动态数据库中,获取所述当前C接口函数的函数入口地址,并基于获得的所述当前C接口函数的函数入口地址,将各个参数提供给所述当前C接口函数。
16.如权利要求9-15任一项所述的系统,其特征在于,还包括:统计模块,其中,所述统计模块用于:
确定所有C接口函数的测试完毕的情况下,统计测试通过的C接口函数的数目和函数名称,以及测试不通过的C接口函数的数目和函数名称,并基于测试通过的C接口函数的数目和函数名称以及测试不通过的C接口函数的数目和函数名称,生成测试结果文件。
CN201710352233.1A 2017-05-18 2017-05-18 一种c接口函数的测试方法及系统 Active CN107247665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710352233.1A CN107247665B (zh) 2017-05-18 2017-05-18 一种c接口函数的测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710352233.1A CN107247665B (zh) 2017-05-18 2017-05-18 一种c接口函数的测试方法及系统

Publications (2)

Publication Number Publication Date
CN107247665A true CN107247665A (zh) 2017-10-13
CN107247665B CN107247665B (zh) 2020-06-26

Family

ID=60016744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710352233.1A Active CN107247665B (zh) 2017-05-18 2017-05-18 一种c接口函数的测试方法及系统

Country Status (1)

Country Link
CN (1) CN107247665B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739701A (zh) * 2018-12-14 2019-05-10 北京奇安信科技有限公司 接口测试方法及装置
CN109960624A (zh) * 2017-12-26 2019-07-02 航天信息股份有限公司 一种JsDriver的测试方法及系统
CN110287098A (zh) * 2019-05-21 2019-09-27 深圳壹账通智能科技有限公司 自动创建测试脚本方法、服务器及计算机可读存储介质
CN111124885A (zh) * 2019-11-22 2020-05-08 苏州浪潮智能科技有限公司 一种白牌交换机测试方法与装置
CN112506783A (zh) * 2020-12-14 2021-03-16 建信金融科技有限责任公司 一种测试方法、装置及存储介质
CN114218121A (zh) * 2021-12-30 2022-03-22 奇安信科技集团股份有限公司 Wifi程序的模糊测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1632747A (zh) * 2003-12-22 2005-06-29 联想(北京)有限公司 软件接口测试方法
US20110291691A1 (en) * 2010-06-01 2011-12-01 Samsung Electronics Co., Ltd. Chip and chip test system
CN104657270A (zh) * 2015-02-28 2015-05-27 北京嘀嘀无限科技发展有限公司 测试方法和系统
CN106598851A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 软件接口测试方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1632747A (zh) * 2003-12-22 2005-06-29 联想(北京)有限公司 软件接口测试方法
US20110291691A1 (en) * 2010-06-01 2011-12-01 Samsung Electronics Co., Ltd. Chip and chip test system
CN104657270A (zh) * 2015-02-28 2015-05-27 北京嘀嘀无限科技发展有限公司 测试方法和系统
CN106598851A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 软件接口测试方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960624A (zh) * 2017-12-26 2019-07-02 航天信息股份有限公司 一种JsDriver的测试方法及系统
CN109739701A (zh) * 2018-12-14 2019-05-10 北京奇安信科技有限公司 接口测试方法及装置
CN110287098A (zh) * 2019-05-21 2019-09-27 深圳壹账通智能科技有限公司 自动创建测试脚本方法、服务器及计算机可读存储介质
CN111124885A (zh) * 2019-11-22 2020-05-08 苏州浪潮智能科技有限公司 一种白牌交换机测试方法与装置
CN111124885B (zh) * 2019-11-22 2023-01-06 苏州浪潮智能科技有限公司 一种白牌交换机测试方法与装置
CN112506783A (zh) * 2020-12-14 2021-03-16 建信金融科技有限责任公司 一种测试方法、装置及存储介质
CN114218121A (zh) * 2021-12-30 2022-03-22 奇安信科技集团股份有限公司 Wifi程序的模糊测试方法及装置

Also Published As

Publication number Publication date
CN107247665B (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
CN107247665A (zh) 一种c接口函数的测试方法及系统
US8356056B2 (en) Functional extensions for business objects
CN110377520B (zh) 交易场景的测试方法及装置、电子设备和可读存储介质
CN108492005B (zh) 项目数据处理方法、装置、计算机设备和存储介质
CN110517148B (zh) 量化交易策略执行的控制方法、系统及装置
CN107547261A (zh) 云平台性能测试方法及装置
CN114896174B (zh) 用于后处理调试的数据处理系统
US9032346B2 (en) Method and apparatus for creating and managing waiver descriptions for design verification
CN109685275A (zh) 配送团队负载压力预测方法、装置、电子设备及存储介质
CN108874649A (zh) 自动化测试脚本的生成方法、装置及其计算机设备
CN108776631A (zh) 服务器、获取兼容性测试设备的方法及存储介质
CN112182886A (zh) 工程模型生成方法、装置、计算机设备和存储介质
CN110825472A (zh) 图表颜色绘制方法、装置、可读存储介质和电子设备
CN106257429A (zh) 一种gnss接收机配套测量软件验收检测的方法
US20100162214A1 (en) Customization verification
US8050958B2 (en) Systems and methods for planning demand for configurable products
CN114792232B (zh) 工程量的处理方法、系统、设备及可读存储介质
CN106202374A (zh) 一种数据处理方法及装置
CN109783877A (zh) 时间序列模型建立方法、装置、计算机设备和存储介质
CN115292418A (zh) 跨系统业务流程自动化处理方法及系统
CN111949271B (zh) 自定义交易策略的方法、交易系统、设备和存储介质
CN104615539A (zh) 一种测试参数的处理方法和系统
CN107169604A (zh) 物流配送方法和装置
CN113791595A (zh) 分散控制系统测点数据导入方法、系统、设备及介质
CN112862453A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100093 Haidian District, Haidian District, Beijing, No. 23, No. 2, No. 1001

Applicant after: Beijing Xin'an century Polytron Technologies Inc

Address before: 100052 Beijing city Haidian District Bei wa Lu Xi Li No. 21 block A No. 8246

Applicant before: Beijing Infosec Technologies Co.,Ltd.

GR01 Patent grant
GR01 Patent grant