软件开发工具包测试方法及其装置、测试系统与流程

文档序号:11729269阅读:452来源:国知局
软件开发工具包测试方法及其装置、测试系统与流程

本发明涉及软件开发工具包测试技术领域,特别是涉及一种软件开发工具包测试方法及其装置、测试系统。



背景技术:

目前,sdk(softwaredevelopmentkit,软件开发工具包)通常是指软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。sdk广泛应用于当前的电子装置,例如,智能手机、平板电脑、游戏机、可穿戴设备等。举例来说,可穿戴设备加载sdk时,由于可穿戴设备的计算能力以及存储能力有限,并且很多可穿戴设备(例如,智能手环)不具有输入界面(例如,显示屏幕、键盘等),这样讲很难对其上的sdk应用进行测试。

另外,现有技术通常采用编程语言(例如,c语言)构建sdk测试案例,要求资深的软件工程师来确保测试案例的质量。但由于成本考量,很难扩充或新增测试人员,导致测试案例的维护和修改的成本很高。



技术实现要素:

本发明主要解决的技术问题是提供一种软件开发工具包测试方法及其装置、测试系统,以有效地解决上述问题。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种软件开发工具包的测试方法,其包括:接收使用标记语言描述的软件开发工具包的测试案例,测试案例由至少一个功能块组成;获取测试案例所包括的至少一个功能块,并将至少一个功能块发送至被测装置。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种测试装置,其包括:测试处理模块,用于接收使用标记语言描述的软件 开发工具包的测试案例,其中测试案例由至少一个功能块组成;以及第一通信模块,与测试处理模块连接,用于将测试案例所包括的至少一个功能块发送至被测装置。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种软件开发工具包测试方法,其包括:接收测试案例所包括的至少一个功能块;根据测试案例所包括的至少一个功能块的调度序列测试测试案例;获取测试案例的测试结果,并将测试结果发送至测试装置。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种被测装置,其包括:第二通信模块,用于接收测试案例所包括的至少一个功能块;测试固件模块,与第二通信模块连接,用于获取测试案例所包括的至少一个功能块的调度序列;测试模块,与测试固件模块连接,用于根据调度序列测试测试案例,获取测试案例的测试结果,并通过第二通信模块将测试结果发送至测试装置。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种测试系统,其包括上述的测试装置和上述的被测装置。

本发明的有益效果是:区别于现有技术的情况,本发明通过接收使用标记语言描述的软件开发工具包的测试案例,测试案例由至少一个功能块组成;获取测试案例所包括的至少一个功能块,并将至少一个功能块发送至被测装置,其中该测试案例采用标记语言描述,无需编程语言,测试语言简单,容易维护和修改,成本低。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本发明第一实施例的sdk的测试方法的流程图;

图2是图1中测试方法所基于的测试系统的结构示意图;

图3是本发明第一实施例的测试系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1-2,图1是本发明第一实施例的sdk的测试方法的流程图;图2是图1中测试方法所基于的测试系统的结构示意图。本实施例所揭示的测试方法基于测试系统20进行测试,如图2所示,测试系统20包括pc(personalcomputer,计算机)端21和与pc端21连接的设备端22。其中,pc端21通过uart(universalasynchronousreceivertransmitter,通用串行数据总线)与设备端22建立连接。在本发明中,pc端21作为测试装置,设备端22作为被测装置。在其他实施例中,本领域的普通技术人员还可以采用其他连接方式将pc端21和设备端22建立连接,例如usb(universalserialbus,通用串行总线)、蓝牙、wifi等连接方式。值得注意的是,pc端21可为计算机、平板电脑、服务器、智能手机等;设备端22可为智能手机、可穿戴设备、智能手环、蓝牙耳机等电子装置。上述描述仅为说明的目的,并不是对本发明的限制。

如图1所示,本实施例所揭示的测试方法包括以下步骤:

步骤s11:定义至少一个功能块,其中至少一个功能块与测试相关联;

其中,pc端21可预先设定至少一个功能块,即pc端21根据测试人员的需求预先设定至少一个功能块,其中上述至少一个功能块是用标记语言描述的。

步骤s12:接收使用标记语言描述的sdk的测试案例(testcase);

