CN102819484A - 软件测试方法及其测试装置 - Google Patents
软件测试方法及其测试装置 Download PDFInfo
- Publication number
- CN102819484A CN102819484A CN2011101523879A CN201110152387A CN102819484A CN 102819484 A CN102819484 A CN 102819484A CN 2011101523879 A CN2011101523879 A CN 2011101523879A CN 201110152387 A CN201110152387 A CN 201110152387A CN 102819484 A CN102819484 A CN 102819484A
- Authority
- CN
- China
- Prior art keywords
- test
- ios system
- ocunit
- tool under
- fonemonkey
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例涉及一种软件测试方法,以及一种实现该测试方法的软件测试装置,所述测试方法及测试装置通过在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,并利用OCUnit测试框架自动对iOS系统下的UI自动化测试工具中所设置的脚本进行调用,从而可利用iOS系统下的UI自动化测试工具对软件进行自动测试,避免了手动人工测试,使得测试流程简单,成本降低,测试效率和测试精确度得到较佳提升。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种在iOS系统下进行软件测试的方法、以及一种实现该测试方法的装置。
背景技术
近年来,移动终端技术发展日新月异。以手机为典型代表的移动终端在一定程度上体现了通信技术的发展,对手机而言,其从早期的GSM(Global System for Mobile communications,全球移动通信系统)、CDMA(Code Division Multiple Access,码分多址), 逐渐发展到目前正在使用的3G(3rd Generation,第三代移动通信技术),并朝着蓄势待发的第四代移动通信网络技术发展。通信技术的发展相应地促进了手机的推广使用,手机的功能也不再局限于打电话,发短信,而是扩展到手机拍照摄像、上网收发电子邮件等。
为了检测移动终端的性能,为研发工作提供可靠数据,现有技术需要对移动终端进行测试。
移动终端测试,一般是指软件测试,传统的软件测试通常采用手动人工测试方式。但是手工测试存在不少弊端,例如在资源冲突测试方面手动测试精确度十分有限,另外,手动测试还具有流程复杂、成本较高的弊端。
另外,随着移动终端技术的发展,基于新的技术核心的移动终端不断涌现,其中,配备iOS系统的移动终端更是对软件测试提出了更高的要求。iOS是由苹果公司为iPhone(苹果公司的一款智能手机)开发的操作系统其是以Darwin(一个开放原始码操作系统)为基础的一种操作系统。iOS系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。
现有技术中对配置有iOS系统的移动终端中进行测试目前只能手动一次启动一个脚本进行测试,对于测试结果只能在模拟器进行查看,无法通过控制台进行查看。
发明内容
本发明实施例提供一种软件测试方法及其装置,目的在于解决现有技术中对于iOS系统下的软件无法进行自动测试的问题。
所述软件测试方法包括:
在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
根据所述iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序;
执行所述测试程序,在所述OCUnit测试框架中执行所述iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
本发明实施例还进一步提供一种实现上述测试方法的软件测试装置,包括:
嵌入模块,用于在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
配置模块,用于根据所述iOS系统下的UI自动化测试工具中预设的测试脚本配置相应的测试程序;
执行模块,用于执行所述配置模块所配置的测试程序,并在所述嵌入模块所嵌入的OCUnit测试框架中,执行所述iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
与现有技术相比,本发明实施例所述的测试方法及测试装置通过在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,并利用OCUnit测试框架自动对iOS系统下的UI自动化测试工具中所设置的脚本进行调用,从而可利用iOS系统下的UI自动化测试工具对软件进行自动测试,避免了手动人工测试,使得测试流程简单,成本降低,测试效率和测试精确度得到较佳提升。
附图说明
图1为本发明实施例提供的一种软件测试方法的流程示意图;
图2为一种运用在图1所示软件测试方法中的目录树文件的结构图;
图3为本发明实施例提供的一种软件测试装置的结构框架示意图;
图4为图3所示的软件测试装置内所具有的嵌入模块的结构框架示意图。
具体实施方式
请参阅图1,本发明实施例提供一种软件测试方法,其可用于在iOS系统下对软件进行测试,所述软件测试方法具体包括步骤S101~S103。
本实施例中,图1所示的测试方法可以在X-code场景中实现。需要指明的是,本实施例中具体实现场景并不局限于Xcode场景,其也可为其他能够实现相类似的技术操作流程的场景。
步骤S101:在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,具体的,步骤S101包括子步骤(1)~(3):
(1)在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架。
本实施例中, iOS系统下的UI自动化测试工具可以为FoneMonkey,OCUnit测试框架为苹果公司提供的可以进行单元测试的框架,具体可为SenTestingKit.framework框架。需要指明的是,FoneMonkey仅仅作为iOS系统下的UI自动化测试工具的一种示例,在实际应用中,其他的测试工具也可以实现相类似的技术方案,并不局限于具体实施例。在实际的应用场景中,上述的SenTestingKit.framework框架可以在硬盘的developer-library-frameworks文件夹里获取到。
对于X-code场景,本步骤的具体处理过程是在FoneMonkey中相应的项目targets选项中添加OCUnit测试框架。
通过子步骤(1)的处理, OCUnit测试框架与FoneMonkey实现了结构上的嵌入。
(2)修改iOS系统下的UI自动化测试工具中的指引标识。
本实施例中,具体地,可进一步修改FoneMonkey中other linker flags 项目的值为-ObjC –all_load -lFoneMonkey –lFoneMonkeyOCUnit。
该数值的提出是本发明实施例所给出的其中一种实施方式,可以理解的是,在其它变更实施方式中,也可利用其它能够将FoneMonkey中的指引标识指向嵌入的OCUnit测试框架(SenTestingKit.framework框架)的数值,并不局限于具体实施例。
(3)在iOS系统下的UI自动化测试工具中添加与OCUnit测试框架相适配的接口。
具体地,在FoneMonkey的安装目录中获取libFoneMonkeyOCUnit API,作为与OCUnit测试框架相适配的接口,添加到FoneMonkey中。
通过该子步骤实现FoneMonkey与OCUnit测试框架之间的逻辑接口的连接,使得FoneMonkey与OCUnit测试框架之间能够实现相应的通信,为后续的软件测试提供信息交互通道。
本实施例中,该步骤是FoneMonkey与OCUnit实现逻辑接口连接的适配过程,其中的API版本应与之前步骤中的OCUnit和FoneMonkey中的版本相匹配,以保证接口连接的正常实现。
步骤S102:根据iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序。
在FoneMonkey中相应的待测试项目(TEST OBJECT)的工程文件(Test Case)目录里编写一个程序,让FoneMonkey的脚本自动运行起来,相应的目录树文件结构如图2所示。
在上述的目录中,定义了一个接口文件(TestCase1.h)和一个实现文件(TestCase1.m),其中,接口文件主要是用来实现OCUnie和FoneMonkey的结合调用,实现文件用来调用接口文件实现代码功能,。
为了更加清楚的说明本技术方案,以下分别给出了接口文件和实现文件的示例。
其中,在本接口文件TestCase1.h中,主要引用了三个类(即如下所示的SenTestingKit/SenTestingKit.h、UIKit/UIKit.h和FoneMonkeyAPI.h),完成FoneMonkey和OCUnit的逻辑连接配置,具体的示例如下:
进一步的,实现文件TestCase1.m的示例如下:
通过上述过程,即可完成对于测试平台以及测试程序的配置,其中,对于测试脚本的编写和设置可以在步骤S102之前的任意步骤完成,这样的变化并不影响本发明的保护范围。
步骤S103:执行测试程序,在OCUnit测试框架中执行iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
按照步骤S102配置的接口文件和实现文件的配置,可以实现用FoneMonkey的palyFile方法来调用录制好的FoneMonkey脚本来实现在OCUnit框架中的运行,调用方法例如NSString *res = [FoneMonkeyAPI playFile:"重置",其中“重置”是已经录制好的脚本名称,palyFile是FoneMonkey中的一个API,用来在OCUnit框架中调用录制好的脚本。
这样,每次运行这个程序,就可以让FoneMonkey的脚本按照设定的顺序自动进行测试了。
需要指出的是,在上述的实现文件中,共调用了“重置”、“记住密码成功”、“记住密码失败”、“各种错误登录”、“历史账号登录”和“4个历史帐号登录”六个预设的测试脚本,在实际的应用场景中,可以采用其它类型的脚本,脚本数量、顺序及内容也可根据实际应用相应变化。
与现有技术相比,本发明实施例通过在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,并利用OCUnit测试框架自动对iOS系统下的UI自动化测试工具中所设置的脚本进行调用,从而可利用iOS系统下的UI自动化测试工具对软件进行自动测试,避免了手动人工测试,使得测试流程简单,成本降低,测试效率和测试精确度得到较佳提升。
为了实现本发明实施例的技术方案,本发明实施例还提供了一种实现上述软件测试方法的软件测试装置,其结构示意图如图3所示,具体包括:
嵌入模块31,用于在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
配置模块32,用于根据iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序;
执行模块33,用于执行配置模块32所配置的测试程序,并在嵌入模块31所嵌入的OCUnit测试框架中,执行iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
如图4所示,所述嵌入模块31具体可包括嵌入子模块311、修改子模块312、以及添加子模块313,其中,嵌入子模块311用于在X-code场景中,在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,修改子模块312用于修改iOS系统下的UI自动化测试工具中的指引标识,添加子模块313用于在iOS系统下的UI自动化测试工具中添加与OCUnit测试框架相适配的接口。当iOS系统下的UI自动化测试工具为FoneMonkey时,嵌入子模块311具体用于在FoneMonkey中相应的项目targets选项中添加OCUnit测试框架,修改子模块312具体用于修改FoneMonkey中相应的项目other linker flags选项的值,添加子模块313具体用于在FoneMonkey的安装目录中获取libFoneMonkeyOCUnit API,作为与OCUnit测试框架相适配的接口,并将其添加到FoneMonkey中。另外,配置模块32具体用于在待测试软件所对应的测试项目下建立接口文件和实现文件,该实现文件中包含iOS系统下的UI自动化测试工具中预设的测试脚本的信息。
与现有技术相比,本发明实施例通过在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架,并利用OCUnit测试框架自动对iOS系统下的UI自动化测试工具中所设置的脚本进行调用,从而可利用iOS系统下的UI自动化测试工具对软件进行自动测试,避免了手动人工测试,使得测试流程简单,成本降低,测试效率和测试精确度得到较佳提升。
通过对以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所述的方法。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并局限于此,任何本领域的技术人员能思之的变化都应落入本发明实施例的业务限制范围。
Claims (10)
1.一种软件测试方法,其特征在于,包括:
在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
根据所述iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序;
执行所述测试程序,在所述OCUnit测试框架中,执行所述iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
2.如权利要求1所述的方法,其特征在于,所述方法运用在X-code场景中,所述在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架包括步骤:
在所述iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
修改所述iOS系统下的UI自动化测试工具中的指引标识;
在所述iOS系统下的UI自动化测试工具中添加与所述OCUnit测试框架相适配的接口。
3.如权利要求2所述的方法,其特征在于,所述iOS系统下的UI自动化测试工具为FoneMonkey,在所述iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架包括:在所述FoneMonkey中相应的项目targets选项中添加所述OCUnit测试框架。
4.如权利要求2所述的方法,其特征在于,所述iOS系统下的UI自动化测试工具为FoneMonkey,所述修改所述iOS系统下的UI自动化测试工具中的指引标识包括:
修改所述FoneMonkey中相应的项目other linker flags选项的值。
5.如权利要求2所述的方法,其特征在于,所述iOS系统下的UI自动化测试工具为FoneMonkey,所述在所述iOS系统下的UI自动化测试工具中添加与所述OCUnit测试框架相适配的接口包括:
在所述FoneMonkey的安装目录中获取libFoneMonkeyOCUnit API,作为与所述OCUnit测试框架相适配的接口,并将其添加到所述FoneMonkey中。
6.如权利要求1所述的方法,其特征在于,所述根据所述iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序包括:
在待测试软件所对应的测试项目下建立接口文件和实现文件;所述实现文件中包含所述iOS系统下的UI自动化测试工具中预设的测试脚本的信息。
7.一种软件测试装置,其特征在于,包括:
嵌入模块,用于在iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
配置模块,用于根据所述iOS系统下的UI自动化测试工具中预设的测试脚本配置与该测试脚本相应的测试程序;
执行模块,用于执行所述配置模块所配置的测试程序,并在所述嵌入模块所嵌入的OCUnit测试框架中,执行所述iOS系统下的UI自动化测试工具中预设的测试脚本,并对相应的软件进行测试。
8.如权利要求7所述的装置,其特征在于,所述嵌入模块包括:
嵌入子模块,用于在X-code场景中,在所述iOS系统下的UI自动化测试工具中嵌入OCUnit测试框架;
修改子模块,用于修改所述iOS系统下的UI自动化测试工具中的指引标识;
添加子模块,用于在所述所述iOS系统下的UI自动化测试工具中添加与所述OCUnit测试框架相适配的接口。
9.如权利要求8所述的装置,其特征在于,所述装置运用在在X-code场景中,所述iOS系统下的UI自动化测试工具为FoneMonkey,所述嵌入子模块用于在所述FoneMonkey中相应的项目targets选项中添加所述OCUnit测试框架,所述修改子模块用于修改所述FoneMonkey中相应的项目other linker flags选项的值,所述添加子模块用于在所述FoneMonkey的安装目录中获取libFoneMonkeyOCUnit API,作为与所述OCUnit测试框架相适配的接口,并将其添加到所述FoneMonkey中。
10.如权利要求7所述的装置,其特征在于,所述配置模块用于在待测试软件所对应的测试项目下建立接口文件和实现文件,所述实现文件中包含所述iOS系统下的UI自动化测试工具中预设的测试脚本的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110152387.9A CN102819484B (zh) | 2011-06-08 | 2011-06-08 | 软件测试方法及其测试装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110152387.9A CN102819484B (zh) | 2011-06-08 | 2011-06-08 | 软件测试方法及其测试装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819484A true CN102819484A (zh) | 2012-12-12 |
CN102819484B CN102819484B (zh) | 2017-02-22 |
Family
ID=47303606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110152387.9A Active CN102819484B (zh) | 2011-06-08 | 2011-06-08 | 软件测试方法及其测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102819484B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761186A (zh) * | 2014-01-17 | 2014-04-30 | 中国航空无线电电子研究所 | 符合arinc661规范的飞机座舱显示系统服务器软件的测试方法 |
CN105868118B (zh) * | 2016-06-27 | 2018-09-11 | 北京奇虎科技有限公司 | 应用测试方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010016867A1 (en) * | 2000-01-11 | 2001-08-23 | Hu Xiao Wei | Framework system and method for testing server performance |
CN1816043A (zh) * | 2005-02-06 | 2006-08-09 | 华为技术有限公司 | 基于组件复用的脚本生成装置及其方法 |
CN101187894A (zh) * | 2006-11-15 | 2008-05-28 | 中兴通讯股份有限公司 | 一种基于关键字驱动的自动测试方法及其测试系统 |
-
2011
- 2011-06-08 CN CN201110152387.9A patent/CN102819484B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010016867A1 (en) * | 2000-01-11 | 2001-08-23 | Hu Xiao Wei | Framework system and method for testing server performance |
CN1816043A (zh) * | 2005-02-06 | 2006-08-09 | 华为技术有限公司 | 基于组件复用的脚本生成装置及其方法 |
CN101187894A (zh) * | 2006-11-15 | 2008-05-28 | 中兴通讯股份有限公司 | 一种基于关键字驱动的自动测试方法及其测试系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761186A (zh) * | 2014-01-17 | 2014-04-30 | 中国航空无线电电子研究所 | 符合arinc661规范的飞机座舱显示系统服务器软件的测试方法 |
CN105868118B (zh) * | 2016-06-27 | 2018-09-11 | 北京奇虎科技有限公司 | 应用测试方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102819484B (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412789A (zh) | 一种启动应用程序的方法、系统及移动终端 | |
CN106445663A (zh) | 应用数据的迁移方法及装置 | |
CN107908680A (zh) | 微信公众号的管理方法、电子装置及计算机可读存储介质 | |
CN102497424A (zh) | 一种通过移动存储设备实现云存储的方法 | |
WO2020231525A1 (en) | User interface and smart contract interaction model for generating user interface representations | |
CN103176899A (zh) | 手机模拟器及在宿主机上模拟手机功能的方法 | |
CN105515883A (zh) | 一种测试方法及系统 | |
CN105279006A (zh) | 基于Android系统的屏幕截图方法及终端 | |
CN104572440A (zh) | 一种测试软件兼容性的方法和装置 | |
CN101894021A (zh) | 一种嵌入式系统的界面实现方法及系统 | |
CN104572443A (zh) | 一种移动终端测试方法及装置 | |
CN101827158A (zh) | 实现手机中图片资源统一处理的方法和系统 | |
CN102841782A (zh) | 全局变量管理方法及装置 | |
CN102819484A (zh) | 软件测试方法及其测试装置 | |
CN105278928A (zh) | Ivr对外接口配置方法及装置 | |
CN110019260B (zh) | 一种用户数据的更新方法及相关设备 | |
CN110399232A (zh) | 粘贴处理方法、装置、设备及计算机可读存储介质 | |
CN109660672A (zh) | 语音类型的转换方法、设备及计算机可读存储介质 | |
CN106411718B (zh) | 一种基于即时通信应用的数据同步方法及装置 | |
KR20130014203A (ko) | 스마트 기기에서의 다중 운영체제 플랫폼 | |
CN110795388A (zh) | 一种二进制文件的处理方法、系统、设备及可读存储介质 | |
CN104219084A (zh) | 一种板卡的启动方法和设备 | |
CN103761096A (zh) | 基于IBinder机制实现的自动输入方法及装置 | |
CN108984238B (zh) | 应用程序的手势处理方法、装置及电子设备 | |
CN104965742A (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 |