[go: up one dir, main page]

CN109376087A - 一种软件测试方法、装置及电子设备 - Google Patents

一种软件测试方法、装置及电子设备 Download PDF

Info

Publication number
CN109376087A
CN109376087A CN201811228629.6A CN201811228629A CN109376087A CN 109376087 A CN109376087 A CN 109376087A CN 201811228629 A CN201811228629 A CN 201811228629A CN 109376087 A CN109376087 A CN 109376087A
Authority
CN
China
Prior art keywords
file
test
new
ipa
compiling
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.)
Pending
Application number
CN201811228629.6A
Other languages
English (en)
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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201811228629.6A priority Critical patent/CN109376087A/zh
Publication of CN109376087A publication Critical patent/CN109376087A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明实施例提供了一种软件测试方法、装置及电子设备,具体方案如下:在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;编译该测试文件,得到编译后的测试文件;将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件;通过运行新的IPA文件,测试待测软件。采用本发明实施例提供的方案,可以不依赖待测软件的源代码,完成软件测试过程,降低了测试成本。

Description

一种软件测试方法、装置及电子设备
技术领域
本发明涉及软件测试技术领域,特别是涉及一种软件测试方法、装置及电子设备。
背景技术
软件自动化测试的方法可以分为两种,一种是原生工具测试方法,另一种是第三方测试框架测试方法。其中,原生工具测试方法是在已知待测软件源代码的基础上,实现对待测软件自动化测试方法,采用这种方法测试效率高,测试速度快,流程性好;第三方测试框架测试方法可以不依赖所测试软件的源代码,实现对待测软件自动化测试的方法。
在软件的自动化测试过程中,原生工具测试方法由于其过分依赖待测软件的源代码,往往只适用于对自主研发的软件进行测试。第三方测试框架测试方法在测试前期需要充分了解待测软件的层级结构,并根据软件的层级结构配置测试框架。整个过程中测试框架配置较为复杂,并且测试框架的运行需要依赖于特定的运行环境,测试成本相对较高。
发明内容
本发明实施例的目的在于提供一种软件测试方法、装置及电子设备,可以不依赖待测软件的源代码,完成软件测试过程,降低测试成本。具体技术方案如下:
本发明实施例提供了一种软件测试方法,所述方法,包括:
在预设iOS(iPhone OS,苹果操作系统)动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;
编译所述测试文件,得到编译后的测试文件;
将编译后的测试文件导入所述待测软件的IPA(iPhone Application,苹果应用程序)中,得到新的IPA文件;
通过运行所述新的IPA文件,测试所述待测软件。
进一步的,所述编译所述测试文件,得到编译后的测试文件,包括:
基于底层虚拟机LLVM(Low Level Virtual Machine,底层虚拟机)编译器,将测试文件编译为dylib(动态链接库)类型的动态库文件,作为编译后的测试文件。
进一步的,所述IPA文件包括动态库文件集合和可执行文件;
所述将编译后的测试文件导入所述待测软件的苹果应用程序IPA文件中,得到新的IPA文件,包括:
将编译后的测试文件导入所述待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合;
在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件;
生成包含所述新的动态库文件集合和所述新的可执行文件的新的IPA文件。
进一步的,所述可执行文件为Mach-O文件;
所述在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件,包括:
按照编译后的测试文件在所述新的动态库文件集合中的位置,在所述Mach-O文件的加载指令列表中,添加所述测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。
本发明实施例提供了一种软件测试装置,所述装置,包括:
测试文件生成模块,用于在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;
测试文件编译模块,用于编译所述测试文件,得到编译后的测试文件;
IPA文件确定模块,用于将编译后的测试文件导入所述待测软件的IPA文件中,得到新的IPA文件;
软件测试模块,用于通过运行所述新的IPA文件,测试所述待测软件。
进一步的,所述测试文件编译模块,具体用于基于LLVM编译器,将所述测试文件编译为dylib类型的动态库文件,作为编译后的测试文件。
进一步的,所述IPA文件包括动态库文件集合和可执行文件;
所述IPA文件确定模块,包括:
动态库文件集合确定子模块,用于将编译后的测试文件导入所述待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合;
可执行文件确定子模块,用于在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件;
IPA文件生成子模块,用于生成包含所述新的动态库文件集合和所述新的可执行文件的新的IPA文件。
进一步的,所述可执行文件为Mach-O文件;
所述可执行文件子确定模块,具体用于按照编译后的测试文件在所述新的动态库文件集合中的位置,在所述Mach-O文件的加载指令列表中,添加所述测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。
本发明实施例还提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一软件测试方法步骤。
本发明实施还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一软件测试方法的步骤。
本发明实施例提供的一种软件测试方法、装置及电子设备,可以在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;编译该测试文件,得到编译后的测试文件;将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件;通过运行新的IPA文件,测试待测软件。采用本发明实施例提供的方法,可以不依赖待测软件的源代码,完成软件测试过程,降低了测试成本。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种软件测试的方法流程图;
图2-a为本发明实施例提供的采用Xcode创建iOS动态库的软件界面示意图之一;
图2-b为本发明实施例提供的采用Xcode创建iOS动态库的软件界面示意图之二;
图3为本发明实施例提供的Mach-O文件的结构示意图;
图4为本发明实施例提供的一种软件测试装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供的一种软件测试方法、装置及电子设备,在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;编译该测试文件,得到编译后的测试文件;将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件;通过运行新的IPA文件,测试待测软件。采用本发明实施例提供的方法,可以不依赖待测软件的源代码,完成软件测试过程,降低了测试成本。
本发明实施例提供了一种软件测试方法,如图1所示,可以包括以下步骤:
步骤S101,在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件。
在本步骤中,在预设iOS动态库中,可以通过预设加载入口,将针对待测软件进行测试所需的测试用例代码加载到预设iOS动态库中,生成测试文件。
具体的,以开发工具Xcode为例进行说明,如图2所示,在Xcode中为用户提供了多种应用程序模板,如图2-a中的游戏应用程序、即时聊天应用程序等。在本发明实施例中,由于仅仅需要创建一个iOS框架的动态库,因此,只要选在图2-a中的iOS的框架和库中选择创建一个Cocoa Touch动态库,其中Cocoa Touch是iOS中的一套框架集合。并根据如图2-b所示的界面在Mach-O文件类型选项中选择动态库,从而完成对预设iOS动态库的创建。当然在创建过程中,还会涉及动态库名称等的设置,在此就不作具体说明了。基于预设iOS动态库,可以从预设加载入口,将针对待测软件进行测试所需的测试用例代码加载到预设iOS动态库中,生成测试文件。此时,预设iOS动态库中针对待测软件测试所需的测试用例代码的测试文件是.m类型或者.h类型的文件。
在本发明实施例中,上述测试文件的生成,除了通过加载入口加载到预设iOS动态库中,生成测试文件,还可以在预设iOS动态库中直接编写上述测试用例代码,生成对应的.m类型或者.h类型的文件,得到测试文件。
步骤S102,编译测试文件,得到编译后的测试文件。
在本步骤中,对上述步骤S101得到的.m类型或者.h类型的测试文件进行编译,得到编译后的测试文件。
进一步的,可以基于LLVM编译器,将上述测试文件编译为dylib类型的动态库文件,作为编译后的测试文件。
具体的,可以采用LLVM编译器将上述.m类型或者.h类型的测试文件编译为动态库文件,作为编译后的测试文件,编译后的测试文件将为.dylib类型的动态库文件。
在本发明实施例中,上述编译过程主要是将.m类型或者.h类型的文件编译为.dylib类型文件。但是实际运用过程中,还需要运行编译后的测试文件,对生成的.dylib类型文件进行调试。因此,在Xcode中,测试文件的编译方法可以是设备编译,也可以是模拟器编译。所谓设备编译表示在得到编译后的测试文件后,采用真实的设备对编译后的测试文件进行调试,所谓模拟器编制则是在Xcode中有调试所需的模拟器,可以选择模拟器对编译后的测试文件进行调试。关于编译的具体步骤,可以参考现有技术,在此就不作具体说明了。
在本发明实施例中,编译时所使用的编译器除了上述的LLVM编译器以外,还可以采用clang编译器,GCC(GNU Compiler Collection,GNU编译器套件)等,对上述测试文件进行编译,得到编译后的测试文件。
步骤S103,将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件。
在本步骤中,可以通过解压待测软件的IPA文件,在该IPA文件中导入编译后的测试文件,并进行压缩得到新的IPA文件。
进一步的,IPA文件可以包括动态库文件集合和可执行文件。
针对上述步骤S103,将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件,可以包括以下步骤:
步骤S1031,将编译后的测试文件导入待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合。
在本步骤中,针对待测软件解压后的IPA文件,可以将编译后的测试文件导入该IPA文件的动态库文件集合中,得到新的动态库文件集合。
针对上述IPA文件的动态库文件集合可以为Framework(架构)文件夹。
可以在待测软件的IPA文件的Framework文件夹中,导入编译后的测试文件,得到新的Framework文件夹,作为新的动态库文件集合。
具体的,在待测软件的IPA文件的Framework文件夹中,导入上述.dylib类型的编译后的测试文件,得到新的Framework文件夹,作为新的动态库文件集合。
步骤S1032,在可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件。
在本步骤中,可以在上述可执行文件的加载指令列表中,根据编译后的测试文件在新的动态库文件集合中的位置,添加编译后的测试文件的加载路径,得到新的可执行文件。
进一步的,上述可执行文件可以为Mach-O文件。
按照编译后的测试文件在新的动态库文件集合中的位置,在Mach-O文件的加载指令列表中,添加测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。例如,假设上述测试文件的名称为Test.dylib,其具体位置表示为:/System/Library/Framework/Test.dylib,在Mach-O文件的LoadCommands中,可以用“/System/Library/Framework/Test.dylib”表示上述测试文件的加载路径。
在本发明实施例中,根据上述可知,可执行文件可以是Mach-O类型的文件。关于Mach-O文件的具体结构,可以参见图3。在Mach-O文件中,主要可以包括Header(头部)、LoadCommands和Data(数据),其中,Header为图3中的头文件部分,LoadCommands为图3中的加载指令列表部分,Data为图3中的数据部分。Header中包括Mach-O文件基本信息,如,库的类型,加载命令的数量,加载命令所占内存的大小,相应的标记等信息;LoadCommands则是对Mach-O文件中的加载的具体限定,如,加载地址,加载方式等,Data是Mach-O文件的原始编译数据,并与LoadCommands中的加载指令关联,如,图3中的段指令1与第一段数据中的第一区域数据、第二区域数据以及第三区域数据都存在关联。因此,对于上述新的可执行文件的生成,在Mach-O文件中,不但需要在LoadCommands中新增了编译后的测试文件的加载路径,还需要适应性对Header以及Data进行调整。
步骤S1033,生成包含新的动态库文件集合和新的可执行文件的新的IPA文件。
在本步骤中,利用新的动态库文件集合更新待测软件IPA文件中的动态库文件集合,以及利用新的可执行文件更新待测软件IPA文件的可执行文件,得到更新后的IPA文件,并对更新后的IPA文件进行压缩,得到新的IPA文件。
在本发明实施例中,上述IPA文件为待测软件对应的程序包,可以包括静态库、动态库、资源库以及可执行文件等。一般来说,静态库中的文件类型是.a类型或者.framework,动态库中的文件类型是.dylib类型或者.framework类型,可执行文件是Mach-O类型文件,而上述Framework文件夹表示上述IPA文件的动态库文件集合,在该动态库文件集合中包含有.dylib类型或者.framework类型的文件。因此,可以将编译后的测试文件导入该动态库文件集合中,并对待测软件的IPA文件进行更新,得到新的IPA文件。
步骤S104,通过运行新的IPA文件,测试待测软件。
在本步骤中,运行上述新的IPA文件,该新的IPA文件中新的可执行文件将被加载,根据新的可执行文件的LoadCommands列表,通过上述编译后的测试文件对应的加载路径,加载测试文件,对待测软件进行测试。
针对上述本发明实施例提供的软件测试方法进行举例说明。假设现有一待测试软件需要进行测试,首先,可以根据上述步骤S101中的方法,基于iOS框架类型的动态库,构建一个iOS动态库,并在该iOS动态库中加载针对待测软件进行测试所需的测试用例代码,生成测试文件,将该测试文件命名为Test.m。然后,可以对Test.m文件进行编译,得到.dylib类型的文件,将编译后的测试文件命名为Test.dylib。接着,可以将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件。例如,待测软件的IPA文件的动态库文件集合为Framework文件夹,该动态库文件的地址为/System/Library/Framework,可以将Test.dylib导入Framework文件夹中,生成新的Framework文件夹;则该Test.dylib文件的地址可以是/System/Library/Framework/Test.dylib,并在可执行文件的LoadCommands列表中,可以根据Test.dylib文件在Framework文件夹的地址,添加该Test.dylib文件的加载地址,生成新的可执行文件,用新的Framework文件夹和新的可执行文件的更新待测软件的IPA文件,并对更新后的IPA文件进行压缩得到新的IPA文件。运行新的IPA文件,测试待测软件。
在本发明实施例中,上述IPA文件类似于Windows中的绿色软件一样,不需要安装,只要解压就可以使用。因此,将编译后的包含有针对待测软件进行测试所需测试用例代码的测试文件导入上述IPA文件中,当运行或者在设备中解压IPA文件时,将会执行新的可执行文件,从而通过新的可执行文件中编译后的测试文件的加载路径,调用测试用例代码,对待测软件进行自动化测试。由于待测软件的源代码存储在静态库文件集合中,则在对待测软件进行自动化测试过程中,不会调用待测软件的源代码。
另外,在IPA文件的PrivateFrameworks(私有架构)中包含有iOS系统的私有API(Application Programming Interface,应用程序编程接口),在对待测软件的进行测试时,可以通过调用上述私有API对待软件进行测试,可以更加方便的完成对待测软件进行测试。例如,对待测软件的界面中的视图进行测试,可以从PrivateFrameworks文件夹中调用上述私有API定位该待测软件的界面视图,并对界面视图进行测试。
综上所述,采用发明实施例提供的一种软件测试方法,可以不依赖待测软件的源代码,完成对待测软件的测试,并且整个测试过程相对简单,降低了测试的成本。
基于同一种发明构思,基于上述本发明实施例提供的一种软件测试方法,本发明实施例还提供了一种软件测试装置,如图4所示,可以包括以下模块:
测试文件生成模块401,用于在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件。
测试文件编译模块402,用于编译测试文件,得到编译后的测试文件。
IPA文件确定模块403,用于将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件。
软件测试模块404,用于通过运行新的IPA文件,测试待测软件。
进一步的,测试文件编译模块402,具体用于基于LLVM编译器,将测试文件编译为dylib类型的动态库文件,作为编译后的测试文件。
进一步的,IPA文件包括动态库文件集合和可执行文件;
IPA文件确定模块403,包括:
动态库文件集合确定子模块,用于将编译后的测试文件导入待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合;
可执行文件确定子模块,用于在可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件;
IPA文件生成子模块,用于生成包含新的动态库文件集合和新的可执行文件的新的IPA文件。
进一步的,可执行文件为Mach-O文件。
可执行文件确定子模块,具体用于按照编译后的测试文件在新的动态库文件集合中的位置,在Mach-O文件的加载指令列表中,添加测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;
编译测试文件,得到编译后的测试文件;
将编译后的测试文件导入待测软件的IPA文件中,得到新的IPA文件;
通过运行新的IPA文件,测试待测软件。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一软件测试方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一软件测试方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种软件测试方法,其特征在于,包括:
在预设苹果操作系统iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;
编译所述测试文件,得到编译后的测试文件;
将编译后的测试文件导入所述待测软件的苹果应用程序IPA文件中,得到新的IPA文件;
通过运行所述新的IPA文件,测试所述待测软件。
2.根据权利要求1所述的方法,其特征在于,所述编译所述测试文件,得到编译后的测试文件,包括:
基于底层虚拟机LLVM编译器,将所述测试文件编译为动态链接库dylib类型的动态库文件,作为编译后的测试文件。
3.根据权利要求1所述的方法,其特征在于,所述IPA文件包括动态库文件集合和可执行文件;
所述将编译后的测试文件导入所述待测软件的苹果应用程序IPA文件中,得到新的IPA文件,包括:
将编译后的测试文件导入所述待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合;
在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件;
生成包含所述新的动态库文件集合和所述新的可执行文件的新的IPA文件。
4.根据权利要求3所述的方法,其特征在于,所述可执行文件为Mach-O文件;
所述在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件,包括:
按照编译后的测试文件在所述新的动态库文件集合中的位置,在所述Mach-O文件的加载指令列表中,添加所述测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。
5.一种软件测试装置,其特征在于,包括:
测试文件生成模块,用于在预设iOS动态库中,加载针对待测软件进行测试所需的测试用例代码,生成测试文件;
测试文件编译模块,用于编译所述测试文件,得到编译后的测试文件;
IPA文件确定模块,用于将编译后的测试文件导入所述待测软件的IPA文件中,得到新的IPA文件;
软件测试模块,用于通过运行所述新的IPA文件,测试所述待测软件。
6.根据权利要求5所述的装置,其特征在于,所述测试文件编译模块,具体用于基于LLVM编译器,将所述测试文件编译为dylib类型的动态库文件,作为编译后的测试文件。
7.根据权利要求5所述的装置,其特征在于,所述IPA文件包括动态库文件集合和可执行文件;
所述IPA文件确定模块,包括:
动态库文件集合确定子模块,用于将编译后的测试文件导入所述待测软件的IPA文件的动态库文件集合中,得到新的动态库文件集合;
可执行文件确定子模块,用于在所述可执行文件的加载指令列表中,添加编译后的测试文件的加载路径,得到新的可执行文件;
IPA文件生成子模块,用于生成包含所述新的动态库文件集合和所述新的可执行文件的新的IPA文件。
8.根据权利要求7所述的装置,其特征在于,所述可执行文件为Mach-O文件;
所述可执行文件确定子模块,具体用于按照编译后的测试文件在所述新的动态库文件集合中的位置,在所述Mach-O文件的加载指令列表中,添加所述测试文件的加载路径,得到新的Mach-O文件,作为新的可执行文件。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN201811228629.6A 2018-10-22 2018-10-22 一种软件测试方法、装置及电子设备 Pending CN109376087A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811228629.6A CN109376087A (zh) 2018-10-22 2018-10-22 一种软件测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811228629.6A CN109376087A (zh) 2018-10-22 2018-10-22 一种软件测试方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN109376087A true CN109376087A (zh) 2019-02-22