其中,pc端21接收到使用标记语言描述的sdk的测试案例,测试案例由至少两个功能块组成。测试人员在pc端21输入使用标记语言 描述的测试案例,测试人员还能够通过标记语言自定义测试案例,标记语言优选为xml(extensiblemarkuplanguage,可扩展标记语言)。值得注意的是,上述接收测试案例的步骤可为接收上述预先设定的至少一个功能块,或者由开发者向测试装置(例如,pc端21)输入包含上述至少一个功能块的sdk的测试案例。

在其他实施例中,本领域的普通技术人员还可以采用其他标记语言,例如标记语言包括html(hypertextmarkuplanguage,超文本标记语言)、xhtml(theextensiblehypertextmarkuplanguage,可扩展超文本标识语言)、wml(wirelessmarkuplanguage,无线标记语言)、smil(synchronizedmultimediaintegrationlanguage,同步多媒体集成语言)、sgml(standardgeneralizedmarkuplanguage,标准通用标记语言)、mathml(mathematicalmarkuplanguage,数学标记语言)或xaml(extensibleapplicationmarkuplanguage,可扩展应用程序标记语言)。

步骤s13:获取测试案例所包括的至少一个功能块,并将测试案例所包括的至少一个功能块发送至设备端22(被测装置);

其中,pc端21获取测试案例所包括的至少一个功能块,并将测试案例所包括的至少一个功能块发送至设备端22。

步骤s14:接收到测试案例所包括的至少一个功能块;

其中,设备端22接收到测试案例所包括的至少一个功能块。

步骤s15:根据测试案例所包括的至少一个功能块的调度序列测试上述测试案例;

其中,设备端22获取测试案例所包括的至少一个功能块的调度序列,并根据至少一个功能块的调度序列测试上述测试案例。

步骤s16:获取测试案例的测试结果,并将测试结果发送至pc端21(测试装置);

其中,设备端22在测试完一个测试案例后获取测试案例的测试结果,并将测试结果发送至pc端21。

区别于现有技术的情况,本实施例的测试人员在pc端21输入使用标记语言描述的测试案例或者直接将pc端21预先定义的至少一个功能 块进行组合加载,由于使用标记语言,无需熟知编程语言,因此测试语言简单,容易维护和修改,成本低;另外,测试人员可以自定义测试案例,提升测试质量。

本发明还提供第二实施例的sdk的测试方法,其在第一实施例所揭示的测试方法的基础上进行描述。其中上述至少一个功能块的每一个更包含多个基本功能模块。pc端21获取测试案例所包括的至少一个功能块的每一个的至少一个基本功能模块,并将测试案例所包括的至少一个基本功能模块发送至设备端22。

在步骤s14中,设备端22接收到测试案例所包括的至少一个基本功能模块。

在步骤s15中,设备端22重建在测试案例中多个基本功能模块的调度序列,根据重建后的调度序列测试测试案例。优选地,设备端22通过图算法重建测试案例中多个基本功能模块的调度序列,即设备端22通过图算法重建测试案例中api(applicationprogramminginterface,应用程序编程接口)的调度序列,以精确控制sdkapi运行,进而实现测试测试案例。

本实施例所揭示的测试方法能够支持功能测试案例、交互测试案例、中断或抢占测试案例、并发测试案例、压力测试案例以及性能测试案例,并且在测试案例中设定sdkapi循环执行,能够实现多线程并发执行、条件执行、同步或异步执行;支持不同的sdkapi调用共享sdk返回值和参数。

以下详细描述如何通过上述测试方法实现一个并发测试案例。该并发测试案例具体为测试人员测试sp(smartphone,智能手机)一边通过蓝牙耳机进行听歌,一边进行wifi扫描,以实现在通过蓝牙耳机进行听歌的同时连接wifi。

测试人员在pc端21输入使用xml描述的测试案例包括以下步骤:

步骤1:初始化蓝牙耳机(测试目标)的协议,其中蓝牙耳机的协议优选为a2dp(advancedaudiodistributionprofile,蓝牙音频传输模型协定)协议,并且该协议用于在蓝牙耳机和sp之间传输音乐数据;

步骤2:发起a2dp协议连线,用于在蓝牙耳机和sp直接建立好传输连线;

步骤3:sp通过蓝牙耳机播放音乐,pc端21提示用户在sp播放音乐;

步骤4:sp发起一个wifi连接。其中,步骤4和步骤3可同时并行发生。

