CN104216829B - 一种嵌入式模块并发测试的方法及系统 - Google Patents
一种嵌入式模块并发测试的方法及系统 Download PDFInfo
- Publication number
- CN104216829B CN104216829B CN201410436320.1A CN201410436320A CN104216829B CN 104216829 B CN104216829 B CN 104216829B CN 201410436320 A CN201410436320 A CN 201410436320A CN 104216829 B CN104216829 B CN 104216829B
- Authority
- CN
- China
- Prior art keywords
- module
- tested
- testing result
- initialization
- thread
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试领域,尤其是一种嵌入式模块并发测试的方法及系统。其方法包括:S101、对两个以上的待测试模块设置模块信息,将已设置的所述待测试模块组成待测试列表;S102、从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;S103、在步骤S102初始化后,并发启动线程来执行模块测试函数并返回模块测试结果;S104、统计所述模块测试结果并判断所述模块测试结果是否出现错误;S105、若所述模块测试结果出现错误,将所述模块测试结果存储至预设的错误日志文件。通过该方法可以实现在系统高负荷情况下,测试模块是否能够正常运行,从而达到测试模块的目的。
Description
技术领域
本发明涉及软件测试领域,尤其是一种嵌入式模块并发测试的方法及系统。
背景技术
由于嵌入式产品模块较多且与系统集成度较高,模块在系统资源(如串口,USB等)的使用上可能存在冲突,同时在系统高负荷情况下,一些模块可能由于无法正常获取到系统资源而导致无法正常运行。
多个模块同时运行时对系统的负载较大,因此在并发执行时可能导致其他模块或系统的运行异常。传统的嵌入式模块并发测试,通过为每个模块编写并发测试脚本,并将脚本嵌入到并发流程中,一旦有新增模块或模块有变动需要修改并发策略,则需要对并发流程进行修改,同时对于进行并发的模块也无法实现灵活配置的需求。
发明内容
本发明所要解决的技术问题是:提供一种嵌入式模块并发测试的方法及系统,通过对模块与模块之间或模块与系统之间是否相互影响的检测,实现对模块的合理系统资源配置。
为了解决上述技术问题,本发明采用的技术方案为:
一种嵌入式模块并发测试的方法,包括:
S101、对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;
S102、从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;
S103、在步骤S102初始化后,并发启动线程来执行模块测试函数并返回模块测试结果;
S104、统计所述模块测试结果并判断所述模块测试结果是否出现错误;
S105、若所述模块测试结果出现错误,将所述模块测试结果存储至预设的错误日志文件。
本发明采用的另一技术方案为:
一种嵌入式模块并发测试的系统,包括依次连接的赋值模块、初始化模块、启动模块、统计模块和存储模块;
所述赋值模块,用于对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;
所述初始化模块,用于从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;
所述启动模块,用于在所述待测试模块及所述线程初始化后,并发启动线程来执行模块测试函数并返回模块测试结果;
所述统计模块,用于统计所述测试结果并判断所述测试结果是否出现错误;
所述存储模块,用于若所述测试结果出现错误,存储至预设的错误日志文件。
本发明的有益效果在于:对模块测试程序的编写者来说只需要专注于单个待测试模块的测试流程和并发条件的设置等,无需处理并发流程具体的实现细节,提高了测试程序的编写效率同时也在一定程度上避免了新模引入或测试策略或条件修改时可能对整个测试流程造成的影响,通过对每个待测试模块进行设置模块信息就可以灵活的配置并发策略、并发数和并发优先级,由于将待模块测试置于线程中并发执行,可以使各模块在同一时间充分利用系统资源,增加系统的负荷,使模块与模块之间以及模块与系统之间的影响问题更容易暴露出来,达到模块进行测试的目的。
附图说明
图1为本发明具体实施方式中嵌入式模块并发测试的方法的流程图;
图2为本发明具体实施方式中嵌入式模块并发测试的系统结构示意图;
标号说明:
10、赋值模块;20、初始化模块;30、启动模块;40、统计模块;50、存储模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过将每个待测试模块置于单独的线程中,并发启动线程来执行模块测试函数,实现在系统高负荷情况下,测试模块是否能够正常运行。
请参照图1,为本发明具体实施方式中嵌入式模块并发测试的方法的流程图,具体如下:
一种嵌入式模块并发测试的方法,包括:
S101、对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;
S102、从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;
S103、在步骤S102初始化后,并发启动线程来执行模块测试函数并返回模块测试结果;
S104、统计所述模块测试结果并判断所述模块测试结果是否出现错误;
S105、若所述模块测试结果出现错误,将所述模块测试结果存储至预设的错误日志文件。
从上述描述可知,本发明的有益效果在于:对模块测试程序的编写者来说只需要专注于单个待测试模块的测试流程和并发条件的设置等,无需处理并发流程具体的实现细节,提高了测试程序的编写效率同时也在一定程度上避免了新模引入或测试策略或条件修改时可能对整个测试流程造成的影响,通过对每个待测试模块进行设置模块信息就可以灵活的配置并发策略、并发数和并发优先级,由于将待模块测试置于线程中并发执行,可以使各模块在同一时间充分利用系统资源,增加系统的负荷,使模块与模块之间以及模块与系统之间的影响问题更容易暴露出来,达到模块进行测试的目的。
进一步的,所述步骤S101中“模块信息”具体为模块号、测试模块类型、模块初始化函数指针,模块测试执行函数指针、模块清理函数指针、并发结束条件、模块测试结果及优先级。
所述测试模块类型分为手动、自动、通讯及视图四种类型,作用是方便对测试模块进行筛选及进行一些特殊处理,例如磁卡模块需要执行刷卡操作,此时通过串口通知工装进行刷卡;视频和摄像头并发时需要在当前窗体上划分出两个子窗体用于摄像头预览和视频播放;
所述模块清理函数主要是用来对初始化函数中分配的资源进行释放及执行一些例如通讯模块挂断、链路断连或者模块下电或关闭等操作。
由上述描述可知,通过对每个待测试模块设置模块信息,使每个待测试模块拥有各自独立的信息,便于区分,也便于出现错误的时候可以直接根据独立的信息快速定位到出现错误的模块,节省不必要的耗时。
进一步的,所述步骤S102中“预设的初始化内容”包括:并发启动前设置线程的优先级和待测试模块并发次数或者并发时间。
所述初始化内容还包括:设置模块并发过程中是否反复对模块进行上下电操作。
由上述描述可知,通过预设的初始化内容,可使待测试模块初始化时运行所预设的初始化内容,避免影响模块测试函数的正常运行。
进一步的,所述步骤S104中“判断所述模块测试结果是否出现错误”具体为:通过函数调用待测试模块的底层驱动应用程序接口的返回结果,判断返回值或出口参数是否在预期阀值内,若不在预期阀值内,返回错误。
判断测试结果是否出现错误主要是通过模块初始化函数指针、模块测试执行函数指针和模块清理函数指针这三个函数对调用的待测试模块的底层驱动API的返回结果进行比较判断来实现的,若比较失败,则返回错误,这样就能根据三个函数的返回值判断某个模块在测试执行过程中是否出错了;
例如,待测试模块驱动API的返回值、出口参数与预期阀值进行比较,若不在预期阀值内,返回错误。
进一步的,在所述步骤S105之后还包括步骤S106:通过串口通讯方式并配合PC端工具导出预设的错误日志文件。
由上述描述可知,通过串口通讯方式并配合PC端工具进行导出错误日志文件,再通过错误日志信息,开发人员可以快速的定位出现错误时调用的底层驱动接口以及接口的返回值和对应的错误信息,节约了重现问题的时间开销,同时将错误日志导出到PC端并保存成文本文件,可以方便的将其作为一种BUG问题的依据提交到BUG管理系统中进行保存。
请参阅图2,为本发明具体实施方式中嵌入式模块并发测试的系统结构示意图,具体如下:
一种嵌入式模块并发测试的系统,包括依次连接的赋值模块10、初始化模块20、启动模块30、统计模块40和存储模块50;
所述赋值模块10,用于对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;
所述初始化模块20,用于从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;
所述启动模块30,用于在所述待测试模块及所述线程初始化后,并发启动线程来执行模块测试函数并返回模块测试结果;
所述统计模块40,用于统计所述测试结果并判断所述测试结果是否出现错误;
所述存储模块50,用于若所述测试结果出现错误,存储至预设的错误日志文件。
由上述描述可知,对模块测试程序的编写者来说只需要专注于单个待测试模块的测试流程和并发条件的设置等,无需处理并发流程具体的实现细节,提高了测试程序的编写效率同时也在一定程度上避免了新模引入或测试策略或条件修改时可能对整个测试流程造成的影响,通过对每个待测试模块进行设置模块信息就可以灵活的配置并发策略、并发数和并发优先级,由于将待模块测试置于线程中并发执行,可以使各模块在同一时间充分利用系统资源,增加系统的负荷,使模块与模块之间以及模块与系统之间的影响问题更容易暴露出来,达到模块进行测试的目的。
进一步的,所述赋值模块10包括赋值单元和列表单元;
所述赋值单元,用于对两个以上的待测试模块设置模块信息;
所述列表单元,用于将已设置的待测试模块组成待测试列表。
进一步的,所述初始化模块20包括线程单元、设置单元和初始化单元;
所述线程单元,用于从测试列表中提取每个待测试模块置于单独的线程中;
所述设置单元,用于设置每个待测试模块的初始化内容;
所述初始化单元,用于根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化。
由上述描述可知,通过预设初始化内容,可使待测试模块初始化时运行所预设的初始化内容,避免影响模块测试函数的正常运行。
进一步的,所述启动模块30包括启动单元和返回单元;所述统计模块40包括统计单元和判断单元;
所述启动单元,用于在所述待测试模块及线程初始化后,并发启动线程来执行模块测试函数;
所述返回单元,用于将启动单元后所得模块测试结果返回;
所述统计单元,用于统计返回单元返回的模块测试结果;
所述判断单元,用于判断所述模块测试结果是否出现错误。
进一步的,所述存储模块50包括错误日志单元;
所述错误日志单元,用于若所述测试结果出现错误,存储出现错误的测试结果。
由上述描述可知,错误日志单元用于存储出现错误的测试结果,便于通过出现错误的测试结果快速定位出现错误的测试模块信息,从而能够对测试模块进行快速灵活配置。
综上所述,本发明提供的一种嵌入式模块并发测试的方法及系统,通过将每个待测试模块置于单独的线程中,并发启动线程来执行模块测试函数,实现在系统高负荷情况下,测试模块是否正常运行。对模块测试程序的编写者来说只需要专注于单个待测试模块的测试流程和并发条件的设置等,无需处理并发流程具体的实现细节,提高了测试程序的编写效率同时也在一定程度上避免了新模引入或测试策略或条件修改时可能对整个测试流程造成的影响,通过对每个待测试模块进行设置模块信息就可以灵活的配置并发策略、并发数和并发优先级,由于将待模块测试置于线程中并发执行,可以使各模块在同一时间充分利用系统资源,增加系统的负荷,使模块与模块之间以及模块与系统之间的影响问题更容易暴露出来,达到模块进行测试的目的。通过对每个待测试模块设置模块信息,使每个待测试模块拥有各自独立的信息,便于区分,也便于出现错误的时候可以直接根据独立的信息快速定位到出现错误的模块,节省不必要的耗时。通过预设初始化内容,可使待测试模块初始化时运行所预设的初始化内容,避免影响模块测试函数的正常运行。通过串口通讯方式并配合PC端工具进行导出错误日志文件,再通过错误日志信息,开发人员可以快速的定位出现错误时调用的底层驱动接口以及接口的返回值和对应的错误信息,节约了重现问题的时间开销,同时将错误日志导出到PC端并保存成文本文件,可以方便的将其作为一种BUG问题的依据提交到BUG管理系统中进行保存。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种嵌入式模块并发测试的方法,其特征在于,包括步骤:
S101、对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;所述模块信息具体为模块号、测试模块类型、模块初始化函数指针,模块测试执行函数指针、模块清理函数指针、并发结束条件、模块测试结果及优先级;
S102、从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;所述预设的初始化内容包括:并发启动前设置线程的优先级和待测试模块并发次数或者待测试模块并发时间;
S103、在步骤S102初始化后,并发启动线程来执行模块测试执行函数并返回模块测试结果;
S104、统计所述模块测试结果并判断所述模块测试结果是否出现错误;步骤S104中判断所述模块测试结果是否出现错误具体为:通过函数调用待测试模块的底层驱动应用程序接口返回结果,判断返回值或出口参数是否在预期阀值内,若不在预期阀值内,返回错误;
S105、若所述模块测试结果出现错误,将所述模块测试结果存储至预设的错误日志文件。
2.根据权利要求1所述的嵌入式模块并发测试的方法,其特征在于,在步骤S105之后还包括步骤S106:通过串口通讯方式并配合PC端工具导出预设的错误日志文件。
3.一种嵌入式模块并发测试的系统,其特征在于,包括依次连接的赋值模块、初始化模块、启动模块、统计模块和存储模块;
所述赋值模块,用于对两个以上的待测试模块设置模块信息,将已设置的待测试模块组成待测试列表;
所述初始化模块,用于从所述待测试列表中提取每个待测试模块置于单独的线程中,并根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化;
所述启动模块,用于在所述待测试模块及所述线程初始化后,并发启动线程来执行模块测试执行函数并返回模块测试结果;
所述统计模块,用于统计所述模块测试结果并判断所述模块测试结果是否出现错误;
所述存储模块,用于若所述模块测试结果出现错误,存储至预设的错误日志文件。
4.根据权利要求3所述的嵌入式模块并发测试的系统,其特征在于,所述赋值模块包括赋值单元和列表单元;
所述赋值单元,用于对两个以上的待测试模块设置模块信息;
所述列表单元,用于将已设置的待测试模块组成待测试列表。
5.根据权利要求3所述的嵌入式模块并发测试的系统,其特征在于,所述初始化模块包括线程单元、设置单元和初始化单元;
所述线程单元,用于从待测试列表中提取每个待测试模块置于单独的线程中;
所述设置单元,用于设置每个待测试模块的初始化内容;
所述初始化单元,用于根据预设的初始化内容对所述每个待测试模块及所述线程进行初始化。
6.根据权利要求3所述的嵌入式模块并发测试的系统,其特征在于,所述启动模块包括启动单元和返回单元;所述统计模块包括统计单元和判断单元;
所述启动单元,用于在所述待测试模块及线程初始化后,并发启动线程来执行模块测试函数;
所述返回单元,用于将启动单元后所得模块测试结果返回;
所述统计单元,用于统计返回单元返回的模块测试结果;
所述判断单元,用于判断所述模块测试结果是否出现错误。
7.根据权利要求3所述的嵌入式模块并发测试的系统,其特征在于,所述存储模块包括错误日志单元;
所述错误日志单元,用于若所述模块测试结果出现错误,存储出现错误的测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410436320.1A CN104216829B (zh) | 2014-08-29 | 2014-08-29 | 一种嵌入式模块并发测试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410436320.1A CN104216829B (zh) | 2014-08-29 | 2014-08-29 | 一种嵌入式模块并发测试的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216829A CN104216829A (zh) | 2014-12-17 |
CN104216829B true CN104216829B (zh) | 2017-09-19 |
Family
ID=52098344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410436320.1A Active CN104216829B (zh) | 2014-08-29 | 2014-08-29 | 一种嵌入式模块并发测试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216829B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649116B (zh) * | 2016-12-27 | 2019-09-20 | 广州周立功单片机科技有限公司 | 嵌入式Linux产品的测试方法、装置及系统 |
CN108710361B (zh) * | 2018-05-30 | 2020-07-28 | 广州明珞软控信息技术有限公司 | 一种安全程序检查方法和系统 |
CN110162473A (zh) * | 2019-05-10 | 2019-08-23 | 广州高鸿信息科技有限公司 | 一种软件测试方法 |
CN110275806A (zh) * | 2019-06-20 | 2019-09-24 | 深圳忆联信息系统有限公司 | 基于Python的SSD控制器多模块并发测试方法和装置 |
CN116594884B (zh) * | 2023-05-16 | 2023-10-27 | 上海安般信息科技有限公司 | 一种基于使用并发方式的模糊测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1519703A (zh) * | 2003-01-23 | 2004-08-11 | 英业达股份有限公司 | 可组合挂接的计算机多线程测试系统及其方法 |
CN101916224A (zh) * | 2010-08-20 | 2010-12-15 | 迈普通信技术股份有限公司 | 测试进程异常检测方法以及自动化测试控制装置 |
CN102609352A (zh) * | 2011-01-19 | 2012-07-25 | 阿里巴巴集团控股有限公司 | 一种并行测试方法及并行测试服务器 |
-
2014
- 2014-08-29 CN CN201410436320.1A patent/CN104216829B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1519703A (zh) * | 2003-01-23 | 2004-08-11 | 英业达股份有限公司 | 可组合挂接的计算机多线程测试系统及其方法 |
CN101916224A (zh) * | 2010-08-20 | 2010-12-15 | 迈普通信技术股份有限公司 | 测试进程异常检测方法以及自动化测试控制装置 |
CN102609352A (zh) * | 2011-01-19 | 2012-07-25 | 阿里巴巴集团控股有限公司 | 一种并行测试方法及并行测试服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN104216829A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216829B (zh) | 一种嵌入式模块并发测试的方法及系统 | |
CN104346265B (zh) | 终端设备及其日志信息的获取方法和装置 | |
CN106531654B (zh) | 一种芯片输入引脚测试方法和装置 | |
CN109117151A (zh) | 烧写器以及程序烧写方法、装置、计算机设备和存储介质 | |
CN106569839A (zh) | 电路板及其固件烧录方法 | |
CN105933767A (zh) | 中间件装置、中间件实现方法和电视机 | |
CN104216771B (zh) | 软件程序的重启方法及装置 | |
CN109918246A (zh) | 一种硬盘状态检测方法、系统、终端及存储介质 | |
CN109446000A (zh) | 多硬盘背板下硬盘顺序识别方法、装置、终端及存储介质 | |
CN103810440B (zh) | 存取系统及方法 | |
CN105575437A (zh) | 智能卡eeprom的测试方法 | |
CN106776195B (zh) | 一种soc芯片调试方法和设备 | |
CN103809051B (zh) | 开关矩阵、自动测试系统及其中的开关矩阵的检测方法 | |
CN107273249A (zh) | 主板测试方法、处理器和主板测试系统 | |
CN109815076A (zh) | 一种网卡boot选项检测方法、系统、终端及存储介质 | |
CN104199779B (zh) | 一种嵌入式模块组合测试的方法及系统 | |
CN105302679B (zh) | 一种智能终端存储稳定性的检测方法及系统 | |
CN101178660A (zh) | 存储器数据自动更新方法 | |
CN104572443A (zh) | 一种移动终端测试方法及装置 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN109271096A (zh) | Nvme存储扩展系统 | |
CN103246584B (zh) | 片上系统芯片结构及保存调试信息的方法 | |
CN105912417A (zh) | 虚拟系统的检测方法和相关软件运行方法以及相关装置 | |
CN103680638B (zh) | 快闪存储器控制器和快闪存储器控制方法 | |
CN109802866A (zh) | 一种网卡sr-iov功能测试方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |