CN110347589A - 一种软件单元测试自动化检测方法及系统 - Google Patents

一种软件单元测试自动化检测方法及系统 Download PDF

Info

Publication number
CN110347589A
CN110347589A CN201910503137.1A CN201910503137A CN110347589A CN 110347589 A CN110347589 A CN 110347589A CN 201910503137 A CN201910503137 A CN 201910503137A CN 110347589 A CN110347589 A CN 110347589A
Authority
CN
China
Prior art keywords
module
measured
input
unit testing
ips
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
Application number
CN201910503137.1A
Other languages
English (en)
Other versions
CN110347589B (zh
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.)
Wuhan Changjiang Computing Technology Co ltd
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201910503137.1A priority Critical patent/CN110347589B/zh
Publication of CN110347589A publication Critical patent/CN110347589A/zh
Application granted granted Critical
Publication of CN110347589B publication Critical patent/CN110347589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种软件单元测试自动化检测方法及系统,涉及软件单元测试领域,包括S1:解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;S2:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;S3:将提取的输入信息输入待测模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。本发明采用自动执行方式,有效降低工作量,避免采用人工编码时可能出现的错误。

Description

一种软件单元测试自动化检测方法及系统
技术领域
本发明涉及软件单元测试领域,具体涉及一种软件单元测试自动化检测方法及系统。
背景技术
21世纪以来,由于通信产业的快速发展,市场竞争日益激烈,各大运营商会有越来越多的功能需求开发,开发人员需要完成各个功能需求的开发,需要保证开发的功能需求达到预期,同时还要保证开发的功能不影响原有的功能需求,因此当软件开发完成后,均需要对软件进行单元测试。
单元测试(模块测试)通常是开发者编写的一段代码,用于检验被测软件中代码的一个较小且明确的功能是否正确,通常而言,单元测试是用于判断在某些特定条件(或场景)下某个特定功能的行为。单元测试中的单元一般指函数,软件在运行过程中,其函数的指定输入应该得到预期的输出结果,同时对于模块来说,当指定了输入条件后,也应该得到预期的输出结果,但是对于测试来说,需要编写大量的测试用例函数以及测试结果检查函数,该部分工作量较大,导致测试效率较低。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种软件单元测试自动化检测方法,采用自动执行方式,有效降低工作量,避免采用人工编码时可能出现的错误。
为达到以上目的,本发明采取的技术方案是,包括:
S1:解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;
S2:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;
S3:将提取的输入信息输入待测模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。
在上述方案的基础上,所述IPS日志文件用于记录待测模块的IPS交互信息,且不同的待测模块对应不同的输入信息和输出结果信息。
在上述方案的基础上,步骤S2中,所述生成对应于待测模块的输入提取代码和输出检查代码,具体步骤为:每个待测模块对应生成一个输入提取代码和一个输出检查代码。
在上述方案的基础上,步骤S2中,进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。
在上述方案的基础上,所述输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入待测模块后,待测模块对应输出的输出结果。
本发明还提供一种软件单元测试自动化检测系统,包括:
编译模块,其用于:解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;
提取模块,其用于:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;
检查模块,其用于:将提取的输入信息输入待测模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。
在上述方案的基础上,所述IPS日志文件用于记录待测模块的IPS交互信息,且不同的待测模块对应不同的输入信息和输出结果信息。
在上述方案的基础上,所述编译模块生成对应于待测模块的输入提取代码和输出检查代码,具体步骤为:每个待测模块对应生成一个输入提取代码和一个输出检查代码。
在上述方案的基础上,进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。
在上述方案的基础上,所述输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入待测模块后,待测模块对应输出的输出结果。
与现有技术相比,本发明的优点在于:通过解析待测模块的IPS日志文件,从而获知待测模块的输入信息和输出结果信息,从而生成对应的用于提取输入信息的输入提取代码,以及对输出结果信息进行检查的输出检查代码,采用程序的自动执行方式,有效降低工作量,避免采用人工编码时可能出现的错误。
附图说明
图1为本发明实施例中一种软件单元测试自动化检测方法的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
参见图1所示,本发明提供一种软件单元测试自动化检测方法,在软件模块的单元测试中,实现对软件模块输入信息的自动提取,以及对软件模块输出结果信息的自动检查。本发明实施例基于NBASE系统框架,NBASE系统框架使用IPS消息作为软件模块间通信的消息,IPS(Inter Process Signal)消息为进程间或者模块间的消息通信。在NBASE系统框架下,对软件模块输入特定的IPS消息会输出预期的IPS消息,通过对输出的预期的IPS消息进行检查,实现对软件模块的单元测试。本发明实施例中的待测模块为软件模块。本发明实施例的软件单元测试自动化检测方法具体包括以下步骤:
S1:解解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库。具体的可以通过编写可执行程序来对IPS日志文件进行解析,NBASE系统可以保存已测试功能的待测模块的IPS日志文件,IPS日志文件用于记录待测模块的IPS交互信息,因此根据IPS日志文件可以得到不同的待测模块对应的输入信息是什么,IPS头文件位于IPS日志文件中。
可执行程序解析IPS日志文件,得知对应于待测模块的输入信息,即得知待测模块具体的输入IPS消息和输出IPS消息,不同的待测模块对应不同的输入信息和输出结果信息,即不同的软件模块对应不同的输入信息和输出结果信息,输入提取代码用于对待测模块的输入IPS消息进行提取,输出检查代码对待测模块的输出IPS消息进行检查。不同待测模块的输入IPS消息不同,IPS消息中包含一特定的结构体,据此可以对待测模块所属的IPS消息进行判断。输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入软件模块后,待测模块对应输出的输出结果。
具体的,生成对应于待测模块的输入提取代码和输出检查代码均有多个,且每个待测模块对应一个输入提取代码和一个输出检查代码。
S2:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息,即通过输入提取代码提取对应当前待测模块的输入IPS消息。进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。
S3:将提取的输入信息输入软件模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。本发明的软件单元测试自动化检测方法在具体的实施过程中,可以兼容之前的单元测试方式,在原有的单元测试方式上修改IPS消息输入方式即可实现本发明的软件单元测试自动化检测方法。
本发明实施例的软件单元测试自动化检测方法,通过解析待测模块的IPS日志文件,从而获知待测模块的输入信息和输出结果信息,从而生成对应的用于提取输入信息的输入提取代码,以及对输出结果信息进行检查的输出检查代码,采用程序的自动执行方式,有效降低工作量,避免采用人工编码时可能出现的错误。
本发明还提供一种软件单元测试自动化检测系统,包括编译模块、提取模块和检查模块。
编译模块用于解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;提取模块用于当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;检查模块用于将提取的输入信息输入软件模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。
IPS日志文件用于记录待测模块的IPS交互信息,且不同的待测模块对应不同的输入信息和输出结果信息。编译模块生成对应于待测模块的输入提取代码和输出检查代码,具体步骤为:每个待测模块对应生成一个输入提取代码和一个输出检查代码。进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入软件模块后,待测模块对应输出的输出结果。
本发明实施例的软件单元测试自动化检测系统,通过编写可执行程序来解析待测模块的IPS日志文件,从而获知待测模块的输入信息和输出结果信息,从而生成对应的用于提取输入信息的输入提取代码,以及对输出结果信息进行检查的输出检查代码,采用程序的自动执行方式,有效降低工作量,避免采用人工编码时可能出现的错误。
以下结合以软件中的RLDF模块为例对本发明的软件单元测试自动化检测方法进行具体说明,此时RLDF模块即为待测模块。
1、RLDF模块输入的IPS消息为IPS_ATG_HM_REGISTER_SM为例,其对应的结构体为ATG_HM_REGISTER_SM,该结构体包含以下字段:
2、编写的可执行程序对RLDF模块的IPS头文件进行解析,获知RLDF模块输入的IPS消息的结构,生成对应的输入提取代码和输出检查代码,然后将生成的代码编译成动态链接库。
3、当开始单元测试时,自动提取原有测试中待测模块的IPS日志文件中的数据,得到待测模块的输入IPS消息,经单元测试后,使用动态链接库对待测模块的输出结果信息进行检查。对输出结果信息进行检查的代码为:
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种软件单元测试自动化检测方法,基于NBASE系统框架,所述NBASE系统框架使用IPS消息作为待测模块间通信的消息,其特征在于,包括以下步骤:
S1:解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;
S2:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;
S3:将提取的输入信息输入待测模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。
2.如权利要求1所述的一种软件单元测试自动化检测方法,其特征在于:所述IPS日志文件用于记录待测模块的IPS交互信息,且不同的待测模块对应不同的输入信息和输出结果信息。
3.如权利要求1所述的一种软件单元测试自动化检测方法,其特征在于,步骤S2中,所述生成对应于待测模块的输入提取代码和输出检查代码,具体步骤为:每个待测模块对应生成一个输入提取代码和一个输出检查代码。
4.如权利要求1所述的一种软件单元测试自动化检测方法,其特征在于,步骤S2中,进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。
5.如权利要求1所述的一种软件单元测试自动化检测方法,其特征在于:所述输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入待测模块后,待测模块对应输出的输出结果。
6.一种软件单元测试自动化检测系统,其特征在于,包括:
编译模块,其用于:解析待测模块的IPS头文件,生成对应于待测模块的输入提取代码和输出检查代码,将生成的代码编译成动态链接库;
提取模块,其用于:当进行单元测试时,使用所述动态链接库从IPS日志文件中提取出对应待测模块的输入信息;
检查模块,其用于:将提取的输入信息输入待测模块中,经单元测试后,使用所述动态链接库对待测模块的输出结果信息进行检查。
7.如权利要求6所述的一种软件单元测试自动化检测系统,其特征在于:所述IPS日志文件用于记录待测模块的IPS交互信息,且不同的待测模块对应不同的输入信息和输出结果信息。
8.如权利要求6所述的一种软件单元测试自动化检测系统,其特征在于:所述编译模块生成对应于待测模块的输入提取代码和输出检查代码,具体步骤为:每个待测模块对应生成一个输入提取代码和一个输出检查代码。
9.如权利要求6所述的一种软件单元测试自动化检测系统,其特征在于:进行单元测试之前,还包括:加载编译的动态链接库,然后进行单元测试。
10.如权利要求6所述的一种软件单元测试自动化检测系统,其特征在于:所述输入信息为对应待测模块的输入IPS信息,为待测模块测试的输入参数,所述输出结果信息为将输入IPS信息输入待测模块后,待测模块对应输出的输出结果。
CN201910503137.1A 2019-06-11 2019-06-11 一种软件单元测试自动化检测方法及系统 Active CN110347589B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910503137.1A CN110347589B (zh) 2019-06-11 2019-06-11 一种软件单元测试自动化检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910503137.1A CN110347589B (zh) 2019-06-11 2019-06-11 一种软件单元测试自动化检测方法及系统