pc端21获取并发测试案例所包括的功能块,其中步骤1至步骤4为该并发测试案例所包括的功能块,即一个步骤代表一个功能块,例如步骤1为功能块1,步骤2为功能块2,步骤3为功能块3,步骤4为功能块4。

每个功能块包括多个基本功能模块,基本功能模块用于具体执行并发测试案例的步骤1、步骤2、步骤3以及步骤4,基本功能模块可以在不同测试案例中进行多次调用。pc端21将并发测试案例所包括的基本功能模块发送至设备端22。

在功能块1中,初始化蓝牙耳机的协议,相应的基本功能模块用于初始化蓝牙耳机的协议,例如基本功能模块bt_a2dp_init用于初始化a2dp协议。设备端22存储与基本功能模块所对应的函数,根据基本功能模块bt_a2dp_init调用所对应的函数,实现初始化蓝牙耳机的协议。

在功能模块2中,发起a2dp协议连线,相应的基本功能模块用于发起一个连接,例如基本功能模块bt_a2dp_connect,基本功能模块bt_a2dp_connect具体为:

子步骤1:设备端22调用bt_a2dp_connect_request函数,发起一个a2dp协议连线请求;

子步骤2:设备端22调用bt_a2dp_connect_state函数,发起一个查询a2dp协议状态的函数,确认蓝牙耳机和sp的连线状态是否为正在连接;

子步骤3:设备端22调用bt_a2dp_connect_cnf函数时,返回a2dp协议连线结果;

子步骤4:设备端22调用bt_a2dp_connect_state函数,发起一个查 询a2dp协议状态的函数,确认蓝牙耳机和sp的连线状态是否为已经连接;

子步骤5:设备端22调用bt_a2dp_device_get_role函数,发起一个查询a2dp协议状态的函数,确认蓝牙耳机和sp连线后的设备端角色是否正确。

在功能块3中,sp通过蓝牙耳机播放音乐,基本功能模块为bt_a2dp_accept_play_remote_music用于在蓝牙耳机播放从sp发送的音频数据流,基本功能模块bt_a2dp_accept_play_remote_music具体为:

子步骤1:设备端22调用bt_a2dp_start_streaming_ind函数,用于确定streaming音频数据流是否到达蓝牙耳机;

子步骤2:设备端22调用bt_a2dp_start_streaming_response函数,蓝牙耳机开始播放streaming音频数据流。

在功能块4中,sp发起一个wifi连接,基本功能模块为wifi_connect用于发起扫描一个wifi热点,并且发送连线;基本功能模块wifi_connect具体为:

子步骤1:设备端22调用wifi_init函数,用于发起一个wifiinit;

子步骤2:设备端22调用wifi_scan函数,用于扫描一个wifi热点;

子步骤3:设备端22调用wifi_check_status函数,用于检查当前状态是否未连线;

子步骤4:设备端22调用wifi_connect函数,用于发起wifi连接;

子步骤5:设备端22调用wifi_check_status函数,用于再次确认当前状态是否已连线。

设备端22测试完上述并发测试案例,获取测试结果,并将测试结果发送至pc端21。

以下详细描述如何通过上述测试方法实现中断测试案例。该中断测试案例具体为测试人员测试在sp(辅助测试设备)通过蓝牙耳机(测试目标)进行音乐播放时,电话呼入,蓝牙耳机的音乐中断,输出振铃音乐,然后通过蓝牙耳机接听电话。

测试人员在pc端21输入使用xml描述的测试案例包括以下步骤:

步骤1:初始化蓝牙耳机的hfp(hands-freeprofile,蓝牙设备可以控制电话)协议,用于在蓝牙耳机和sp之间电话业务,电话业务包括拨打或接听电话、电话语音。

步骤2:初始化蓝牙耳机的a2dp协议,用于在蓝牙耳机和sp之间传输音乐数据;

步骤3:发起a2dp协议连线,用于在蓝牙耳机和sp之间直接建立好a2dp协议传输连线;

步骤4:发起hfp协议连线,用于在在蓝牙耳机和sp直接建立好hfp协议传输连线,其中,步骤3和步骤4可同时并行发生;

步骤5:蓝牙耳机播放音乐,pc端21提示用户在sp播放音乐;

步骤6:电话呼入,蓝牙耳机播放振铃音乐,然后接听电话,pc端21提示用户发起一个电话到sp。

