CN101521899B - 用于移动应用程序的机上测试系统和方法 - Google Patents
用于移动应用程序的机上测试系统和方法 Download PDFInfo
- Publication number
- CN101521899B CN101521899B CN200910010993XA CN200910010993A CN101521899B CN 101521899 B CN101521899 B CN 101521899B CN 200910010993X A CN200910010993X A CN 200910010993XA CN 200910010993 A CN200910010993 A CN 200910010993A CN 101521899 B CN101521899 B CN 101521899B
- Authority
- CN
- China
- Prior art keywords
- test
- unit
- machine
- test case
- server end
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种计算机软件测试系统和方法,更具体地说是涉及移动应用软件的机上测试系统和方法。本发明包括服务器端和客户端;服务器端创建测试用例集并交由测试集管理单元运行测试集,与通信服务单元建立通信连接等待客户端请求,客户端下载测试包并执行测试。本装置支持在移动电话真实的硬件环境和Java运行环境上的机上测试,获得更真实的运行状况;本装置可以自动生成测试用例包括测试驱动程序或桩调用等代码,可以提高测试覆盖率和错误检测的能力。
Description
技术领域
本发明涉及一种计算机软件测试系统及方法,更具体地说是涉及移动应用软件的机上测试系统及方法。
背景技术
近年来,软件自动化测试的研究与应用是软件测试领域所关注的热点,发展很快,出现了多种解决方案。相比于传统的手工测试,近年来发展起来的测试自动化具有明显的优势,即提高测试的效率、降低测试的成本。
目前用于单元测试的自动测试装置非常成熟,代表性的产品有JUnit和NUnit等。商品化的测试工具主要是Mercury Interactive(MI)公司的Winrunner、loadrunner、TestDirector和Astra QuickTest,Segue公司的SilkTest,Rational公司的Purify、Quantify和Test Manager,Compuware公司的QACenter、PerfromanceEdition、EcoScope和TrackRecord,以及Empirix公司的eTest Suite。这些自动测试工具具有很好的产品特色,如测试报告生成、代码评审、故障恢复机制等。以上所述的测试工具能够实现可编程测试,可以根据用户对被测软件的具体需求,在一定程度上能够满足大多数软件自动化测试的需求。但是,它们并不支持像手机软件这类的嵌入式软件。手机软件都是运行在特定目标系统上的嵌入式软件,其硬件平台和操作系统往往是专用的,把现有的成熟技术移植到嵌入式软件中来是实现难度极大的一项工作。
目前,手机软件的测试一般采用交叉测试,即利用高级语言的可移植性,将大部分工作转移到主机平台上进行。虽然业界有像J2ME这样的模块化的跨平台的体系结构,但采用J2ME的手持设备多种多样,外形、型号、软件差别较大,完全不像PC那样在硬件和软件上基本做到了标准化和统一化,这使得手机软件的测试不能应用微机上通行的测试软件和方法。市面上手机开发平台混杂,造成在某设备上可以顺利安装执行,而到了其它设备,有可能无法执行,甚至连安装都可能有问题。为此开发者不得不开发好几种版本的应用程序供各种厂商、各种型号的嵌入式设备使用。在选定型号手机系统的实际运行过程中,测试人员根据设计的测试用例,通过该型号手机所提供的人机接口人为地制造各种输入状态,观察系统运行情况,从而在该型号手机上完成被测软件的动态测试。这种测试方法对于实际运行中可能出现的情况很难进行比较全面的模拟。此外,在其它型号手机执行同样测试时,测试人员不得不重复同样的测试过程,所以在不同手机设备上的移植要求对应用程序做大量的重复性的充分测试。这些现状说明,手机软件这种嵌入式软件的测试工作量太大,成本很高。
发明内容
本发明是为了克服现有技术中的不足之处,旨在为手机应用程序特别是J2ME程序提供一种测试用例丰富、测试内容广泛、移植测试自动化的测试方法及其测试系统。本系统支持在移动电话真实的硬件环境和Java运行环境上的机上测试,获得更真实的运行状况;本系统可以自动生成测试用例(包括测试驱动程序或桩调用等代码),可以提高测试覆盖率和错误检测的能力。
本发明的测试方法是一种利用网络通信条件,以后台计算机和运行于嵌入式设备上的被测软件而组成的一种客户端/服务器模式的嵌入式软件测试方法。
本发明所述的用于移动应用程序的机上测试系统,包括服务器端和客户端;服务器端具有:被测项目管理单元,用于导入被测程序,判断被测项目的合法性以及通信方式参数的配置工作;测试用例生成单元,用于生成测试用例序列、优化测试用例序列以及测试用例的划分等工作;测试描述单元,用于描述测试用例的信息;测试配置单元,用于输入测试用例的运行方面的配置信息;测试集创建单元,用于创建测试用例集,每个测试集都包含一个机上代理程序、若干个测试用例及其相关辅助文档;测试集管理单元,用于操作以及管理测试集在机上的运行;测试结果收集单元,用于在完成测试集上的所有测试用例后,收集全部测试结果;测试报告生成单元,用于统计汇总,并生成测试报告;显示单元,用于显示统计结果;通信服务单元,用于在客户端和服务器端之间提供API级的消息服务;客户端具有:机上应用程序管理单元,用于管理Java Me移动应用程序的下载、解压、安装、删除、运行;机上代理单元,用于配置并执行测试用例及间接调用被测应用程序,并将执行结果与期望结果进行比较验证,并上报测试结果。
所述被测项目管理单元导入被测程序,测试人员根据被测程序的功能说明,通过测试用例生成单元生成测试用例中的测试代码,测试集创建单元调用所述测试描述单元获取的测试用例的描述信息及测试用例生成单元生成的测试代码,再根据所述测试配置单元的运行环境配置信息完成测试用例集的创建,并交由所述测试集管理单元运行测试集,所述测试集管理单元与通信服务单元建立通信连接等待客户端请求,机上应用程序管理单元通过所述通信服务单元向所述测试集管理单元请求下发测试包,所述机上应用程序管理单元解包处理下发来的测试包并交与所述机上代理单元,所述机上代理单元获得代理程序代码和测试用例,并启动所述机上代理单元执行代理程序;上述执行结果通过通信服务单元交与测试集管理单元后,由所述测试结果收集单元汇总,所述测试报告生成单元生成测试报告,并交由所述显示单元显示。
本发明所述测试用例生成单元能够根据在服务器端编写的程序规约说明文件生成相应的有限状态机,通过搜索状态机的迁移路径生成测试用例。
本发明所述的服务器端调用所述测试集创建单元,间接调用所述测试描述单元获取测试用例的描述信息,定位被测程序,发现测试用例,读取配置文件,完成测试用例集的创建。
本发明所述的服务器端调用所述测试集管理单元运行测试集,间接调用所述通信服务单元建立通信连接等待客户端请求。
本发明所述机上代理单元的代理程序请求下一个待执行的测试用例名称,并依次执行该测试用例,并通过所述通信服务单元上报执行结果。
本发明通过所述测试配置单元还可以进行测试用例的选择条件和运行环境信息,包括包含条件、排除条件、运行平台。
本发明所述测试结果收集单元收集完测试结果后,所述显示单元可以显示出图形化的测试统计报告。
本发明所述的用于移动应用程序的机上测试方法,包括以下步骤:
1)测试人员在服务器端通过测试项目管理单元导入被测程序创建一个被测项目,判断被测项目的合法性以及通信方式参数的配置,程序导入后存放在系统的工作空间内;
2)测试人员在服务器端为测试用例生成单元编写程序的规约说明文件,测试用例生成单元根据该说明文件生成相应的有限状态机,通过搜索状态机的迁移路径生成测试用例;
3)测试人员在服务器端编写测试用例描述信息并通过测试配置单元输入测试用例配置信息,生成配置文件;
4)服务器端调用测试集创建单元,间接调用测试描述单元获取测试用例的描述信息,定位被测程序,发现测试用例,读取配置文件,完成测试用例集的创建,服务器端调用测试集管理单元运行测试集,间接调用通信服务单元建立通信连接等待客户端请求;
5)客户端通过机上应用程序管理单元向服务器端请求下发一个测试包;
6)服务器端的测试集管理单元动态地将测试用例集封装打包并通过已建立的通信连接发送给客户端;
7)客户端的应用程序管理单元解包处理下发来的测试包,并交与机上代理单元,机上代理单元获得代理程序代码和测试用例,并启动机上代理单元执行代理程序;
8)服务器端的测试集管理单元根据测试人员的选择条件决定测试用例的先后执行次序,并等待客户端请求;
9)机上代理单元的代理程序请求下一个待执行的测试用例名称,并依次执行该测试用例,并通过通信服务单元上报执行结果;
10)服务器端的测试结果收集单元汇总全部测试用例的执行结果;
11)服务器端测试报告生成单元根据测试结果收集单元汇总的全部测试用例生成测试报告;
12)显示单元显示结果。
本发明具有下述有益效果:
(1)支持移动电话上的软件测试。区别于设备模拟器上进行的模拟测试,本发明支持在移动电话真实的硬件环境和Java运行环境上的机上测试,获得更真实的运行状况,为了调试移动应用程序提供一种更加真实的测试手段,更早地发现移动应用程序中不容易模拟的软件错误和性能瓶颈。
(2)有效支持自动化的移植测试。测试人员在选定型号移动电话上进行软件测试,通过该型号移动电话所提供的人机接口人为地制造各种输入状态,运行在服务器端(后台计算机)上的测试程序记录被测软件触发的事件,并创建可运行于其它型号移动电话上的测试用例集。在其它型号移动电话执行同样测试时,测试人员只需观察被测软件运行情况,与预期结果比较给出测试通过与否的结论。这种测试方法对于实际运行中可能出现的情况在不同型号移动电话上进行比较全面的模拟,测试人员“一次输入,多次重复测试”,大大降低了在不同移动电话设备上移植应用程序所带来的大量的重复性工作。
(3)由于本测试方法的测试用例由后台计算机的测试程序定制或生成,测试用例在满足用户要求的情况下可以随意组合,从而为覆盖各种测试情况,这丰富了测试的控制和定制,极大地提高了测试覆盖率。
附图说明
图1是本发明用于移动应用程序机上的测试系统的结构示意图;
图2是本发明用于移动应用程序机上的测试系统的工作流程图;
图3是本发明用于移动应用程序机上的测试系统的实施装置流程图。
具体实施方式
本发明提供了一种用于移动应用程序机上测试的实施系统。物理上,该系统可划分为服务器端(后台计算机)和客户端(被测移动电话)两部分,两者通过串行电缆、蓝牙或者USB连接在一起,其中后台计算机上运行着本发明的测试工具,移动电话上运行被测的移动应用程序。测试工具运行于普通PC上,可以选择通过TCP/IP协议或者HTTP协议同移动电话上的被测应用程序进行通讯。
图1给出了本发明的结构示意图,包括:被测项目管理单元200,用于选择被测项目,判断被测项目的合法性以及通信方式等参数的配置工作,由PanelManager、SpecificationFileFilter类组成;测试用例生成单元201,用于生成测试用例序列、优化测试用例序列以及测试用例的划分等工作,由TestingTree、WMethod、WpMethod、OptimizationMethod、GenericMethod、PartitionMethod、EndStatePartitionMethod类组成;测试描述单元202,用于描述测试用例的名称、说明、关键字、源代码文件名、执行类名、运行脚本及参数等信息,由TestDescriptor、TestProvider、MidTestProvider、DistributedScript、MidScript、TestFinder、ExcludeListFilter类组成;测试配置单元203,用于测试人员输入测试名称、说明、运行平台信息、通信方式及参数、日志选项等内容,由QuickStartWizard、ConfigurableTestFilter、ConfigHandler、ConfigEditor、ParameterFilter、TestFormHandler、TestLoger、EnvParameter类组成;测试集创建单元204,用于测试人员创建测试用例集,每个测试集都包含一个机上代理程序、若干个测试用例及其相关辅助文档等,由SuiteHandler、TestSuiteCreater、TestsGenerator、TestsGeneratorWithSourceElement、AppDescriptor、TestsGeneratorWithStream类组成;测试集管理单元205,用于打开、关闭、修改、导入/导出以及运行测试集,由RunTestsHandler、TestBundle、MidBundler、PermissionHandler、JKSSigner类组成;通信服务单元206,用于在客户端和服务器端之间提供API级的消息服务,由HttpServer、SocketServer、ServerManager、StartServer、CommPacketHandler、CommClient、SerialPortConnection、BluetoothConnection、USBConnection、SocketConnection类组成;机上应用程序管理单元207,移动电话厂商提供,用于管理Java Me移动应用程序的下载、解压、安装、删除、运行等;机上代理单元208,用于配置并执行机上测试用例单元的测试用例及间接调用被测应用程序,被执行时它会将执行结果与期望结果进行比较验证,并上报测试结果,由MIDletBaseAgent、MIDletAgent、MIDletGUIAgent,DistributedTest、AutoTest、TestCases、MultiTest类组成;测试结果收集单元209,用于在完成测试集上的所有测试用例后,收集全部测试结果,由Status、StatusFilter、TestResult、TestResultTable类组成;测试报告生成单元210,用于统计汇总,将统计结果在后台计算机上显示出来,并生成文本、HTML或XML等格式的测试报告,由TestReporter、TxtReporter、XMLReporter、HTMLReporter、ReportViewer类组成;显示单元211,用于显示文字、图形化的测试统计报告。
结合图2说明本发明用于移动应用程序机上的测试系统的工作流程。
首先,测试人员在服务器端(后台计算机)通过测试项目管理单元200创建一个被测项目,获得被测移动应用程序的源代码和构造脚本等(步骤S101);
测试人员导入被测项目后,在服务器端为测试用例生成单元201编写程序的规约说明文件。测试用例生成单元201根据程序规约说明文件生成相应的有限状态机,并通过搜索状态机的迁移路径生成测试用例(步骤S102);
测试人员继续在服务器端编写测试用例描述信息并通过测试配置单元203输入测试用例配置信息,如测试名称、测试用例选择条件、运行平台、通信端口等,生成配置文件(步骤S103);
服务器端调用测试集创建单元204,间接调用测试描述单元202获取测试用例的描述信息,定位被测程序,发现测试用例,读取配置文件,完成测试用例集(简称测试集)的创建;服务器端调用测试集管理单元205运行测试集,间接调用通信服务单元206建立通信连接等待客户端请求(步骤S104);
客户端(被测设备/移动电话)通过机上应用程序管理单元207向服务器端请求下发一个测试包(步骤S105);
服务器端上的测试集管理单元204动态地将测试用例集封装打包并通过已建立的通信连接发送给客户端(步骤S106);
被测设备上的应用程序管理单元207解包处理下发来的测试包并交与机上代理单元208,机上代理单元208获得代理程序代码和测试用例,并启动机上代理单元208执行代理程序(步骤S107);
服务器端上的测试集管理单元205根据测试人员的选择条件决定测试用例的先后执行次序,并等待客户端请求(步骤S108);
机上代理单元208的代理程序请求下一个待执行的测试用例名称,并依次执行该测试用例,并通过通信服务单元206上报执行结果(步骤S109);
服务器端上的测试集管理单元205调用测试结果收集单元209汇总全部测试用例的执行结果(步骤S110);
服务器端上的测试结果收集单元209间接调用测试报告生成单元210生成测试报告,显示单元211显示统计结果(步骤S111)。
图3给出了本发明实施装置的流程图。该装置可划分为后台计算机和被测手机两部分,其中后台计算机上运行着本发明的测试工具,被测手机上运行被测的手机应用程序,两者通过网线连接在一个局域网上。测试工具运行于普通PC上,测试工具同被测手机通过TCP/IP协议或者HTTP协议进行通讯。被测的手机应用程序也可运行在手机模拟器软件上,这样测试工具和被测程序则可以运行在同一台计算机上。
为方便起见,图3中的判断条件都简写成标识符,其中X1表示“是否存在创建好的测试集”,X2表示“测试包不为空”,X3表示“存在一个待执行的测试用例”,X4表示“测试用例名不为空”。如图3所示,本发明装置的具体步骤为:
1、创建测试用例集(简称测试集):这要假定被测软件是可以编译运行的。可选择地,测试人员启动后台计算机上的测试程序,在手机模拟器上运行被测软件,后台测试程序会记录基本的事件活动,以自动生成测试集的主要内容,即测试用例。为创建测试集,测试人员要指定被测软件的源代码位置,输入运行环境参数,测试工具创建测试集,并启动运行该测试集。
2、被测设备(手机)请求测试包。被测手机建立与测试工具的网络连接,请求下发一个测试包。后台计算机检查是否存在创建好的测试集(X1),若没有(即X1不满足),系统显示一个空的测试报告;否则为被测手机动态生成一个测试包,将它发送给请求的被测手机,并根据测试人员的选择建立测试包中测试用例的执行次序,此时可以忽略某些测试用例。
3、被测手机首先判断测试包是否为空,若为空(即X2为假),被测手机完成测试;否则就装载该测试包,并请求获得待执行的测试用例名称。
4、后台计算机获得该请求后,判断是否存在一个待执行的测试用例,若没有(即X3为假),就返回等待被测手机请求下一个测试包;否则就将下一个测试用例名发送给被测手机。
5、被测手机判断获得测试用例名是否为空,若为空(即X4为假),就返回请求下发下一个测试包;否则执行选择的测试用例,调用被测程序。
6、测试人员观察被测程序的执行过程,被测手机请求用户评判。为此,测试人员要判断被测程序是否符合设计要求,界面输出是否正确,是否出现异常等,给出本次测试是否通过的结论。
7、被测手机得到该结论后,收集本次测试的详细执行记录,形成完整的测试结果,上报给后台计算机,并请求下发下一个测试包。
8、若不再有其它的测试包了,后台计算机上的测试工具就统计汇总所有的测试结果及其相关说明,并按格式生成一份完成的测试报告。
[第一实施方式]
本发明的第一优选实施例通过一个手机游戏软件“搬箱子”来说明本测试方法的实施应用。
本实例选择的手机游戏软件“搬箱子”是一个以图形用户界面(GUI)作为人机接口的交互式应用程序,运行在支持J2ME的手机上。一个GUI是一个分层的图形化的软件面板,它接受用户产生的和系统产生的事件,并产生确定的图形输出。GUI的好坏将直接影响着用户使用软件时的效率和心情,也直接影响着用户对所使用的系统的印象。为了让软件能够更好地服务于用户,进行GUI测试就变得非常重要了。
本实例进行的界面测试主要包括两方面的内容:一是界面实现与界面设计的吻合情况;再就是确认界面处理的正确性。界面设计与实现是否吻合是指界面的外形等是否与设计时的预期一致,包括界面元素大小、形状、颜色、文字属性、位置、对齐、提醒等。而界面处理正确是指当界面元素被赋予各种值时,系统处理是否符合设计要求,包括输入检查、默认值以及有没有出现异常等。
本实例进行的界面测试不同于单体测试,而是一种功能性测试。由于“搬箱子”的驱动事件类型多,接口活动组合空间大,测试成本较高。使用本发明所提供的方法,测试步骤如下:
1、创建测试用例集。测试人员启动后台计算机上的测试程序,并在手机模拟器上运行“搬箱子”游戏,根据设计的典型玩法进行人机交互,后台测试程序会记录这些基本的GUI活动。测试人员启动测试集创建向导,指定“搬箱子”程序的源代码位置,输入一些与真实运行环境相关的参数,后台测试程序于是使用GUI活动记录自动创建测试用例集,包括生成测试源代码、编译成字节码和生成说明文档等。
2、测试包装载至某型号的被测手机。测试人员在被测手机上请求后台计算机下发一个测试包。后台计算机接到该请求后,将测试集及其依赖文件打包并发送给被测手机的虚拟机KVM,同时根据测试人员的选择建立该测试集中测试用例的执行次序。
3、评判测试用例执行。按照测试人员定制的执行次序虚拟机KVM执行测试包内的测试用例,从而调用“推箱子”游戏,驱动它自动执行。测试人员在一旁观察界面变化,包括界面的外形、布局、风格等是否符合设计要求,界面输出是否正确,是否出现异常等。然后测试人员回答系统对测试用例是否通过的提问。
4、报告测试结果。被测手机收集测试用例的实际执行记录,连同测试用例是否通过等信息上报给后台计算机,经统计汇总,将统计结果在后台计算机上显示出来,并生成文本、HTML或XML等格式的测试报告。
在本发明的具体实例对于手机游戏软件“搬箱子”进行测试。由于该游戏软件是以图形用户界面作为人机接口的,测试工作量特别是移植时重复性的工作量大,如果不借助测试工具,测试工作将是非常枯燥乏味的。运用本发明所提供的方法,测试人员的主要工作是观察被测软件的界面变化,能够做到“一次输入,多次重复测试”,测试所需的按键输入显著减少,这样重复利用测试数据可以显著降低测试成本。
[第二实施方式]
本发明的第二优选实施例以复合表达式求值程序(简称求值程序)为例。求值程序的功能与移动电话提供的计算器是一致的,它的特别之处在于用户像编辑短信那样输入复合表达式,它直接计算该表达式的值。例如,用户输入“14*(152-37)”,求值程序回答1610。该程序主要有Parser、Calculator、Expression、Grammar、Terminal、NonTerminal、Number、Negation、NDFA、State、Transition和Operation等类组成,本实例测试的主要目的是检查在目标机型SonyEricsson K700C上表达式求值的解析和求值是否正确。在本发明的机上测试系统上测试该程序时,测试人员自己设计测试用例,没有使用测试用例生成单元201,主要包括步骤:
1、测试人员手工设计测试用例并编写相关的测试用例描述。我们设计“合法的”和“不合法的”两类测试,每类测试下又细分为简单情况和复杂情况,例如,只有加、减、乘、除运算但不包含括号的表达式视为简单情况,复杂情况就包含括号、指数运算等;不合法的情况包括表达式输入的不完整,还有就是括号不匹配,或是被除数是0等等。按照这种划分,测试人员共设计了30个测试用例。
2、创建被测项目:测试人员在被测项目管理单元200的向导面板帮助下导入被测的求值程序,创建一个被测项目。
3、创建测试集:测试人员使用测试用例描述单元202描述所有的测试用例的名称、说明、关键字、源代码文件名、执行类名、运行脚本及参数;使用测试配置单元203输入测试名称、说明、运行平台信息、通信方式及参数、日志选项等内容。然后测试人员就可以使用测试集创建单元204完成测试集的创建,这间接地会调用测试配置单元203检查运行环境参数等,间接调用测试描述单元202查找测试用例。
4、执行测试集:测试人员使用测试集管理单元205执行创建好的测试集,调用通信服务单元206等待来自移动电话的测试请求。
5、移动电话请求测试包。移动电话建立与后台计算机的网络连接,请求下发一个测试包。后台计算机上的测试集管理单元205检查是否存在创建好的测试集,若没有系统就显示一个空的测试报告;否则就根据当前的测试集动态地生成一个测试包,将它发送给请求的移动电话(机上应用程序管理单元207),并根据测试人员的有选择地建立测试包中测试用例的执行次序。
6、机上应用程序管理单元207首先判断测试包是否为空,若为空就表明完成测试;否则就装载处理该测试包,得到机上代理单元208,启动机上代理单元208,通过通信服务单元206请求后台计算机的测试集管理单元205下一个要执行的测试用例名称。
7、测试集管理单元205获得该请求后,判断是否存在一个待执行的测试用例,若没有就返回等待被测移动电话请求下一个测试包;否则就将下一个测试用例名发送给被测移动电话。
8、移动电话上的代理单元208判断获得测试用例名是否为空,若为空就返回请求下发下一个测试包;否则执行选择的测试用例,隐含地调用被测移动应用程序,上报测试集管理单元205该测试用例的执行结果,并请求下发下一个测试包。在本实施例中,发现对于像人工设计的测试用例“11.2-3.1*2”以及括号不匹配的测试用例时,测试用例执行失败。
9、后台计算机上测试集管理单元205调用测试结果收集单元209收集本次测试的详细执行记录。
10、若不再有其它的测试包了,后台计算机上的测试结果收集单元209统计汇总所有的测试结果及其相关说明,并间接调用测试报告生成单元210生成文本、HTML或XML等格式的测试报告。
[第三实施方式]
本发明的第三优选实施例以开源的移动电话多媒体音乐播放器软件(简称音乐播放器)为例。音乐播放器要播放的音频数据流可以从网络获取,也可以通过打开已经录制保存的音频文件获得。获得数据流后进行缓冲、解码,即把音频数据流转化为PCM编码格式,然后送扬声器播放。网络播放时根据用户点击播放列表获得文件URL,然后与普通PC上的网络服务器建立链接下载数据流,转换为PCM编码格式后播放数据流,与此同时频谱线程启动,显示数据流频谱。
本实例测试的主要目的是检查在目标机型Nokia 7610上完成本机播放和网络播放功能是否符合设计要求。本实例主要是对该软件的AudioPlayer类进行界面测试。AudioPlayer类主要负责初始化音乐播放器列表、音乐播放器的控制、音乐文件的获取以及音乐播放器背景的绘制等功能。本实例进行的界面测试不同于单体测试,而是一种功能测试。由于界面测试的复杂性,目前主流的测试工具无法直接应用到界面测试中。目前,最常见的界面测试工具是记录/回放工具。但是,记录/回放工具的记录部分工作需要人工来完成,费时费力。而且,测试效率很低,记录/回放的功能仅仅是全部功能的很小一部分。使用本发明所提供的方法,可以不需要用户去执行记录操作,自动生成测试用例。这样,不但可以减轻测试人员的工作强度,同时也会大大提高界面测试的测试效率和错误覆盖率。测试步骤如下:
1、创建被测项目:测试人员在被测项目管理单元200的向导面板帮助下导入音乐播放器程序,创建一个被测项目。
2、创建测试用例序列。测试人员根据被测程序的功能说明,通过测试用例生成单元201的向导面板,输入一些相关参数,指定生成测试用例的生成方式以及一些与真实运行环境相关的参数,向导面板生成程序的规约说明文件。测试用例生成单元201会根据该规约说明文件生成相应的有限状态机,检查该有限状态机是否满足完备性、强连通性以及精简性,不满足提示并请测试人员重新定义规约说明文件,满足时就通过搜索状态机的迁移路径生成测试用例序列,序列中每个测试用例包括某次操作的输入及相应的输出。
3、创建测试用例集。测试人员使用测试用例描述单元202描述所有的测试用例的名称、说明、关键字、源代码文件名、执行类名、运行脚本及参数;使用测试配置单元203输入测试名称、说明、运行平台信息、通信方式及参数、日志选项等内容。然后测试人员就可以使用测试集创建单元204完成测试集的创建,这间接地使用生成的测试用例序列生成测试源代码及其依赖文件等,同时会调用测试配置单元203检查运行环境参数等,间接调用测试描述单元202查找测试用例。
4、执行测试集:测试人员使用测试集管理单元205执行创建好的测试集,调用通信服务单元206等待来自移动电话的测试请求。
5、移动电话请求测试包。移动电话建立与后台计算机的网络连接,请求下发一个测试包。后台计算机上的测试集管理单元205检查是否存在创建好的测试集,若没有系统就显示一个空的测试报告;否则就根据当前的测试集动态地生成一个测试包,将它发送给请求的移动电话(机上应用程序管理单元207),并根据测试人员的有选择地建立测试包中测试用例的执行次序。
6、机上应用程序管理单元207首先判断测试包是否为空,若为空就表明完成测试;否则就装载处理该测试包,得到机上代理单元208,启动机上代理单元208,通过通信服务单元206请求后台计算机的测试集管理单元205下一个要执行的测试用例名称。
7、测试集管理单元205获得该请求后,判断是否存在一个待执行的测试用例,若没有就返回等待被测移动电话请求下一个测试包;否则就将下一个测试用例名发送给被测移动电话。
8、移动电话上的代理单元208判断获得测试用例名是否为空,若为空就返回请求下发下一个测试包;否则执行选择的测试用例,隐含地调用被测移动应用程序,上报测试集管理单元205该测试用例的执行结果,并请求下发下一个测试包。在本实施例中,测试人员在一旁观察界面的变化,包括界面的外形、布局、风格等是否符合设计要求,界面输出是否正确,是否出现异常等。然后测试人员回答系统对测试用例是否通过的提问。
9、后台计算机上测试集管理单元205调用测试结果收集单元209收集本次测试的详细执行记录。
10、若不再有其它的测试包了,后台计算机上的测试结果收集单元209统计汇总所有的测试结果及其相关说明,并间接调用测试报告生成单元210生成文本、HTML或XML等格式的测试报告。
运用本发明所提供的方法,测试人员的主要工作是生成被测程序规约说明文件和观察被测软件的界面变化,能够做到“一次生成规约文件,多次测试”,测试所需的按键输入显著减少,这样重复利用测试数据可以显著降低测试成本。并且,通过搜索状态机的迁移路径生成的测试用例可以达到很高的错误覆盖率,这使得本发明的测试效率可以达到较高的水平。
综上,对本发明的实施例进行了说明。但本发明并不限于上述实施例所记述的范围,任何熟悉本技术领域的技术人员在本发明所披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种用于移动应用程序的机上测试系统,其特征在于,包括服务器端和客户端;
服务器端具有:被测项目管理单元,用于导入被测程序,判断被测项目的合法性以及通信方式参数的配置工作;测试用例生成单元,用于生成测试用例序列、优化测试用例序列以及测试用例的划分工作;
测试描述单元,用于描述测试用例的信息;
测试配置单元,用于输入测试用例的运行方面的配置信息;
测试集创建单元,用于创建测试用例集,每个测试集都包含一个机上代理程序、若干个测试用例及其相关辅助文档;
测试集管理单元,用于操作以及管理测试集在机上的运行;
测试结果收集单元,用于在完成测试集上的所有测试用例后,收集全部测试结果;
测试报告生成单元,用于统计汇总,并生成测试报告;
显示单元,用于显示统计结果;
通信服务单元,用于在客户端和服务器端之间提供API级的消息服务;
客户端具有:机上应用程序管理单元,用于管理Java Me移动应用程序的下载、解压、安装、删除、运行;
机上代理单元,用于配置并执行测试用例及间接调用被测应用程序,并将执行结果与期望结果进行比较验证,并上报测试结果;
所述被测项目管理单元导入被测程序,测试人员根据被测程序的功能说明,通过测试用例生成单元生成测试用例中的测试代码,测试集创建单元调用所述测试描述单元获取的测试用例的描述信息及测试用例生成单元生成的测试代码,再根据所述测试配置单元的运行环境配置信息完成测试用例集的创建,并交由所述测试集管理单元运行测试集,所述测试集管理单元与通信服务单元建立通信连接等待客户端请求,机上应用程序管理单元通过所述通信服务单元向所述测试集管理单元请求下发测试包,所述机上应用程序管理单元解包处理下发来的测试包并交与所述机上代理单元,所述机上代理单元获得代理程序代码和测试用例,并启动所述机上代理单元执行代理程序;上述执行结果通过通信服务单元交与测试集管理单元后,由所述测试结果收集单元汇总,所述测试报告生成单元生成测试报告,并交由所述显示单元显示。
2.根据权利要求1所述的用于移动应用程序的机上测试系统,其特征在于:所述测试用例生成单元能够根据在服务器端编写的程序规约说明文件生成相应的有限状态机,通过搜索状态机的迁移路径生成测试用例。
3.根据权利要求1所述的用于移动应用程序的机上测试系统,其特征在于:服务器端调用所述测试集创建单元,间接调用所述测试描述单元获取测试用例的描述信息,定位被测程序,发现测试用例,读取配置文件,完成测试用例集的创建。
4.根据权利要求1所述的用于移动应用程序的机上测试系统,其特征在于:服务器端调用所述测试集管理单元运行测试集,间接调用所述通信服务单元建立通信连接等待客户端请求。
5.根据权利要求1所述的用于移动应用程序机上的测试系统,其特征在于:所述机上代理单元的代理程序请求下一个待执行的测试用例名称,并依次执行该测试用例,并通过所述通信服务单元上报执行结果。
6.根据权利要求1所述的用于移动应用程序机上的测试系统,其特征在于:通过所述测试配置单元还可以进行测试用例的选择条件和运行环境信息,包括包含条件、排除条件、运行平台。
7.根据权利要求1所述的用于移动应用程序机上的测试系统,其特征在于:所述测试结果收集单元收集完测试结果后,所述显示单元可以显示出图形化的测试统计报告。
8.一种用于移动应用程序的机上测试方法,其特征在于,包括以下步骤:
1)测试人员在服务器端通过测试项目管理单元导入被测程序创建一个被测项目,判断被测项目的合法性以及通信方式参数的配置,程序导入后存放在系统的工作空间内;
2)测试人员在服务器端为测试用例生成单元编写程序的规约说明文件,测试用例生成单元根据该说明文件生成相应的有限状态机,通过搜索状态机的迁移路径生成测试用例;
3)测试人员在服务器端编写测试用例描述信息并通过测试配置单元输入测试用例配置信息,生成配置文件;
4)服务器端调用测试集创建单元,间接调用测试描述单元获取测试用例的描述信息,定位被测程序,发现测试用例,读取配置文件,完成测试用例集的创建,服务器端调用测试集管理单元运行测试集,间接调用通信服务单元建立通信连接等待客户端请求;
5)客户端通过机上应用程序管理单元向服务器端请求下发一个测试包;
6)服务器端的测试集管理单元动态地将测试用例集封装打包并通过已建立的通信连接发送给客户端;
7)客户端的应用程序管理单元解包处理下发来的测试包,并交与机上代理单元,机上代理单元获得代理程序代码和测试用例,并启动机上代理单元执行代理程序;
8)服务器端的测试集管理单元根据测试人员的选择条件决定测试用例的先后执行次序,并等待客户端请求;
9)机上代理单元的代理程序请求下一个待执行的测试用例名称,并依次执行该测试用例,并通过通信服务单元上报执行结果;
10)服务器端的测试结果收集单元汇总全部测试用例的执行结果;
11)服务器端测试报告生成单元根据测试结果收集单元汇总的全部测试用例生成测试报告;
12)显示单元显示结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910010993XA CN101521899B (zh) | 2009-03-31 | 2009-03-31 | 用于移动应用程序的机上测试系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910010993XA CN101521899B (zh) | 2009-03-31 | 2009-03-31 | 用于移动应用程序的机上测试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101521899A CN101521899A (zh) | 2009-09-02 |
CN101521899B true CN101521899B (zh) | 2010-11-17 |
Family
ID=41082220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910010993XA Expired - Fee Related CN101521899B (zh) | 2009-03-31 | 2009-03-31 | 用于移动应用程序的机上测试系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101521899B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014015573A1 (zh) * | 2012-07-24 | 2014-01-30 | 北京播思无线技术有限公司 | 一种用于移动设备的无线自动化测试装置及方法 |
CN108804300A (zh) * | 2017-04-27 | 2018-11-13 | 龙芯中科技术有限公司 | 自动化测试方法及系统 |
CN109426605A (zh) * | 2017-08-23 | 2019-03-05 | 龙芯中科技术有限公司 | 计算机的稳定性测试方法和装置 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789967B (zh) * | 2010-01-12 | 2013-11-13 | 重庆大学 | 基于电子商务的远程测试服务系统及其使用方法 |
CN101917394B (zh) * | 2010-06-13 | 2013-03-20 | 大连海事大学 | 在手机设备上进行数据共享的中间件系统及工作方法 |
CN101930400B (zh) * | 2010-08-20 | 2013-07-31 | 北京神州泰岳软件股份有限公司 | Sdk自动化测试系统及方法 |
WO2012027886A1 (en) * | 2010-08-31 | 2012-03-08 | Google Inc. | Platform specific application test |
CN101976220B (zh) * | 2010-09-27 | 2013-02-20 | 北京神州泰岳软件股份有限公司 | 单元测试系统 |
CN102567187B (zh) * | 2010-12-07 | 2016-01-13 | 北京广利核系统工程有限公司 | 一种利用C++test执行SCADE测试对象的方法 |
CN103246601B (zh) * | 2012-02-10 | 2018-01-09 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN103309795B (zh) * | 2012-03-08 | 2015-12-09 | 百度在线网络技术(北京)有限公司 | 软件测试方法和系统 |
CN102708050B (zh) * | 2012-04-21 | 2015-04-08 | 北京云测信息技术有限公司 | 移动应用测试方法和系统 |
CN102708049B (zh) * | 2012-04-21 | 2015-11-18 | 北京云测信息技术有限公司 | 移动应用测试结果记录和回放方法和系统 |
CN103391559B (zh) * | 2012-05-07 | 2018-04-13 | 腾讯科技(深圳)有限公司 | 测试交互数据的方法、模拟终端和系统 |
CN103457783B (zh) | 2012-05-31 | 2017-04-12 | 国际商业机器公司 | 用于测试移动网络应用的方法和系统 |
CN102736977B (zh) * | 2012-06-07 | 2016-01-06 | 四川九洲空管科技有限责任公司 | 一种tcasii防撞算法的标准符合性验证方法 |
CN102855184B (zh) * | 2012-07-24 | 2015-06-10 | 播思通讯技术(北京)有限公司 | 一种Android自动测试跨应用的装置及方法 |
CN103678294B (zh) * | 2012-08-29 | 2018-08-07 | 百度在线网络技术(北京)有限公司 | 一种用于选择移动设备类型的方法、装置和设备 |
CN103795744A (zh) * | 2012-10-30 | 2014-05-14 | 上海今日在线科技发展有限公司 | 一种在线测试云服务平台 |
CN103795743A (zh) * | 2012-10-30 | 2014-05-14 | 上海今日在线科技发展有限公司 | 一种安全智能云服务方法 |
CN103019939B (zh) * | 2012-12-27 | 2015-07-22 | 广州广电运通金融电子股份有限公司 | 一种测试驱动程序的方法及系统 |
CN103237082B (zh) * | 2013-05-06 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 云测试方法、系统和云端服务器 |
CN103957504B (zh) * | 2014-04-21 | 2018-05-04 | 百度在线网络技术(北京)有限公司 | 定位服务评估方法、装置及系统 |
CN104035869A (zh) * | 2014-06-19 | 2014-09-10 | 科大讯飞股份有限公司 | 一种应用的评测方法、终端及服务器 |
CN104063325B (zh) * | 2014-07-11 | 2016-10-26 | 电子科技大学 | 一种针对嵌入式软件的测试用例自动化生成装置及其方法 |
CN104317699A (zh) * | 2014-07-24 | 2015-01-28 | 小米科技有限责任公司 | 应用程序审核方法及装置 |
CN105335210A (zh) * | 2014-07-30 | 2016-02-17 | 小米科技有限责任公司 | 分发任务的方法及装置 |
CN105446872B (zh) * | 2014-08-29 | 2018-04-10 | 国际商业机器公司 | 测试移动应用的管理器、测试代理器及方法 |
CN105446874B (zh) * | 2014-09-25 | 2019-03-15 | 北京畅游天下网络技术有限公司 | 一种资源配置文件的检测方法和装置 |
CN104375943A (zh) * | 2014-12-11 | 2015-02-25 | 吴翔虎 | 一种基于静态模型的嵌入式软件黑盒测试用例生成方法 |
CN105808422B (zh) * | 2014-12-31 | 2019-03-15 | 视联动力信息技术股份有限公司 | 一种基于网络的软件测试方法、客户端及待测试设备 |
CN104506661B (zh) * | 2015-01-14 | 2018-09-04 | 西安电子科技大学 | 一种远程配置的基于使用场景的手机功耗自动化产生方法 |
US9703691B1 (en) | 2015-06-15 | 2017-07-11 | Google Inc. | Testing application software using virtual or physical devices |
CN106598831A (zh) * | 2015-10-16 | 2017-04-26 | 北京国双科技有限公司 | Sdk测试的方法及装置 |
CN107305511A (zh) * | 2016-04-18 | 2017-10-31 | 展讯通信(上海)有限公司 | 共享终端测试仪表的移动终端测试方法及系统 |
CN106445810B (zh) * | 2016-08-30 | 2019-02-05 | 福建天晴数码有限公司 | 一种交互式软件与设备兼容性的测试方法及系统 |
CN106354643B (zh) * | 2016-08-30 | 2019-04-09 | 福建天晴数码有限公司 | 一种交互式软件的偶然性错误测试方法及系统 |
CN106850343A (zh) * | 2017-01-22 | 2017-06-13 | 上海易贷网金融信息服务有限公司 | 一种移动应用程序端网络检测系统 |
CN106980574A (zh) * | 2017-03-10 | 2017-07-25 | 武汉融卡智能信息科技有限公司 | 一种tee下全功能测试系统及测试方法 |
CN107315683A (zh) * | 2017-06-22 | 2017-11-03 | 四川长虹电器股份有限公司 | 一种安卓移动应用的自动化测试平台及测试方法 |
CN107342897A (zh) * | 2017-07-06 | 2017-11-10 | 广州优视网络科技有限公司 | 应用测试方法、装置、用户终端及系统 |
CN107395586A (zh) * | 2017-07-17 | 2017-11-24 | 深信服科技股份有限公司 | 一种更新网络安全产品的方法、实验节点及相关系统 |
CN107526661A (zh) * | 2017-08-21 | 2017-12-29 | 郑州云海信息技术有限公司 | 一种虚拟机磁盘性能的测试方法及系统 |
CN108009093A (zh) * | 2017-12-22 | 2018-05-08 | 北京远特科技股份有限公司 | 一种软件测试方法、装置及系统 |
CN110737574A (zh) * | 2018-07-18 | 2020-01-31 | 北京奇虎科技有限公司 | 应用测试方法和装置 |
CN109558312B (zh) * | 2018-11-07 | 2022-03-15 | 中国航空工业集团公司西安飞机设计研究所 | 机载软件的测试方法 |
CN109560986A (zh) * | 2018-11-23 | 2019-04-02 | 赛尔通信服务技术股份有限公司 | 物联网网关设备的测试方法、装置和测试系统 |
CN109615075B (zh) * | 2018-12-14 | 2022-08-19 | 大连海事大学 | 一种基于多层聚类模型的居民日常行为识别方法 |
CN111629205B (zh) * | 2020-07-28 | 2020-11-20 | 天津美腾科技股份有限公司 | 一种应用于工业相机模拟测试的系统和方法 |
CN115083035A (zh) * | 2021-03-15 | 2022-09-20 | 北汽福田汽车股份有限公司 | 数据采集方法和装置、介质、设备、车辆 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201392526Y (zh) * | 2009-03-25 | 2010-01-27 | 大连海事大学 | 用于移动应用程序的机上测试系统 |
-
2009
- 2009-03-31 CN CN200910010993XA patent/CN101521899B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201392526Y (zh) * | 2009-03-25 | 2010-01-27 | 大连海事大学 | 用于移动应用程序的机上测试系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014015573A1 (zh) * | 2012-07-24 | 2014-01-30 | 北京播思无线技术有限公司 | 一种用于移动设备的无线自动化测试装置及方法 |
CN108804300A (zh) * | 2017-04-27 | 2018-11-13 | 龙芯中科技术有限公司 | 自动化测试方法及系统 |
CN109426605A (zh) * | 2017-08-23 | 2019-03-05 | 龙芯中科技术有限公司 | 计算机的稳定性测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101521899A (zh) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101521899B (zh) | 用于移动应用程序的机上测试系统和方法 | |
CN201392526Y (zh) | 用于移动应用程序的机上测试系统 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
US20080148237A1 (en) | Debugging method and apparatus for developing telecom-class service based on model driven | |
CN103634154B (zh) | 网络状态的模拟系统及其模拟方法 | |
CN107368408A (zh) | 一种面向接口的软件故障注入自动化测试方法 | |
CN110928783A (zh) | 基于RobotFramework自动化测试数据化改造的平台 | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN102722440A (zh) | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 | |
WO2009062419A1 (fr) | Système et procédé de test | |
CN101137170A (zh) | 一种嵌入设备的软件自动测试工具及方法 | |
CN101888318A (zh) | 一种通信系统性能指标测试的系统和方法 | |
CN109710513B (zh) | 一种用于cbtc系统自动化测试的引擎 | |
CN101287266A (zh) | 手机测试系统及方法 | |
WO2007061241A1 (en) | Error test method for mobile communication terminals | |
CN102479152A (zh) | 基于Android平台获取工具自动测试结果的方法及装置 | |
US20040138970A1 (en) | Scripting designer for a billing mediation system | |
CN109857637A (zh) | 一种基于注解的Java语言方法覆盖率和方法输入输出统计方法及装置 | |
CN109542444B (zh) | Java应用的监控方法、装置、服务器和存储介质 | |
CN102750143A (zh) | 基于matlab com组件调用的dsp开发方法 | |
CN108959094A (zh) | 一种基于数据结构的测试程序的定义和应用方法 | |
CN101141767A (zh) | 一种网络管理平台测试系统及方法 | |
CN101916221A (zh) | 一种针对设备进行单元测试的方法和系统 | |
CN115525561A (zh) | 协议接口测试方法、装置、终端设备以及存储介质 | |
CN113434387A (zh) | 一种基于脚本驱动的自动化测试工具及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101117 Termination date: 20110331 |