Family

ID=65401338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811228629.6A Pending CN109376087A (zh) 2018-10-22 2018-10-22 一种软件测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109376087A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933350A (zh) * 2019-03-07 2019-06-25 江苏通付盾信息安全技术有限公司 在应用中嵌入代码的方法、装置及电子设备
CN109934016A (zh) * 2019-03-07 2019-06-25 江苏通付盾信息安全技术有限公司 应用的签名校验方法、装置及电子设备
CN110135154A (zh) * 2019-03-28 2019-08-16 江苏通付盾信息安全技术有限公司 应用程序的注入攻击检测系统及方法
CN110673576A (zh) * 2019-09-23 2020-01-10 广州小鹏汽车科技有限公司 自动测试方法与装置、车辆和存储介质
CN110750545A (zh) * 2019-09-03 2020-02-04 北京字节跳动网络技术有限公司 动态库热更新方法、装置、介质和设备
CN112052146A (zh) * 2020-07-24 2020-12-08 北京奇艺世纪科技有限公司 页面帧率测试方法、应用的安装文件生成方法及装置
CN113553271A (zh) * 2021-08-06 2021-10-26 北京自如信息科技有限公司 一种应用程序内部测试程序生成及测试方法
CN114237742A (zh) * 2021-12-10 2022-03-25 北京奇艺世纪科技有限公司 一种动态库的加载编译方法、装置、终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1744055A (zh) * 2004-09-04 2006-03-08 华为技术有限公司 一种软件测试方法
EP1683025A2 (en) * 2003-11-12 2006-07-26 UGS Corp. System, method, and computer program product for identifying code development errors
US20070234328A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation File handling for test environments
CN102402483A (zh) * 2011-12-27 2012-04-04 苏州佰思迈信息咨询有限公司 软件测试方法
CN104866419A (zh) * 2014-10-17 2015-08-26 北汽福田汽车股份有限公司 一种虚拟平台以及应用层软件测试方法及系统
CN107608873A (zh) * 2016-07-11 2018-01-19 珠海优特电力科技股份有限公司 软件测试方法和系统及测试平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1683025A2 (en) * 2003-11-12 2006-07-26 UGS Corp. System, method, and computer program product for identifying code development errors
CN1744055A (zh) * 2004-09-04 2006-03-08 华为技术有限公司 一种软件测试方法
US20070234328A1 (en) * 2006-03-01 2007-10-04 Microsoft Corporation File handling for test environments
CN102402483A (zh) * 2011-12-27 2012-04-04 苏州佰思迈信息咨询有限公司 软件测试方法
CN104866419A (zh) * 2014-10-17 2015-08-26 北汽福田汽车股份有限公司 一种虚拟平台以及应用层软件测试方法及系统
CN107608873A (zh) * 2016-07-11 2018-01-19 珠海优特电力科技股份有限公司 软件测试方法和系统及测试平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADMIN: "【技术分享】如何在.ipa文件上进行iOS代码注入", 《HTTP://WWW.52BUG.CN/HKJS/2450》 *
齐滇大圣: "iOS里的动态库和静态库", 《HTTPS://WWW.JIANSHU.COM/P/42891FB90304》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109934016A (zh) * 2019-03-07 2019-06-25 江苏通付盾信息安全技术有限公司 应用的签名校验方法、装置及电子设备
CN109933350A (zh) * 2019-03-07 2019-06-25 江苏通付盾信息安全技术有限公司 在应用中嵌入代码的方法、装置及电子设备
CN109934016B (zh) * 2019-03-07 2021-11-26 江苏通付盾信息安全技术有限公司 应用的签名校验方法、装置及电子设备
CN110135154B (zh) * 2019-03-28 2021-09-03 江苏通付盾信息安全技术有限公司 应用程序的注入攻击检测系统及方法
CN110135154A (zh) * 2019-03-28 2019-08-16 江苏通付盾信息安全技术有限公司 应用程序的注入攻击检测系统及方法
CN110750545A (zh) * 2019-09-03 2020-02-04 北京字节跳动网络技术有限公司 动态库热更新方法、装置、介质和设备
CN110750545B (zh) * 2019-09-03 2023-07-25 抖音视界有限公司 动态库热更新方法、装置、介质和设备
CN110673576A (zh) * 2019-09-23 2020-01-10 广州小鹏汽车科技有限公司 自动测试方法与装置、车辆和存储介质
CN110673576B (zh) * 2019-09-23 2021-04-13 广州小鹏汽车科技有限公司 自动测试方法与装置、车辆和存储介质
CN112052146A (zh) * 2020-07-24 2020-12-08 北京奇艺世纪科技有限公司 页面帧率测试方法、应用的安装文件生成方法及装置
CN113553271A (zh) * 2021-08-06 2021-10-26 北京自如信息科技有限公司 一种应用程序内部测试程序生成及测试方法
CN114237742A (zh) * 2021-12-10 2022-03-25 北京奇艺世纪科技有限公司 一种动态库的加载编译方法、装置、终端及存储介质
CN114237742B (zh) * 2021-12-10 2023-09-01 北京奇艺世纪科技有限公司 一种动态库的加载编译方法、装置、终端及存储介质