Publications (2)

Publication Number Publication Date
CN110347589A true CN110347589A (zh) 2019-10-18
CN110347589B CN110347589B (zh) 2022-04-29

Family

ID=68181842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910503137.1A Active CN110347589B (zh) 2019-06-11 2019-06-11 一种软件单元测试自动化检测方法及系统

Country Status (1)

Country Link
CN (1) CN110347589B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274144A (zh) * 2020-01-20 2020-06-12 苏州浪潮智能科技有限公司 一种基于网络文件系统操作字接口的单元测试方法与系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261600A (zh) * 2007-03-06 2008-09-10 中兴通讯股份有限公司 一种软件测试装置及测试软件的设计方法
CN102495791A (zh) * 2011-11-01 2012-06-13 浙江省电力试验研究院 多厂家继电保护测试仪自动测试接口兼容方法
CN103617116A (zh) * 2013-11-13 2014-03-05 清华大学 基于输入输出模拟的交互式设备驱动调试方法及装置
US20140380101A1 (en) * 2013-06-19 2014-12-25 Electronics And Telecommunications Research Nstitute Apparatus and method for detecting concurrency error of parallel program for multicore
CN104363059A (zh) * 2014-12-02 2015-02-18 上海斐讯数据通信技术有限公司 集成测试仪表的测试方法及系统
US20150370687A1 (en) * 2014-06-19 2015-12-24 Linkedln Corporation Unit test generation
CN106776321A (zh) * 2016-11-30 2017-05-31 中国航空工业集团公司沈阳飞机设计研究所 一种基于动态链接库的飞管系统软件仿真对比转换方法
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN109657475A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 代码漏洞排查方法、装置、设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261600A (zh) * 2007-03-06 2008-09-10 中兴通讯股份有限公司 一种软件测试装置及测试软件的设计方法
CN102495791A (zh) * 2011-11-01 2012-06-13 浙江省电力试验研究院 多厂家继电保护测试仪自动测试接口兼容方法
US20140380101A1 (en) * 2013-06-19 2014-12-25 Electronics And Telecommunications Research Nstitute Apparatus and method for detecting concurrency error of parallel program for multicore
CN103617116A (zh) * 2013-11-13 2014-03-05 清华大学 基于输入输出模拟的交互式设备驱动调试方法及装置
US20150370687A1 (en) * 2014-06-19 2015-12-24 Linkedln Corporation Unit test generation
CN104363059A (zh) * 2014-12-02 2015-02-18 上海斐讯数据通信技术有限公司 集成测试仪表的测试方法及系统
CN106776321A (zh) * 2016-11-30 2017-05-31 中国航空工业集团公司沈阳飞机设计研究所 一种基于动态链接库的飞管系统软件仿真对比转换方法
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN109657475A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 代码漏洞排查方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274144A (zh) * 2020-01-20 2020-06-12 苏州浪潮智能科技有限公司 一种基于网络文件系统操作字接口的单元测试方法与系统
CN111274144B (zh) * 2020-01-20 2023-01-10 苏州浪潮智能科技有限公司 一种基于网络文件系统操作字接口的单元测试方法与系统