其中,本实施例所揭示的步骤1-步骤5与上述的并发测试案例的步骤1-步骤4相同,在此不再赘述。

在步骤6中,其相应的基本功能模块为bt_hfp_accept_call,用于接听电话呼入,蓝牙耳机先播放音乐,然后发起接听电话的动作。基本功能模块bt_hfp_accept_call具体为:

子步骤1:设备端22调用bt_hfp_ciev_setup_ind函数,用于确定cievsetup的状态;

子步骤2:设备端22调用bt_hfp_audio_connect_ind函数,用于确定sp的audio连线到蓝牙耳机;

子步骤3:设备端22调用bt_hfp_ring_ind函数,用于确定sp的振铃指示开始,该函数的实现里面会停掉蓝牙耳机的音乐播放,蓝牙耳机开始播放振铃;

子步骤4:设备端22调用bt_hfp_answer_call函数,用于发起接听电话动作;

子步骤5:设备端22调用bt_hfp_answer_call_cfm函数,用于确定接听动作发起成功;

子步骤6:设备端22调用bt_hfp_ciev_call_ind函数,用于确定接 听电话;

子步骤7:设备端22调用bt_hfp_ciev_setup_ind函数,用于确定cievsetup的状态切为接听。

设备端22测试完中断并发测试案例,获取测试结果,并将测试结果发送至pc端21。

本实施例所揭示的测试方法每次运行一个测试案例,能够降低资源消耗,并且测试案例能够实现自动化。

本发明还提供一种测试系统,其在第一实施例所揭示的测试方法的基础上进行描述。请参见图3所示,本实施例所揭示的测试系统30包括pc端31和与pc端31连接的设备端32。

pc端31包括测试存储模块311、测试处理模块312以及第一通信模块313,测试处理模块312与测试存储模块311连接,第一通信模块313与测试处理模块312连接。

设备端32包括第二通信模块321、测试固件模块322以及测试模块323,第二通信模块321与第一通信模块313建立连接,优选地,第二通信模块321与第一通信模块313通过uart建立连接;测试固件模块322与第二通信模块321连接,测试模块323分别与测试固件模块322以及第二通信模块321建立连接。

其中,测试存储模块311用于存储预先设定的至少一个功能块,其中至少一个功能块与sdk测试相关;测试处理模块312用于接收测试案例所包括的至少一个功能块,其中上述至少一个功能块可来自于测试存储模块311或者开发者的输入;第一通信模块313用于将测试案例所包括的至少一个功能块发送至第二通信模块321。

第二通信模块321用于接收到测试案例所包括的至少一个功能块;测试固件模块322用于获取测试案例所包括的至少一个功能块的调度序列;测试模块323用于根据调度序列测试测试案例,获取测试案例的测试结果,并通过第二通信模块321将测试结果发送至第一通信模块313,即测试模块323将测试结果通过第二通信模块321发送至第一通信模块313。

其中,标记语言优选为xml。在其他实施例中,本领域的普通技术人员还可以采用其他标记语言,例如标记语言包括html、xhtml、wml、smil、sgml、mathml或xaml。另外,值得注意的是,由于上述至少一个功能块的每一个可包含至少一个基本功能模块,因此上述调度序列可细化为每个基本功能模块的调度序列,由于前面已经对其进行介绍,这里不再赘述。

区别于现有技术的情况,本实施例的测试人员在pc端21输入通过标记语言描述的测试案例,无需熟知编程语言,语言简单,容易维护和修改,成本低;另外,测试人员可以自定义测试案例,提升测试质量。

本实施例所揭示的测试系统能够支持功能测试案例、交互测试案例、中断或抢占测试案例、并发测试案例、压力测试案例以及性能测试案例,并且在测试案例中设定sdkapi循环执行,能够实现多线程并发执行、条件执行、同步或异步执行;支持不同的sdkapi调用共享sdk返回值和参数。

综上所述,本发明的测试人员在pc端输入使用标记语言描述的测试案例,无需熟知编程语言,测试语言简单,容易维护和修改,成本低;此外,测试人员可以自定义测试案例或者对预先设定的功能块进行组合以形成测试案例,提升测试质量;另外,每次运行一个测试案例,能够降低资源消耗,并且测试案例能够实现自动化。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1