一种程序测试方法及装置的制造方法

文档序号:10612723阅读:199来源:国知局
一种程序测试方法及装置的制造方法
【专利摘要】本发明提供一种程序测试方法及装置,其中方法包括:加载待测试程序,并输出所述待测试程序对应的多种测试场景;根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径;获取所述目标测试路径对应的目标测试数据;基于所述目标测试数据进行测试并输出测试结果。本发明实施例基于多种测试场景对移动类应用程序进行测试,进而提高测试的准确性,减少测试成本,缩短测试时长。
【专利说明】
一种程序测试方法及装置
技术领域
[0001 ]本发明涉及测试技术领域,具体涉及一种程序测试方法及装置。
【背景技术】
[0002]随着移动互联网的快速发展,应用在用户终端(例如手机、可穿戴设备等)上的各种类型的应用程序层出不穷。在这些应用程序中,与用户终端进行交互从而实现某种功能的应用程序备受用户青睐,例如运动健康类应用程序、导航定位类应用程序等,将这些应用程序统称为移动类应用程序。
[0003]通常,应用程序的开发测试流程为:编码开发—模拟调测—调测问题修改—打包发布—安装测试—测试问题修改。对于某个待测试的移动类应用程序,在模拟调测过程中,测试人员仅能调测该程序在模拟器上的运行效果,无法对该程序在复杂的实际使用环境中的运行效果进行调测,调测结果准确性较低;在安装测试过程中,将安装该程序的用户终端在筛选出的典型环境下进行实地测试,该过程需要耗费大量的人力、物力和时间。
[0004]由此可见,目前对移动类应用程序的测试过程存在测试准确性低、测试成本大、测试耗时长的缺陷。

【发明内容】