Also Published As

Publication number Publication date
CN110347589B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
US10534699B2 (en) Method, device and computer program product for executing test cases
CN112181804B (zh) 一种参数校验方法、设备以及存储介质
US20120246625A1 (en) System and method of software execution path identification
CN104063325A (zh) 一种针对嵌入式软件的测试用例自动化生成装置及其方法
CN109871326A (zh) 一种脚本录制的方法和装置
CN105022691A (zh) 一种基于uml图的高度自动化软件测试方法
CN107026773B (zh) 用于接口自动化测试的自动关联方法
CN106682036A (zh) 一种数据交换系统及其交换方法
CN108459951A (zh) 测试方法和装置
CN106529304A (zh) 一种安卓应用并发漏洞检测系统
CN114817028B (zh) 一种基于软件开发平台中多目标交叉调试系统
CN109299017A (zh) 基于测试用例文档自动生成测试脚本框架的方法及系统
US8381185B2 (en) Apparatus, system, and method for dynamic module flow analysis
CN110688313A (zh) 一种VxWorks操作系统下软件测试的故障注入方法
CN107329898A (zh) 终端界面自动化测试方法及系统
CN117421217A (zh) 一种软件功能自动测试方法、系统、终端及介质
CN112579437A (zh) 一种程序运行过程符合性验证方法
CN114138633A (zh) 基于数据驱动的软件测试的方法、装置、设备及可读介质
CN110347589A (zh) 一种软件单元测试自动化检测方法及系统
CN115794639B (zh) 基于流程的可视化测试及可视化仿真模拟测试系统和方法
US10853051B2 (en) Automated candidate repair patch generation
CN109471637B (zh) 电路图的审查脚本调试方法
CN110990282A (zh) 一种自动化单元测试方法
KR102643598B1 (ko) 패턴 기반 SoS 내 실패 유발 상호작용 분석 방법 및 장치
CN108345541A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240626

Address after: 430000 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province

Patentee after: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Country or region after: China

Patentee after: Wuhan Changjiang Computing Technology Co.,Ltd.

Address before: 430000 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province

Patentee before: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Country or region before: China