Similar Documents

Publication Publication Date Title
CN109376087A (zh) 一种软件测试方法、装置及电子设备
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
CN106547678B (zh) 用于白盒测试的方法和装置
US8918678B2 (en) Functional testing of a processor design
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
CN105143895B (zh) 从交互式图形用户界面中自动生成测试类预编译头
US10423408B2 (en) Identifying and isolating library code in software applications
EP2561441A1 (en) Improved embedded system performance
CN109101269A (zh) 一种软件交付方法及装置、电子设备
US20150324510A1 (en) Generic design rule checking (drc) test case extraction
CN109284222B (zh) 软件单元、数据处理系统中的项目测试方法、装置及设备
JP7119096B2 (ja) ライセンス検証装置
CN109062794A (zh) 一种软件测评结果的确定方法、装置及电子设备
US20210103514A1 (en) Reusable test cases for identifiable patterns
CN103970659A (zh) 基于插桩技术的安卓应用软件自动化测试方法
US10216495B2 (en) Program variable convergence analysis
CN109902005A (zh) 一种自动化测试的方法和系统
CN112434478B (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
CN116738901A (zh) 一种芯片验证方法及装置
CN106227664A (zh) 一种测试应用程序的方法及装置
CN111385661B (zh) 语音控制全屏播放的方法、装置、终端及存储介质
US10192013B1 (en) Test logic at register transfer level in an integrated circuit design
CN105162664A (zh) 一种基于仪表中间层开发的自动化平台测试方法及系统
CN116450511A (zh) 信息更新方法、装置、电子设备和计算机可读介质
CN114490337A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190222

RJ01 Rejection of invention patent application after publication