[0005]本发明实施例提供一种程序测试方法及装置,基于多种测试场景对移动类应用程序进行测试,进而提高测试的准确性,减少测试成本,缩短测试时长。
[0006]本发明实施例第一方面提供一种程序测试方法,包括:
[0007]加载待测试程序,并输出所述待测试程序对应的多种测试场景;
[0008]根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径;
[0009]获取所述目标测试路径对应的目标测试数据;
[0010]基于所述目标测试数据进行测试并输出测试结果。
[0011]本发明实施例第一方面,提供多种测试场景,从而实现基于多种测试场景的程序测试,提高了测试的准确性,很大程度上减少了测试成本并缩短测试时长。
[0012]在一种可能的设计中,所述待测试程序为应用于用户终端上的移动类应用程序,例如计步、跑步、导航应用程序等。
[0013]在一种可能的设计中,所述目标测试数据包括至少一段典型测试路段以及所述至少一段典型测试路段中每段典型测试路段对应的测试数据,所述测试数据包括采样频率数据、GPS信号数据、系统环境数据和外部环境数据。例如,所述待测试程序为跑步应用程序,典型测试路段可以为普通公路、海滩、公园小径、标准跑道等,所述目标测试路径可以为这些典型测试路段中的一种,也可以为这些典型测试路段的组合。每段典型测试路段对应的测试数据可为系统预置的数据,也可根据测试人员输入的调整指令进行相应的调整。
[0014]其中,所述采样频率数据包括曲度参数和速度参数,所述采用频率数据影响模拟过程中的运行速率,所述曲度参数可以为盘山路径、平直路段、弧线路段、自定义等,针对不同的曲度参数所述速度参数的上限有所不同;
[0015]所述GPS信号数据包括天气参数、障碍物参数、植物覆盖参数以及磁场干扰参数,这些参数可影响模拟过程中的GPS信号的强弱,所述天气参数可以为晴、雨、雪、晴转雨等,所述障碍物参数表示不同路段下的障碍物数量,例如山区路段的障碍物数量、平原路段的障碍物数量、人工隧道的障碍物数量等,所述植物覆盖参数可为无植被、稀疏、林郁、茂密等;所述磁场干扰参数表示高压线、矿物磁场、人工磁场、太阳黑子等对磁场的干扰;
[0016]所述系统环境数据包括内存参数、CPU参数和电量参数,所述系统环境数据为模拟用户终端内部系统的数据,所述内存参数可为内存占用率,所述CPU参数可为CPU占用率,所述电量参数可为剩余电量参数或已消耗电量参数;
[0017]所述外部环境数据包括环境温度参数和气压参数,所述外部环境数据为模拟用户终端所处的外部环境的数据,所述气压参数可为海拔参数或气体压强参数。
[0018]在该设计中,将影响测试的多种因素考虑在内,使得测试结果贴合实际应用场景,从而提高测试的准确性。
[0019]在一种可能的设计中,所述获取所述目标测试路径对应的目标测试数据的具体过程包括:
[0020]加载所述目标测试路径对应的预设测试数据,并判断所述预设测试数据是否满足测试条件,所述预设测试数据为系统预置的目标测试路径对应的测试数据,所述测试条件可为用户设置的测试条件;
[0021]当判断的结果为是时,将所述预设测试数据确定为目标测试数据;
[0022]当判断的结果为否时,接收针对所述预设测试数据输入的调整指令,所述调整指令用于对所述预设测试数据进行更改;
[0023]根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据;
[0024]其中,所述调整指令包括针对所述预设测试数据中至少一段预设典型测试路段的更改指令和/或针对所述预设测试数据中某段或某几段预设典型测试路段对应的测试数据的更改指令。
[0025]在一种可能的设计中,所述基于所述目标测试数据进行测试并输出测试结果的具体的过程为:
[0026]根据所述目标测试数据计算得到第一测试结果,所述第一测试结果包括第一测试运动速率和第一测试GPS信号数据;
[0027]基于所述目标测试数据运行所述待测试程序得到第二测试结果,所述第二测试结果包括第二测试运动速率和第二测试GPS信号数据;
[0028]输出包括所述第一测试结果和所述第二测试结果的测试结果。
[0029]其中,所述第二测试结果即为在所述待测试程序上模拟的结果,所述第一测试结果即为计算的结果,未基于所述待测试程序。
[0030]在该设计中,测试人员可根据所述测试结果判断所述待测试程序是否存在缺陷或问题并可针对性的查找引起缺陷或问题的原因。
[0031]在一种可能的设计中,所述根据所述目标测试数据计算得到第一测试结果的具体过程为:
[0032]将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率;
[0033]根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据;
[0034]其中,所述GPS信号算法为F(c,z,p,m)= S*(l-c)*(l-z)*(l-p)*(l-m),c表示所述天气参数、z表示所述障碍物参数、p表示所述植物覆盖参数,m表示所述磁场干扰参数,S表示预设GPS信号参考值。
[0035]在一种可能的设计中,所述测试结果还包括建议信息,所述建议信息包括测试评分、最佳采样频率和运行所述待测试程序过程中记录的CPU占用率曲线图、内存占用率曲线图、电池温度曲线图,智能地为测试人员提供建议,便于测试人员根据建议信息再次对所述待测试进行测试,进一步提高测试的准确性。
[0036]本发明实施例第二方面提供一种程序测试装置,包括:
[0037]场景输出单元,用于加载待测试程序,并输出所述待测试程序对应的多种测试场景;
[0038]场景确定单元,用于根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径;
[0039]数据获取单元,用于获取所述目标测试路径对应的目标测试数据;
[0040]结果输出单元,用于基于所述目标测试数据运行所述待测试程序并输出测试结果O
[0041]本发明实施例第二方面提供的程序测试装置用于实现本发明实施例第一方面提供的程序测试方法,在此不再赘述。
[0042]本发明实施例第三方面提供另一种程序测试装置,包括处理器、输入模块、输出模块、通信接口以及存储器,其中,存储器存储一组程序代码,且处理器用于调用存储器中存储的程序代码,使得所述程序测试装置执行本发明实施例第一方面提供的程序测试方法。
[0043]在本发明实施例中,通过加载待测试程序,并输出待测试程序对应的多种测试场景,根据针对多种测试场景输入的选择指令确定包括目标测试路径的目标测试场景,获取目标测试路径对应的目标测试数据并基于目标测试数据运行待测试程序并输出测试结果,从而基于多种测试场景对移动类应用程序进行测试,进而提高测试的准确性,减少测试成本,缩短测试时长。
【附图说明】
[0044]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]图1为本发明实施例涉及的系统架构图;
[0046]图2为本发明实施例提供的程序测试装置的硬件结构示意图;
[0047]图3为本发明实施例提供的一种程序测试方法的流程示意图;
[0048]图4为本发明实施例提供的部分测试数据的编辑界面示意图;
[0049]图5为本发明实施例提供的另一种程序测试方法的流程示意图;
[0050]图6为本发明实施例提供的一种程序测试装置的结构示意图;
[0051 ]图7为图6所示的数据获取单元的结构示意图;
[0052]图8为图6所示的结果输出单元的结构示意图。
【具体实施方式】
[0053]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]本发明实施例提供一种程序测试方法及装置,可以应用于对移动类应用程序进行测试的场景,例如,程序测试装置加载待测试程序,并输出所述待测试程序对应的多种测试场景,根据针对所述多种测试场景输入的选择指令确定包括目标测试路径的目标测试场景,程序测试装置获取所述目标测试路径对应的目标测试数据,并基于所述目标测试数据运行所述待测试程序并输出测试结果的场景。本发明实施例能够实现基于多种测试场景对移动类应用程序进行测试,同时也可以实现现有开发测试流程中的模拟调测和安装测试,无需测试人员耗费大量的人力、物力和时间进行实地测试,从而减少测试成本,缩短测试时长,并且基于多种测试场景进行测试能够提高测试的准确性。
[0055]请参见图1,为本发明实施例涉及的系统架构图,该系统架构图包括云服务101、数据服务器102、网络103和程序测试装置104。其中,云服务101可存储程序测试装置104测试所需的测试数据,或存储程序测试装置104传输的测试数据。数据服务器102可存储程序测试装置104测试所需的测试数据,或存储程序测试装置104传输的测试数据,也可对测试数据进行运算、处理。网络103用于实现云服务101与程序测试装置104之间以及数据服务器102与程序测试装置104之间的数据传输。程序测试装置104用于接收测试人员输入的启动指令、调整指令、测试指令等,并根据输入的指令执行相应的操作。
[0056]测试人员在程序测试装置104上进行程序测试,程序测试装置104可通过网络103将相关的测试数据传输至数据服务器102,由数据服务器102对这些测试数据进行存储、运算、处理;程序测试装置104也可对这些测试数据进行本地存储、运算、处理,并将处理后的数据通过本装置的显示器呈现给测试人员。程序测试装置可通过网络103获取云服务101中存储的测试数据,也可通过网络103获取数据服务器102中存储的测试数据,还可加载本地存储的测试数据,或通过某些工具软件预置测试数据。
[0057]基于图1所示的系统架构图,图2为本发明实施例提供的一种程序测试装置的硬件结构示意图。该程序测试装置包括处理器201、通信总线202、通信接口 203、输入模块204、输出模块205和存储器206等等。其中,通信总线201用于实现这些组件之间的连接通信。本领域技术人员可以理解,图2所示的程序测试装置的硬件结构并不构成对本发明的限定,它既可以是总线行结构,也可以是星型结构,还可以包括比图2所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,所述程序测试装置可以是台式计算机。
[0058]通信接口203用于实现程序测试装置与网络、其它设备之间的通信连接,包括有线接口(例如,USB接口、有线网口等)和无线接口(例如无线网络接口)。
[0059]处理器201为程序测试装置的控制中心,利用各种接口和线路连接整个程序测试装置的各个部分,通过运行或执行存储在存储器206内的软件程序和/或模块,以及调用存储在存储器206内的数据,以执行程序测试装置的各种功能和/或处理数据。所述处理器201可以由集成电路(Integrated Circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器201可以仅包括中央处理器(Central Processing Unit,CPU),也可以是图像处理器(Graphic Processing Unit,GPU)及数字信号处理器(Digital Signal Processor,DSP)的组合。在本发明实施方式中,(PU可以是单运算核心,也可以包括多运算核心。
[0060]输入模块204用于实现测试人员与程序测试装置的交互,还用于实现信息、数据、指令等输入到程序测试装置中。例如,输入模块204可以接收测试人员输入的指令,以产生相关的信号。输入模块204可以是控制面板,也可以是其他人机交互界面,例如实体输入键、麦克风等,还可以是其他外部信息撷取装置,例如摄像头等。控制面板,可收集测试人员通过鼠标、键盘对其输入的操作动作。控制面板可包括输入检测装置和输入控制器两个部分。其中,输入检测装置检测测试人员的输入操作,并将检测到的输入操作转换为电信号,以及将所述电信号传送给输入控制器;输入控制器从输入检测装置上接收所述电信号,并将其传递至处理器201。输入模块204所采用的实体输入键可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。麦克风形式的输入模块204可以收集测试人员或环境输入的语音并将其转换成电信号形式的、处理器201可转换后的电信号执行的相应的命令或操作。在本发明实施例中,输入模块204用于接收测试人员输入的启动指令、调整指令、测试指令等。
[0061]输出模块205包括但不限于影像输出单元和声音输出单元。影像输出单元用于输出文字、图片和/或视频。所述影像输出单元可包括显示屏,例如采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting D1de,0LED)、场发射显示器(field emiss1n display,FED)等形式来配置的显示屏。或者所述影像输出单元可以包括反射式显示器,例如电泳式(electrophoretic)显示器,或利用光干涉调变技术(Interferometric Modulat1n of Light)的显示器。所述影像输出单元可以包括单个显示器或不同尺寸的多个显示器。在本发明实施例中,上述输入模块204所采用的控制面板亦可同时作为输出模块205的显示屏。例如,当控制面板检测到对其的输入操作后,将其转换为电信号,并将该电信号传递至处理器201,处理器201根据该电信号在显示屏上提供相应的视觉输出。虽然在图2中,输入模块204与输出模块205是作为两个独立的部件来实现程序测试装置的输入和输出功能,但是在某些实施例中,可以将控制面板与显示屏集成一体而实现程序测试装置的输入和输出功能。例如,所述影像输出单元可以显示各种图形化用户接口(Graphical User Interface,⑶I)以作为虚拟控制组件,包括但不限于窗口、卷动轴、图标及剪贴簿,以供测试人员输入指令、数据。在本发明实施例中,输出模块205用于输出程序测试过程中的显示界面,包括测试场景显示界面、测试数据显示界面、测试结果显示界面等,便于测试人员获取信息或输入指令。
[0062]存储器206可用于存储软件程序以及模块,处理器201通过运行存储在存储器206的软件程序以及模块,从而执行程序测试装置的各种功能应用以及实现数据处理。存储器206主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序,比如声音播放程序、图像播放程序等等;数据存储区可存储根据程序测试装置的使用所创建的数据(比如音频数据、电话本等)等。存储器206可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(Phase Change RAM,PRAM)、磁阻式随机存取内存(Magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPR0M)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)。非易失存储器储存处理器201所执行的操作系统及应用程序。处理器201从所述非易失存储器加载运行程序与数据到内存并将数字内容储存于大量储存装置中。所述操作系统包括用于控制和管理常规系统任务,例如内存管理、存储设备控制、电源管理等,以及有助于各种软硬件之间通信的各种组件和/或驱动器。在本发明实施方式中,所述操作系统可以是Linux操作系统,Apple公司开发的Mac OS系统,或Microsoft公司开发的Windows操作系统等。在本发明实施例中,存储器206还存储着多种测试场景,所述多种测试场景中每种测试场景对应的测试路径以及测试路径对应的测试数据,测试数据可以是系统预置的数据,也可以是对系统预置数据进行更改后的数据。
[0063]本发明实施例中的程序测试装置可以为台式计算机、测试终端等电子设备的部分或全部。本发明实施例中的用户终端为可以安装运行移动类应用程序的终端,可以包括但不限于移动电话、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、智能可穿戴设备等移动终端,所述用户终端的操作系统在此不做限定。
[0064]下面将结合附图2-附图7对本发明实施例提供的程序测试方法进行详细介绍。
[0065]请参见图3,为本发明实施例提供的一种程序测试方法的流程示意图。结合图2所示的程序测试装置,存储器206中存储一组程序代码,且处理器201调用存储器206中存储的程序代码,用于执行所述程序测试方法,可以包括以下步骤301-步骤304。
[0066]301,加载待测试程序,并输出所述待测试程序对应的多种测试场景。
[0067]具体的,在本发明实施例中,通过程序测试装置实现程序测试,程序测试装置通过其上安装的程序测试软件实现程序测试。在一种可能实现的方式中,当输入模块204接收到测试人员针对程序测试软件的启动指令时,即测试人员针对程序测试软件输入点击操作,输入模块204将该启动指令转换为电信号,并将该电信号传递至处理器201,由处理器201根据该电信号控制程序测试软件的启动,并控制输出模块205输出程序测试软件的初始化显示界面。所述初始化显示界面为测试人员提供测试程序选项,测试人员根据所需选择待测试程序,处理器201根据测试人员的选择加载所述待测试程序,并控制输出模块205输出所述待测试程序对应的多种测试场景,程序测试装置的显示界面由所述初始化显示界面跳转为包括多种测试场景的显示界面。在一种可能实现的方式中,程序测试装置与安装待测试程序的用户终端相连接,当输入模块204接收到测试人员针对程序测试软件的启动指令时,输入模块204将该启动指令转换为电信号,并将该电信号传递至处理器201,由处理器201根据该电信号控制程序测试软件的启动,并在程序测试装置内加载所述待测试程序,同时控制输出模块205输出所述待测试程序对应的多种测试场景,此时的显示界面包括所述多种测试场景,还包括所述用户终端的属性信息(例如,品牌、型号、操作系统、屏幕分辨率等)和所述待测试程序的属性信息(例如,名称、类型等)。
[0068]其中,所述待测试程序为可安装运行在用户终端上的应用程序,其需要与用户终端上的某些硬件设施结合(例如,陀螺仪、重力感应器等)在一起方能实现某种功能,所述待测试程序可以包括但不限于计步、跑步、运行健康、导航定位等移动类应用程序。处理器201加载所述待测试程序即加载所述待测试程序的代码。所述多种测试场景为模拟的用户终端的使用环境,对于不同的待测试程序有所不同,例如,所述待测试程序为跑步应用程序,所述多种测试场景为多个具有代表性的城市的地理场景。所述多种测试场景中每种测试场景均对应一种测试路径,该测试路径也在包括所述多种测试场景的显示界面中显示,不同测试场景下的测试路径的形状、路程长度均有所不同,具体数值由程序测试装置的制造商设定,在此不做限定。所述多种测试场景的种类数量可为4个,甚至更多,具体数量在此不做限定。
[0069]302,根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径。
[0070]具体的,输入模块204接收测试人员针对包括所述多种测试场景的显示界面输入的选择指令,并将所述选择指令转换为电信号,将该电信号传递至处理器201,由处理器201根据该电信号在上述显示界面中确定目标测试场景,即确定所述选择指令对应的测试场景。由于所述多种测试场景中每种测试场景均对应一种测试路径,那么所述目标测试场景中的测试路径即为目标测试路径。在确定所述目标测试场景后,处理器201控制输出模块205输出所述目标测试场景对应的显示界面,即由包括所述多种测试场景的显示界面调整至所述目标测试场景对应的显示界面。
[0071]303,获取所述目标测试路径对应的目标测试数据。
[0072]具体的,处理器201获取所述目标测试路径对应的目标测试数据,所述目标测试数据可为所述目标测试路径对应的预设测试数据,也可为对所述目标测试路径对应的预设测试数据进行更改后的测试数据。处理器201可通过存储器206或图1所示的云服务101或图1所示的数据服务器102获取所述目标测试路径对应的预设测试数据。在一种可能实现的方式中,测试人员在程序测试装置内针对所述待测试程序的测试条件,处理器201判断所述预设测试数据是否满足所述测试条件,当判断的结果为是时,将所述预设测试数据确定为所述目标测试数据;当判断的结果为否时,接收测试人员针对所述预设测试数据输入的调整指令,处理器201根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据。在一种可能实现的方式中,测试人员自主判断所述预设测试数据是否满足测试条件,若满足则测试人员不对所述预设测试数据进行调整,处理器201将所述预设测试数据确定为所述目标测试数据;若不满足则测试人员对所述预设测试数据进行调整,输入调整指令,处理器201根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据。
[0073]其中,所述目标测试数据包括至少一段典型测试路段以及所述至少一段典型测试路段中每段典型测试路段对应的测试数据,所述测试数据包括采样频率数据、GPS信号数据、系统环境数据和外部环境数据。例如,所述待测试程序为跑步应用程序,典型测试路段可以为普通公路、海滩、公园小径、标准跑道等,所述目标测试路径可以为这些典型测试路段中的一种,也可以为这些典型测试路段的组合。每段典型测试路段对应的测试数据可为系统预置的数据,也可根据测试人员输入的调整指令进行相应的调整。
[0074]请参见图4,为本发明实施例提供的部分测试数据的编辑界面示意图,所述至少一段典型测试路段未在图4中标明,在所述目标测试路径上相应的位置上对每段典型测试路径进行标注,例如,所述目标测试路径中的某段路径标注普通公路的标识,某段路径标注公园小径的标识。所述目标测试路径与所述目标测试数据显示在同一显示界面中,具体的显示位置在此不做限定。图4中典型测试路段包括高速公路、隧道、桥梁以及自定义类型。每种典型测试路段分别对应包括采样频率数据、GPS信号数据、系统环境数据和外部环境数据的测试数据。
[0075]如图4所示,所述采样频率数据包括曲度参数和速度参数,所述采用频率数据影响模拟过程中的运行速率,所述曲度参数可以为盘山路径、平直路段、弧线路段、自定义等,针对不同的曲度参数所述速度参数的上限有所不同。假设所述曲度参数用半径r(单位:米)表示,速度参数用V(单位:米/秒)表示。那么采样频率值可用类似如下算法关系式表达:
[0076]F(r,v)=(v/r)*K
[0077]此表达式反映了如下关系:当速度参数越大,所需的采样频率越高,是线性正比关系;当曲度参数越大(相应的半径r值越小),所需的采样频率越高,与r呈现线性反比关系;K值为大于零的经验常数值。
[0078]所述GPS信号数据包括天气参数、障碍物参数、植物覆盖参数以及磁场干扰参数,这些参数可影响模拟过程中的GPS信号的强弱,所述天气参数可以为晴、雨、雪、晴转雨等,所述障碍物参数表示不同路段下的障碍物数量,例如山区路段的障碍物数量、平原路段的障碍物数量、人工隧道的障碍物数量等,所述植物覆盖参数可为无植被、稀疏、林郁、茂密等;所述磁场干扰参数表示高压线、矿物磁场、人工磁场、太阳黑子等对磁场的干扰。假设天气参数用c(大气层的电磁波能见度,取值范围O?100%)表示,障碍物参数用z(取值O?100 % )表示,植被覆盖参数P (取值范围O?100 % ),磁场干扰参数m(取值范围O?100 % )。则GPS信号强度可以采用类似如下算法关系式表达:
[0079]F(c,z,p,m)=S*(l-c)*(l-z)*(l-p)*(l-m)
[0080]此表达式反映了如下关系:S为预设GPS信号参考值,即在无障碍/覆盖/干扰及极佳天气条件下的标准GPS信号参考值;不同的影响因素之间为叠加关系;各独立的影响因素在极大值条件下均可以使得GPS信号结果值为零。
[0081]所述系统环境数据包括内存参数、CPU参数和电量参数,所述系统环境数据为模拟用户终端内部系统的数据,所述内存参数可为内存占用率,所述CPU参数可为CPU占用率,所述电量参数可为剩余电量参数或已消耗电量参数。所述外部环境数据包括环境温度参数和气压参数,所述外部环境数据为模拟用户终端所处的外部环境的数据,所述气压参数可为海拔参数或气体压强参数。
[0082]图4所列举的数据可充分体现在实际应用中的影响所述待测试程序运行的因素,本发明实施例这些因素考虑在内,使得测试结果贴合实际应用场景,从而提高测试的准确性。
[0083]测试人员可针对至少一段典型测试路段进行更改,例如,更改所述目标测试路径中某段典型测试路段对应的路段类型,如将高速公路改为隧道;在至少一段典型测试路径中增加一段典型测试路段,但是此时需注意的是,新增的典型测试路段的起点不能与上一段典型测试路段的终点重合,新增的典型测试路段的终点不能与下一段典型测试路段的起点重合。测试人员也可针对所述预设测试数据中某段或某几段典型测试路段对应的测试数据进行更改,即更改图4中的采样频率数据、GPS信号数据、系统环境数据和外部环境数据。
[0084]304,基于所述目标测试数据进行测试并输出测试结果。
[0085]具体的,处理器201基于所述目测数据进行测试并控制输出模块205输出测试结果。所述测试结果包括第一测试结果和第二测试结果,所述第一测试结果包括第一测试运行速率和第一测试GPS信号数据,所述第二测试结果包括第二测试运行速率和第二测试GPS信号数据。可以理解的是,所述第一测试结果为所述目标测试数据对应的标准结果,所述第二测试结果为模拟测试结果。程序测试装置根据所述目标测试数据计算得到所述第一测试结果。将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率,根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据,其中,所述GPS信号算法为上述的GPS信号强度表达式F(c,z,p,m)=S*(1-c)*(1-z)*(1-p)*(1-m)。可选的,所述第一测试结果显示在包括所述目标测试数据的显示界面中,所述第一测试运行速率可随着典型测试路段的变化而发生变化,所述第一测试GPS信号数据表示GPS信号强弱的变化,也随着典型测试路段的变化而发生变化。
[0086]在一种可能实现的方式中,程序测试装置包括虚拟模拟器,处理器201将所述目标测试数据注入该虚拟模拟器中,并控制该虚拟模拟器基于所述目标测试数据运行所述待测试程序,得到所述第二测试结果。在一种可能实现的方式中,程序测试装置与安装所述待测试程序的用户终端相连接,程序测试装置根据所述采样频率数据将所述目标测试数据注入该用户终端中,处理器201控制该用户终端基于所述目标测试数据运行所述待测试程序,并获取该用户终端的运行结果,将其作为所述第二测试结果。在一种可能实现的方式中,处理器201根据所述采样频率数据将所述目标测试数据注入所述待测试程序,并控制所述待测试程序基于所述目标测试数据进行,得到所述第二测试结果。
[0087]测试人员可对所述第一测试结果和所述第二测试结果进行对比,可以理解的是,若所述第一测试结果与所述第二测试结果相差较大,那么所述待测试程序存在缺陷或问题。程序测试装置可根据所述测试结果生成建议信息,所述测试结果还可包括建议信息,所述建议信息包括测试评分、最佳采样频率和运行所述待测试程序过程中记录的CPU占用率曲线图、内存占用率曲线图、电池温度曲线图,智能地为测试人员提供建议,便于测试人员根据建议信息再次对所述待测试进行测试,进一步提高测试的准确性。
[0088]本发明实施例可实现现有开发测试流程中的模拟调测和安装测试,无需耗费大量的人力、物力和时间进行实地测试,将模拟调测和安装测试结合在一起,基于多种测试场景对程序进行测试,有利于提高测试的准确性。并且,测试完成后,测试人员可根据输出模块205输出的测试结果发现缺陷或问题,节省现有实地测试来回反馈的时间。
[0089]在本发明实施例中,通过待测试程序,并输出待测试程序对应的多种测试场景,根据针对多种测试场景输入的选择指令确定包括目标测试路径的目标测试场景,获取目标测试路径对应的目标测试数据并基于目标测试数据进行测试并输出测试结果,进而提高测试的准确性,减少测试成本,缩短测试时长。
[0090]请参见图5,为本发明实施例提供的另一种程序测试方法的流程示意图。结合图2所示的程序测试装置,存储器206中存储一组程序代码,且处理器201调用存储器206中存储的程序代码,用于执行所述程序测试方法,可以包括以下步骤501-步骤504。图5所示的方法中,与图3所示的方法相同或相似的内容可以参考图3有关的详细描述,此处不作赘述。
[0091]501,加载待测试程序,并输出所述待测试程序对应的多种测试场景。
[0092]502,根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径。
[0093]本发明实施例中的步骤501和步骤502的具体实现过程可参见图3所示实施例的步骤301和步骤302的具体描述,在此不再赘述。
[0094]503,加载所述目标测试路径对应的预设测试数据。
[0095]具体的,处理器201在确定所述目标测试路径后,从存储器206中加载所述目标测试路径对应的预设测试数据,或通过网络103从云服务101获取并加载所述目标测试路径对应的预设测试数据,或通过网络103从数据服务器102获取并加载所述目标测试路径对应的预设测试数据。所述预设测试数据为未经测试人员更改的测试数据。所述预设测试数据包括至少一种预设典型测试路段以及所述至少一种预设典型测试路段中每种预设典型测试路段对应的测试数据。
[0096]504,判断所述预设测试数据是否满足测试条件。
[0097]具体的,处理器201判断所述预设测试数据是否满足测试条件,所述测试条件为测试人员预先在程序测试装置内针对所述待测试设置的测试条件,可以包括针对典型测试路段设置的条件和针对典型测试路段对应的测试数据设置的条件。若所述至少一种预设典型测试路段不满足针对典型测试路段设置的条件,或某种预设典型测试路段对应的测试数据不满足针对典型测试路段对应的测试数据设置的条件,则确定所述预设测试数据不满足所述测试条件。
[0098]505,将所述预设测试数据确定为目标测试数据。
[0099]具体的,当步骤504判断的结果为是时,即所述预设测试数据满足所述测试条件,此时处理器201将所述预设测试数据确定为目标测试数据,不对所述预设测试数据做任何更改。
[0100]506,接收针对所述预设测试数据输入的调整指令。
[0101 ]具体的,当步骤505判断的结果为否时,即所述预设测试数据不满足所述测试条件,此时处理器201可控制输出模块205输出用于提示测试人员进行调整的对话框,测试人员可根据该对话框针对所述预设测试数据输入调整指令。所述调整指令可为针对所述预设测试数据中至少一段预设典型测试路段的更改指令和/或针对所述预设测试数据中某段或某几段预设典型测试路段对应的测试数据的更改指令。针对所述至少一段预设典型测试路段的调整指令可为更改所述目标测试路径中某段典型测试路段对应的路段类型的指令,如将高速公路改为隧道;也可为在至少一段典型测试路径中增加一段典型测试路段的指令,但是此时需注意的是,新增的典型测试路段的起点不能与上一段典型测试路段的终点重合,新增的典型测试路段的终点不能与下一段典型测试路段的起点重合。可选的,处理器201控制输出模块205对于不同的典型测试路段用不同的颜色输出。针对某段或某几段预设典型测试路段对应的测试数据的更改指令可为对图4中的采样频率数据、GPS信号数据、系统环境数据或外部环境数据中的一种或多种的更改指令。
[0102]507,根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据。
[0103]具体的,处理器201根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据。处理器201可将所述目标测试数据存储在存储器206中,或通过网络103将所述目标测试数据传输至云服务101或数据服务器102。
[0104]508,根据所述目标测试数据计算得到第一测试结果。
[0105]具体的,处理器201根据确定的所述目标测试数据计算得到第一测试结果,可以理解的是,所述第一测试结果为所述目标测试数据对应的标准结果,包括第一测试运行速率和第一测试GPS信号数据。将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率,根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据,其中,所述GPS信号算法为GPS信号强度表达式F(c,z,p,m) = S*(l-c)*(l-z)*(l-p)*(l-m)。可选的,所述第一测试结果显示在包括所述目标测试数据的显示界面中,所述第一测试运行速率可随着典型测试路段的变化而发生变化,所述第一测试GPS信号数据表示GPS信号强弱的变化,也随着典型测试路段的变化而发生变化。
[0106]509,基于所述目标测试数据运行所述待测试程序得到第二测试结果。
[0107]其中,所述第二测试结果为模拟测试结果,包括第二测试运行速率和第二测试GPS信号数据。在一种可能实现的方式中,程序测试装置包括虚拟模拟器,处理器201将所述目标测试数据注入该虚拟模拟器中,并控制该虚拟模拟器基于所述目标测试数据运行所述待测试程序,得到所述第二测试结果。在一种可能实现的方式中,程序测试装置与安装所述待测试程序的用户终端相连接,程序测试装置根据所述采样频率数据将所述目标测试数据注入该用户终端中,处理器201控制该用户终端基于所述目标测试数据运行所述待测试程序,并获取该用户终端的运行结果,将其作为所述第二测试结果。在一种可能实现的方式中,处理器201根据所述采样频率数据将所述目标测试数据注入所述待测试程序,并控制所述待测试程序基于所述目标测试数据进行,得到所述第二测试结果。
[0108]510,输出包括所述第一测试结果和所述第二测试结果的测试结果。
[0109]具体的,处理器201控制输出模块205输出包括所述第一测试结果和所述第二测试结果的测试结果,测试人员可对所述第一测试结果和所述第二测试结果进行对比,可以理解的是,若所述第一测试结果与所述第二测试结果相差较大,那么所述待测试程序存在缺陷或问题。程序测试装置可根据所述测试结果生成建议信息,所述测试结果还可包括建议信息,所述建议信息包括测试评分、最佳采样频率和运行所述待测试程序过程中记录的CPU占用率曲线图、内存占用率曲线图、电池温度曲线图,智能地为测试人员提供建议,便于测试人员根据建议信息再次对所述待测试进行测试,进一步提高测试的准确性。
[0110]在本发明实施例中,通过待测试程序,并输出待测试程序对应的多种测试场景,根据针对多种测试场景输入的选择指令确定包括目标测试路径的目标测试场景,获取目标测试路径对应的目标测试数据并基于目标测试数据进行测试并输出测试结果,进而提高测试的准确性,减少测试成本,缩短测试时长。
[0111]请参见图6,为本发明提供的一种程序测试装置的结构示意图,该程序测试装置60可包括:场景输出单元601、场景确定单元602、数据获取单元603和结果输出单元604。
[0112]场景输出单元601,用于加载待测试程序,并输出所述待测试程序对应的多种测试场景。
[0113]场景确定单元602,用于根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径。
[0114]数据获取单元603,用于获取所述目标测试路径对应的目标测试数据。
[0115]结果输出单元604,用于基于所述目标测试数据进行测试并输出测试结果。
[0116]图6所示的程序测试装置用于实现图3所示的程序测试方法,带来的技术效果,具体原理请参见图3的具体描述,此处不再赘述。
[0117]请参见图7,为图6所示的数据获取单元的结构示意图,所述数据获取单元603包括数据加载单元6031、数据判断单元6032、数据确定单元6033、指令接收单元6034和数据调整单元6035。
[0118]数据加载单元6031,用于加载所述目标测试路径对应的预设测试数据。
[0119]数据判断单元6032,用于判断所述预设测试数据是否满足测试条件。
[0120]数据确定单元6033,用于当所述数据判断单元判断的结果为是时,将所述预设测试数据确定为目标测试数据。
[0121]指令接收单元6034,用于当所述数据判断单元判断的结果为否时,接收针对所述预设测试数据输入的调整指令。
[0122]数据调整单元6035,用于根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据。
[0123]其中,所述调整指令包括针对所述预设测试数据中至少一段预设典型测试路段的更改指令和/或针对所述预设测试数据中某段或某几段预设典型测试路段对应的测试数据的更改指令。
[0124]数据加载单元6031、数据判断单元6032、数据确定单元6033、指令接收单元6034和数据调整单元6035用于实现图5所示实施例的步骤503-步骤507,在此不再赘述。
[0125]请参见图8,为图6所示的结构输出单元的结构示意图,所述结构输出单元604包括计算单元6041、运行单元6042和输出单元6043。
[0126]计算单元6041,用于根据所述目标测试数据计算得到第一测试结果,所述第一测试结果包括第一测试运动速率和第一测试GPS信号数据。所述计算单元6041具体用于将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率,根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据;
[0127]其中,所述GPS信号算法为F(c,z,p,m)= S*(l-c)*(l-z)*(l-p)*(l_m),c表示所述天气参数、z表示所述障碍物参数、p表示所述植物覆盖参数,m表示所述磁场干扰参数,S表示预设GPS信号参考值。
[0128]运行单元6042,用于基于所述目标测试数据运行所述待测试程序得到第二测试结果,所述第二测试结果包括第二测试运动速率和第二测试GPS信号数据。
[0129]输出单元6043,用于输出包括所述第一测试结果和所述第二测试结果的测试结果O
[0130]计算单元6041、运行单元6042和输出单元6043用于实现图5所示实施例的步骤508-步骤510,在此不再赘述。
[0131]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
[0132]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1.一种程序测试方法,其特征在于,包括: 加载待测试程序,并输出所述待测试程序对应的多种测试场景; 根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径; 获取所述目标测试路径对应的目标测试数据; 基于所述目标测试数据进行测试并输出测试结果。2.根据权利要求1所述的方法,其特征在于,所述待测试程序为应用于用户终端上的移动类应用程序。3.根据权利要求2所述的方法,其特征在于,所述目标测试数据包括至少一段典型测试路段以及所述至少一段典型测试路段中每段典型测试路段对应的测试数据,所述测试数据包括采样频率数据、GPS信号数据、系统环境数据和外部环境数据。4.根据权利要求3所述的方法,其特征在于,所述采样频率数据包括曲度参数和速度参数;所述GPS信号数据包括天气参数、障碍物参数、植物覆盖参数以及磁场干扰参数;所述系统环境数据包括内存参数、CPU参数和电量参数;所述外部环境数据包括环境温度参数和气压参数。5.根据权利要求4所述的方法,其特征在于,所述获取所述目标测试路径对应的目标测试数据,包括: 加载所述目标测试路径对应的预设测试数据,并判断所述预设测试数据是否满足测试条件; 当判断的结果为是时,将所述预设测试数据确定为目标测试数据。6.根据权利要求5所述的方法,其特征在于,所述判断所述预设测试数据是否满足测试条件之后,还包括: 当判断的结果为否时,接收针对所述预设测试数据输入的调整指令; 根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据; 其中,所述调整指令包括针对所述预设测试数据中至少一段预设典型测试路段的更改指令和/或针对所述预设测试数据中某段或某几段预设典型测试路段对应的测试数据的更改指令。7.根据权利要求5或6所述的方法,其特征在于,所述基于所述目标测试数据进行测试并输出测试结果,包括: 根据所述目标测试数据计算得到第一测试结果,所述第一测试结果包括第一测试运动速率和第一测试GPS信号数据; 基于所述目标测试数据运行所述待测试程序得到第二测试结果,所述第二测试结果包括第二测试运动速率和第二测试GPS信号数据; 输出包括所述第一测试结果和所述第二测试结果的测试结果。8.根据权利要求7所述的方法,其特征在于,所述根据所述目标测试数据计算得到第一测试结果,包括: 将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率; 根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据; 其中,所述6?3信号算法为?(0,2 4,111) = 5*(1-0)*(1-2)*(11)*(1-111),0表示所述天气参数、z表示所述障碍物参数、P表示所述植物覆盖参数,m表示所述磁场干扰参数,S表示预设GPS信号参考值。9.根据权利要求7所述的方法,其特征在于,所述测试结果还包括建议信息,所述建议信息包括测试评分、最佳采样频率和运行所述待测试程序过程中记录的CPU占用率曲线图、内存占用率曲线图、电池温度曲线图。10.一种程序测试装置,其特征在于,包括: 场景输出单元,用于加载待测试程序,并输出所述待测试程序对应的多种测试场景;场景确定单元,用于根据针对所述多种测试场景输入的选择指令确定目标测试场景,所述目标测试场景包括目标测试路径; 数据获取单元,用于获取所述目标测试路径对应的目标测试数据; 结果输出单元,用于基于所述目标测试数据进行测试并输出测试结果。11.根据权利要求10所述的装置,其特征在于,所述待测试程序为应用于用户终端上的移动类应用程序。12.根据权利要求11所述的装置,其特征在于,所述目标测试数据包括至少一段典型测试路段以及所述至少一段典型测试路段中每段典型测试路段对应的测试数据,所述测试数据包括采样频率数据、GPS信号数据、系统环境数据和外部环境数据。13.根据权利要求12所述的装置,其特征在于,所述采样频率数据包括曲度参数和速度参数;所述GPS信号数据包括天气参数、障碍物参数、植物覆盖参数以及磁场干扰参数;所述系统环境数据包括内存参数、CPU参数和电量参数;所述外部环境数据包括环境温度参数和气压参数。14.根据权利要求13所述的装置,其特征在于,所述数据获取单元包括: 数据加载单元,用于加载所述目标测试路径对应的预设测试数据; 数据判断单元,用于判断所述预设测试数据是否满足测试条件; 数据确定单元,用于当所述数据判断单元判断的结果为是时,将所述预设测试数据确定为目标测试数据。15.根据权利要求14所述的装置,其特征在于,所述数据获取单元还包括: 指令接收单元,用于当所述数据判断单元判断的结果为否时,接收针对所述预设测试数据输入的调整指令; 数据调整单元,用于根据所述调整指令调整所述预设测试数据,并将调整后的所述预设测试数据确定所述目标测试路径对应的目标测试数据; 其中,所述调整指令包括针对所述预设测试数据中至少一段预设典型测试路段的更改指令和/或针对所述预设测试数据中某段或某几段预设典型测试路段对应的测试数据的更改指令。16.根据权利要求14或15所述的装置,其特征在于,所述结果输出单元包括: 计算单元,用于根据所述目标测试数据计算得到第一测试结果,所述第一结果包括第一测试运动速率和第一测试GPS信号数据; 运行单元,用于基于所述目标测试数据运行所述待测试程序得到第二测试结果,所述第二测试结果包括第二测试运动速率和第二测试GPS信号数据; 输出单元,用于输出包括所述第一测试结果和所述第二测试结果的测试结果。17.根据权利要求16所述的装置,其特征在于,所述计算单元具体用于将所述每段典型测试路段对应的所述采样频率数据中的所述速度参数确定为所述第一测试运行速率,根据所述每段典型测试路段对应的所述GPS信号数据以及GPS信号算法计算所述第一测试GPS信号数据; 其中,所述6?3信号算法为?(0,2 4,111) = 5*(1-0)*(1-2)*(11)*(1-111),0表示所述天气参数、z表示所述障碍物参数、P表示所述植物覆盖参数,m表示所述磁场干扰参数,S表示预设GPS信号参考值。18.根据权利要求16所述的装置,其特征在于,所述测试结果还包括建议信息,所述建议信息包括测试评分、最佳采样频率和运行所述待测试程序过程中记录的CPU占用率曲线图、内存占用率曲线图、电池温度曲线图。19.一种程序测试装置,其特征在于,所述程序测试装置包括处理器、输入模块、输出模块、通信接口以及存储器,其中,存储器存储一组程序代码,且处理器用于调用存储器中存储的程序代码,使得所述程序测试装置执行如权利要求1-9任一项所述的方法。
【文档编号】G06F11/36GK105975394SQ201610298945
【公开日】2016年9月28日
【申请日】2016年5月6日
【发明人】李端, 陈志民, 陈东
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1