CN115599645A - 一种linux驱动模块稳定性测试方法及装置 - Google Patents

一种linux驱动模块稳定性测试方法及装置 Download PDF

Info

Publication number
CN115599645A
CN115599645A CN202211256091.6A CN202211256091A CN115599645A CN 115599645 A CN115599645 A CN 115599645A CN 202211256091 A CN202211256091 A CN 202211256091A CN 115599645 A CN115599645 A CN 115599645A
Authority
CN
China
Prior art keywords
test
linux
drive module
application
hook
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
CN202211256091.6A
Other languages
English (en)
Other versions
CN115599645B (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.)
Anxin Wangdun Beijing Technology Co ltd
Original Assignee
Anxin Wangdun Beijing 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 Anxin Wangdun Beijing Technology Co ltd filed Critical Anxin Wangdun Beijing Technology Co ltd
Priority to CN202211256091.6A priority Critical patent/CN115599645B/zh
Publication of CN115599645A publication Critical patent/CN115599645A/zh
Application granted granted Critical
Publication of CN115599645B publication Critical patent/CN115599645B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • 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
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种linux驱动模块稳定性测试方法及装置,其中方法包括如下步骤:基于监控脚本获取Linux操作系统上应用列表及与应用对应的hook点,并发送至测试平台服务器端,得到与应用及hook点相对应的执行策略;获取带驱动设备信息,将对应的执行策略发送至待驱动设备,控制待驱动设备依据执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到linux操作系统驱动模块的稳定性测试结果。通过利用Python脚本基于hook点的全量集合遍历测试及基于hook点的全量集合的加权多线程并发测试,实现了最大化挖掘产品驱动模块稳定性潜在风险,对于linux内核兼容性较好,降低了用户使用风险。

Description

一种linux驱动模块稳定性测试方法及装置
技术领域
本发明涉及软件测试技术领域,特别涉及一种linux驱动模块稳定性测试方法及装置。
背景技术
部分linux操作系统应用程序的驱动模块如果存在一些潜在问题,可能会造成linux操作系统关机或者系统重启,这个有可能会给用户带来不可逆的损失。基于上述原因,驱动模块的稳定性测试尤为重要。传统的测试方法包括如下方式:
方法1:手工方式按照自己产品的驱动功能进行验证,按照功能链路的方式去验证自己产品的驱动模块hook系统的方法是否存在问题。
方法2:写一个驱动测试程序,来测试自己产品的驱动,对于测试人员来说,这不仅仅要去学习对应的C语言,还要去学习驱动模块的编写逻辑,这种方法的实现成本很高。此外,从事务的逻辑角度来看,如果被测系统关机或者重启也不能直接归因于产品的驱动代码造成的,也有可能是自己编写的测试驱动造成的,进而无法完成对于驱动完整稳定性的验证。
方法3:基于应用层和驱动调用以及通信的API,在应用层暴露接口给到测试人员,测试人员输入相应参数来进行验证。这种方法的不足之处在于,会给研发人员增加很多编码工作,而这些代码如果封装不好,有可能暴露到线上,对于测试人员来说,这种简单的功能验证是有帮助的,但是也比较容易让一些测试人员的测试思维给固定到某条线,而测试人员更多需要的发散思维来去保证产品的稳定。
发明内容
本发明实施例的目的是提供一种linux驱动模块稳定性测试方法及装置,通过利用Python脚本基于hook点的全量集合遍历测试集基于hook点的全量集合的加权多线程并发测试,实现了最大化挖掘产品驱动模块稳定性潜在风险,对于linux操作系统内核的兼容性较好,降低了linux操作系统的使用风险。
为解决上述技术问题,本发明实施例的第一方面提供了一种linux驱动模块稳定性测试方法,包括如下步骤:
基于监控脚本获取Linux操作系统上应用列表及与所述应用对应的所述hook点,并发送至测试平台服务器端,得到与所述应用及所述hook点相对应的执行策略;
获取带驱动设备信息,将对应的所述执行策略发送至所述待驱动设备,控制所述待驱动设备依据所述执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到所述linux操作系统驱动模块的稳定性测试结果。
进一步地,所述执行压测得到所述linux操作系统驱动模块的稳定性测试结果,具体包括:
按照预设时间间隔判断所述linux操作系统预设目录是否生成相关日志dump文件;
如是,则判定所述驱动模块存在稳定性问题,并向所述测试平台服务器端发送稳定性告警信息;
如否,则判定所述驱动模块运行稳定。
进一步地,所述判定所述驱动模块存在稳定性问题之后,还包括:
利用bug系统创建bug的API创建对应的bug信息;
基于所述bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对所述执行策略进行动态调整;
在生成所述测试集合时对多线程进行加权,所述加权为对出现问题概率较大的所述hook点增加执行次数。
进一步地,所述获取带驱动设备信息并将对应的所述执行策略发送至所述待驱动设备之前,还包括:
获取所述linux操作系统上安装的所述应用列表;
将所述应用列表发送至所述测试平台服务器端,对所述测试平台服务器端进行数据更新。
进一步地,所述基于监控脚本获取Linux操作系统上应用的列表及与所述应用对应的所述hook点之前,还包括:
基于所述驱动模块代码,获取其中涉及的所有所述hook点;
对所述linux操作系统进行所述应用的功能遍历,获取所有所述应用执行时分别对应的hook点;
基于所述应用列表获取对应的自动化脚本,基于所述hook点列表得到全量hook脚本,并将所述自动化脚本和所述全量hook脚本发送至所述测试平台服务器端。
相应地,本发明实施例的第二方面提供了一种linux驱动模块稳定性测试装置,包括:
策略生成模块,其用于基于监控脚本获取Linux操作系统上应用列表及与所述应用对应的所述hook点,并发送至测试平台服务器端,得到与所述应用及所述hook点相对应的执行策略;
测试执行模块,其用于获取带驱动设备信息,将对应的所述执行策略发送至所述待驱动设备,控制所述待驱动设备依据所述执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到所述linux操作系统驱动模块的稳定性测试结果。
进一步地,所述测试执行模块包括:
判断单元,其用于按照预设时间间隔判断所述linux操作系统预设目录是否生成相关日志dump文件;
控制单元,其用于在所述预设时间间隔内所述linux操作系统预设目录生成所述相关日志dump文件时,判定所述驱动模块存在稳定性问题,并向所述测试平台服务器端发送稳定性告警信息;
所述控制单元还用于在所述预设时间间隔内所述linux操作系统预设目录未生成所述相关日志dump文件,则判定所述驱动模块运行稳定。
进一步地,所述测试执行模块还包括:
信息创建单元,其用于利用bug系统创建bug的API创建对应的bug信息;
动态调整单元,其用于基于所述bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对所述执行策略进行动态调整;
加权执行单元,其用于在生成所述测试集合时对多线程进行加权,所述加权为对出现问题概率较大的所述hook点增加执行次数。
进一步地,所述linux驱动模块稳定性测试装置还包括:数据更新模块;
所述数据更新模块包括:
应用列表获取单元,其用于获取所述linux操作系统上安装的所述应用列表;
数据更新单元,其用于将所述应用列表发送至所述测试平台服务器端,对所述测试平台服务器端进行数据更新。
进一步地,所述linux驱动模块稳定性测试装置还包括:脚本生成模块;
所述脚本生成模块包括:
驱动模块hook点获取单元,其用于基于所述驱动模块代码,获取其中涉及的所有所述hook点;
应用遍历单元,其用于对所述linux操作系统进行所述应用的功能遍历,获取所有所述应用执行时分别对应的hook点;
脚本生成单元,其用于基于所述应用列表获取对应的自动化脚本,基于所述hook点列表得到全量hook脚本,将所述自动化脚本和所述全量hook脚本发送至所述测试平台服务器端。
相应地,本发明实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行上述linux驱动模块稳定性测试方法。
相应地,本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述linux驱动模块稳定性测试方法。
本发明实施例的上述技术方案具有如下有益的技术效果:
通过利用Python脚本基于hook点的全量集合遍历测试及基于hook点的全量集合的加权多线程并发测试,实现了最大化挖掘产品驱动模块稳定性潜在风险,对于linux操作系统内核的兼容性较好,降低了linux操作系统的使用风险。
附图说明
图1是本发明实施例提供的linux驱动模块稳定性测试方法流程图;
图2是本发明实施例提供的linux驱动模块稳定性测试方法逻辑示意图;
图3是本发明实施例提供的linux驱动模块稳定性测试装置模块框图;
图4是本发明实施例提供的测试执行模块框图;
图5是本发明实施例提供的数据更新模块框图;
图6是本发明实施例提供的脚本生成模块框图。
附图标记:
1、策略生成模块,2、测试执行模块,21、判断单元,22、控制单元,23、信息创建单元,24、动态调整单元,25、加权执行单元,3、数据更新模块,31、应用列表获取单元,32、数据更新单元,4、脚本生成模块,41、驱动模块hook点获取单元,42、应用遍历单元,43、脚本生成单元。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
请参照图1,本发明实施例的第一方面提供了一种linux驱动模块稳定性测试方法,包括如下步骤:
S200,基于监控脚本获取Linux操作系统上应用列表及与所述应用对应的hook点,并发送至测试平台服务器端,得到与应用及hook点相对应的执行策略。
S400,获取带驱动设备信息,将对应的执行策略发送至待驱动设备,控制待驱动设备依据执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到linux操作系统驱动模块的稳定性测试结果。
执行测试时,会根据不同待驱动设备,下发对应组装好的执行策略,在待驱动设备上,自动化执行层根据执行策略,以及待驱动设备的基础配置情况,形成多进程和多线程的测试集合,然后执行压测。测试集合会覆盖所有的hook点,剩余的多线程要执行的hook点,初始状态是随机选中的。其中,压测时长为执行策略中设定的默认值。
具体的,步骤S400中,执行压测得到linux操作系统驱动模块的稳定性测试结果,具体包括如下步骤:
S410,按照预设时间间隔判断linux操作系统预设目录是否生成相关日志dump文件。
S420,如是,则判定驱动模块存在稳定性问题,并向测试平台服务器端发送稳定性告警信息。
S430,如否,则判定驱动模块运行稳定。
在linux操作系统驱动模块的压测过程中,观察显示屏是否出现蓝屏问题,并通过检测指定目录下,是否有相关日志dump文件生成;如果出现蓝屏,就会生成该文件。利用脚本每隔10s自动检测一次,发送稳定性告警信息至测试平台服务器端,并自动通知研发和测试人员。
进一步地,步骤S430中,判定驱动模块存在稳定性问题之后,还包括:
S440,利用bug系统创建bug的API创建对应的bug信息。
S450,基于bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对执行策略进行动态调整。
S460,在生成测试集合时对多线程进行加权,加权为对出现问题概率较大的hook点增加执行次数。
在检测完dump文件后,利用bug系统创建bug的API自动创建对应bug的信息。基于bug系统关联的bug情况,再利用文本聚类的方法,对手动和自动测试过程中发现的问题,自动抽象出来一些测试用例,然后针对每个系统默认的基准策略,进行动态调整,让linux操作系统的驱动模块测试能更贴真实场景;然后,定时更新server端的策略,对于出现问题概率较大的hook点,后续生成测试集合的时候,会有多线程执行的加权,加权就是指多线程执行具体测试时,该类hook点被执行的机率会增加。
在本发明实施例的一个实施方式中,步骤S400中,获取带驱动设备信息并将对应的执行策略发送至待驱动设备之前,还包括如下步骤:
S310,获取linux操作系统上安装的应用列表。
S320,将应用列表发送至测试平台服务器端,对测试平台服务器端进行数据更新。
基于监控脚本,获取待测试linux操作系统上安装的应用列表,上报给测试平台服务器端,每次执行测试前都会主动更新一次。在待驱动设备中,有哪些应用以及哪些hook点需要利用脚本来额外覆盖就可以在测试平台服务器端形成对应的执行策略。
在本发明实施例的另一个实施方式中,S200中的基于监控脚本获取Linux操作系统上应用的列表及与应用对应的hook点之前,还包括如下步骤:
S110,基于驱动模块代码,获取其中涉及的所有hook点。
S120,对linux操作系统进行应用的功能遍历,获取所有应用执行时分别对应的hook点。
S130,基于应用列表获取对应的自动化脚本,基于hook点列表得到全量hook脚本,并将自动化脚本和全量hook脚本发送至测试平台服务器端。
上述过程中,首先,基于驱动代码,获取驱动模块所有hook点列表;然后,利用一个安装大量应用的linux操作系统,进行应用的功能遍历,根据关键日志过滤,找到不同应用执行时所覆盖的对应的hook点;最后,根据hook点列表利用python编写相应的全量hook点脚本,并根据应用列表编写不同应用对应的自动化脚本。
请参照图2,在本发明实施例的一个实施方式中,上述linux驱动模块稳定性测试方法首先基于驱动模块代码,获取驱动模块中所有的hook点列表;通过一个安装有大量应用的linux操作系统,基于日志获取应用与hook点的映射关系;编写覆盖所有hook点的脚本及调用程序的自动化脚本;然后通过编写监控脚本,获取不同系统已有的应用,以及系统基础信息,发送至测试平台服务器端;根据上报信息和全量hook脚本,生成不同系统默认的执行策略;通过执行器生成测试合集,进行多线程和多进程并发压测;每10秒进行对默认文件夹进行巡检判断,如发现相关日志dump文件,则认为驱动模块存在不稳定的问题,并进一步调用bug系统API自动创建bug,并发送通知信息至测试平台服务器端及研发和测试人员处;此外,还基于文本聚类方法调整hook点权重,并对应调整执行策略。
通过上述步骤,可以使linux操作系统的驱动模块在测试阶段,系统相关的hook点都能有相应的覆盖,以及基于系统配置和易出问题的点,更多的构造可能出现问题的场景,这样才能挖掘相关驱动模块存在的潜在问题。
相应地,请参照图3,本发明实施例的第二方面提供了一种linux驱动模块稳定性测试装置,包括:
策略生成模块1,其用于基于监控脚本获取Linux操作系统上应用列表及与应用对应的hook点,并发送至测试平台服务器端,得到与应用及hook点相对应的执行策略;
测试执行模块2,其用于获取带驱动设备信息,将对应的执行策略发送至待驱动设备,控制待驱动设备依据执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到linux操作系统驱动模块的稳定性测试结果。
进一步地,请参照图4,测试执行模块2包括:
判断单元21,其用于按照预设时间间隔判断linux操作系统预设目录是否生成相关日志dump文件;
控制单元22,其用于在预设时间间隔内linux操作系统预设目录生成相关日志dump文件时,判定驱动模块存在稳定性问题,并向测试平台服务器端发送稳定性告警信息;
控制单元22还用于在预设时间间隔内linux操作系统预设目录未生成相关日志dump文件,则判定驱动模块运行稳定。
进一步地,测试执行模块2还包括:
信息创建单元23,其用于利用bug系统创建bug的API创建对应的bug信息;
动态调整单元24,其用于基于bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对执行策略进行动态调整;
加权执行单元25,其用于在生成测试集合时对多线程进行加权,加权为对出现问题概率较大的hook点增加执行次数。
进一步地,请参照图5,linux驱动模块稳定性测试装置还包括:数据更新模块3。数据更新模块3进一步包括:
应用列表获取单元31,其用于获取linux操作系统上安装的应用列表;
数据更新单元32,其用于将应用列表发送至测试平台服务器端,对测试平台服务器端进行数据更新。
进一步地,请参照图6,linux驱动模块稳定性测试装置还包括:脚本生成模块4;脚本生成模块4进一步包括:
驱动模块hook点获取单元41,其用于基于驱动模块代码,获取其中涉及的所有hook点;
应用遍历单元42,其用于对linux操作系统进行应用的功能遍历,获取所有应用执行时分别对应的hook点;
脚本生成单元43,其用于基于应用列表获取对应的自动化脚本,基于hook点列表得到全量hook脚本,将自动化脚本和全量hook脚本发送至测试平台服务器端。
相应地,本发明实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被一个处理器执行,以使至少一个处理器执行上述linux驱动模块稳定性测试方法。
相应地,本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述linux驱动模块稳定性测试方法。
本发明实施例旨在保护一种linux驱动模块稳定性测试方法及装置,其中方法包括如下步骤:基于监控脚本获取Linux操作系统上应用列表及与应用对应的hook点,并发送至测试平台服务器端,得到与应用及hook点相对应的执行策略;获取带驱动设备信息,将对应的执行策略发送至待驱动设备,控制待驱动设备依据执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到linux操作系统驱动模块的稳定性测试结果。上述技术方案具备如下效果:
通过利用Python脚本基于hook点的全量集合遍历测试及基于hook点的全量集合的加权多线程并发测试,实现了最大化挖掘产品驱动模块稳定性潜在风险,对于linux操作系统内核的兼容性较好,降低了linux操作系统的使用风险。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (12)

1.一种linux驱动模块稳定性测试方法,其特征在于,包括如下步骤:
基于监控脚本获取Linux操作系统上应用列表及与所述应用对应的所述hook点,并发送至测试平台服务器端,得到与所述应用及所述hook点相对应的执行策略;
获取带驱动设备信息,将对应的所述执行策略发送至所述待驱动设备,控制所述待驱动设备依据所述执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到所述linux操作系统驱动模块的稳定性测试结果。
2.根据权利要求1所述的linux驱动模块稳定性测试方法,其特征在于,所述执行压测得到所述linux操作系统驱动模块的稳定性测试结果,具体包括:
按照预设时间间隔判断所述linux操作系统预设目录是否生成相关日志dump文件;
如是,则判定所述驱动模块存在稳定性问题,并向所述测试平台服务器端发送稳定性告警信息;
如否,则判定所述驱动模块运行稳定。
3.根据权利要求2所述的linux驱动模块稳定性测试方法,其特征在于,所述判定所述驱动模块存在稳定性问题之后,还包括:
利用bug系统创建bug的API创建对应的bug信息;
基于所述bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对所述执行策略进行动态调整;
在生成所述测试集合时对多线程进行加权,所述加权为对出现问题概率较大的所述hook点增加执行次数。
4.根据权利要求1所述的linux驱动模块稳定性测试方法,其特征在于,所述获取带驱动设备信息并将对应的所述执行策略发送至所述待驱动设备之前,还包括:
获取所述linux操作系统上安装的所述应用列表;
将所述应用列表发送至所述测试平台服务器端,对所述测试平台服务器端进行数据更新。
5.根据权利要求1所述的linux驱动模块稳定性测试方法,其特征在于,所述基于监控脚本获取Linux操作系统上应用的列表及与所述应用对应的所述hook点之前,还包括:
基于所述驱动模块代码,获取其中涉及的所有所述hook点;
对所述linux操作系统进行所述应用的功能遍历,获取所有所述应用执行时分别对应的hook点;
基于所述应用列表获取对应的自动化脚本,基于所述hook点列表得到全量hook脚本,并将所述自动化脚本和所述全量hook脚本发送至所述测试平台服务器端。
6.一种linux驱动模块稳定性测试装置,其特征在于,包括:
策略生成模块,其用于基于监控脚本获取Linux操作系统上应用列表及与所述应用对应的所述hook点,并发送至测试平台服务器端,得到与所述应用及所述hook点相对应的执行策略;
测试执行模块,其用于获取带驱动设备信息,将对应的所述执行策略发送至所述待驱动设备,控制所述待驱动设备依据所述执行策略和设备配置信息生成多线程和多进程的测试集合,执行压测,得到所述linux操作系统驱动模块的稳定性测试结果。
7.根据权利要求6所述的linux驱动模块稳定性测试装置,其特征在于,所述测试执行模块包括:
判断单元,其用于按照预设时间间隔判断所述linux操作系统预设目录是否生成相关日志dump文件;
控制单元,其用于在所述预设时间间隔内所述linux操作系统预设目录生成所述相关日志dump文件时,判定所述驱动模块存在稳定性问题,并向所述测试平台服务器端发送稳定性告警信息;
所述控制单元还用于在所述预设时间间隔内所述linux操作系统预设目录未生成所述相关日志dump文件,则判定所述驱动模块运行稳定。
8.根据权利要求7所述的linux驱动模块稳定性测试装置,其特征在于,所述测试执行模块还包括:
信息创建单元,其用于利用bug系统创建bug的API创建对应的bug信息;
动态调整单元,其用于基于所述bug系统关联的bug,通过文本聚类方法抽象出若干个测试用例,对所述执行策略进行动态调整;
加权执行单元,其用于在生成所述测试集合时对多线程进行加权,所述加权为对出现问题概率较大的所述hook点增加执行次数。
9.根据权利要求6所述的linux驱动模块稳定性测试装置,其特征在于,还包括:数据更新模块;
所述数据更新模块包括:
应用列表获取单元,其用于获取所述linux操作系统上安装的所述应用列表;
数据更新单元,其用于将所述应用列表发送至所述测试平台服务器端,对所述测试平台服务器端进行数据更新。
10.根据权利要求6所述的linux驱动模块稳定性测试装置,其特征在于,还包括:脚本生成模块;
所述脚本生成模块包括:
驱动模块hook点获取单元,其用于基于所述驱动模块代码,获取其中涉及的所有所述hook点;
应用遍历单元,其用于对所述linux操作系统进行所述应用的功能遍历,获取所有所述应用执行时分别对应的hook点;
脚本生成单元,其用于基于所述应用列表获取对应的自动化脚本,基于所述hook点列表得到全量hook脚本,将所述自动化脚本和所述全量hook脚本发送至所述测试平台服务器端。
11.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行如权利要求1-5任一所述的linux驱动模块稳定性测试方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-5任一所述的linux驱动模块稳定性测试方法。
CN202211256091.6A 2022-10-13 2022-10-13 一种linux驱动模块稳定性测试方法及装置 Active CN115599645B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211256091.6A CN115599645B (zh) 2022-10-13 2022-10-13 一种linux驱动模块稳定性测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211256091.6A CN115599645B (zh) 2022-10-13 2022-10-13 一种linux驱动模块稳定性测试方法及装置

Publications (2)

Publication Number Publication Date
CN115599645A true CN115599645A (zh) 2023-01-13
CN115599645B CN115599645B (zh) 2023-05-02

Family

ID=84846217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211256091.6A Active CN115599645B (zh) 2022-10-13 2022-10-13 一种linux驱动模块稳定性测试方法及装置

Country Status (1)

Country Link
CN (1) CN115599645B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244195A (zh) * 2023-02-27 2023-06-09 安芯网盾(北京)科技有限公司 一种PHP rasp模块hook稳定性测试方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722434A (zh) * 2012-05-24 2012-10-10 兰雨晴 一种针对Linux进程调度的性能测试方法和工具
CN104932926A (zh) * 2015-07-09 2015-09-23 上海联彤网络通讯技术有限公司 智能操作系统平台中实现设备与驱动动态匹配的系统及方法
CN110674501A (zh) * 2019-09-09 2020-01-10 光通天下网络科技股份有限公司 恶意驱动检测方法、装置、设备及介质
CN112260889A (zh) * 2020-09-28 2021-01-22 中孚安全技术有限公司 一种基于Linux的进程流量监控方法、系统及设备
CN114064465A (zh) * 2021-11-03 2022-02-18 麒麟软件有限公司 一种基于Linux云平台的稳定性测试方法
CN114115884A (zh) * 2020-08-26 2022-03-01 腾讯科技(深圳)有限公司 一种编程服务的管理方法以及相关装置
CN114386044A (zh) * 2021-12-07 2022-04-22 中国电子科技集团公司第三十研究所 一种基于设备驱动派遣函数hook的安全测试方法
CN114610597A (zh) * 2020-12-08 2022-06-10 中移(苏州)软件技术有限公司 一种压力测试方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722434A (zh) * 2012-05-24 2012-10-10 兰雨晴 一种针对Linux进程调度的性能测试方法和工具
CN104932926A (zh) * 2015-07-09 2015-09-23 上海联彤网络通讯技术有限公司 智能操作系统平台中实现设备与驱动动态匹配的系统及方法
CN110674501A (zh) * 2019-09-09 2020-01-10 光通天下网络科技股份有限公司 恶意驱动检测方法、装置、设备及介质
CN114115884A (zh) * 2020-08-26 2022-03-01 腾讯科技(深圳)有限公司 一种编程服务的管理方法以及相关装置
CN112260889A (zh) * 2020-09-28 2021-01-22 中孚安全技术有限公司 一种基于Linux的进程流量监控方法、系统及设备
CN114610597A (zh) * 2020-12-08 2022-06-10 中移(苏州)软件技术有限公司 一种压力测试方法、装置、设备及存储介质
CN114064465A (zh) * 2021-11-03 2022-02-18 麒麟软件有限公司 一种基于Linux云平台的稳定性测试方法
CN114386044A (zh) * 2021-12-07 2022-04-22 中国电子科技集团公司第三十研究所 一种基于设备驱动派遣函数hook的安全测试方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244195A (zh) * 2023-02-27 2023-06-09 安芯网盾(北京)科技有限公司 一种PHP rasp模块hook稳定性测试方法及装置
CN116244195B (zh) * 2023-02-27 2023-09-22 安芯网盾(北京)科技有限公司 一种PHP rasp模块hook稳定性测试方法及装置

Also Published As

Publication number Publication date
CN115599645B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
US8752182B2 (en) Pinpointing security vulnerabilities in computer software applications
US20070220370A1 (en) Mechanism to generate functional test cases for service oriented architecture (SOA) applications from errors encountered in development and runtime
US7185335B2 (en) Programmatic application installation diagnosis and cleaning
US20100005341A1 (en) Automatic detection and notification of test regression with automatic on-demand capture of profiles for regression analysis
US8645912B2 (en) System and method for use in replaying software application events
CN109032927A (zh) 一种漏洞挖掘方法及装置
US20040220774A1 (en) Early warning mechanism for enhancing enterprise availability
US10169002B2 (en) Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
CN111274154A (zh) 一种自动化测试的方法、装置、设备及存储介质
US20090204946A1 (en) Intelligent software code updater
CN109543417B (zh) 一种基于Qemu平台的漏洞挖掘方法和装置
US9195562B2 (en) Recording external processes
CN115599645B (zh) 一种linux驱动模块稳定性测试方法及装置
CN110928787B (zh) 自动化测试脚本录制回放方法、装置、设备和存储介质
CN112199282B (zh) 一种office软件的模糊测试方法、装置及设备
CN112698881B (zh) Android图片加载行为缺陷动态检测方法
US20240134782A1 (en) Information processing system with intelligent program smoke testing
US20240232060A9 (en) Information processing system with intelligent program smoke testing
CN116126702A (zh) 代码测试方法、装置及系统
CN114116468A (zh) 一种应用测试方法、装置、电子设备及存储介质
Konduru et al. Automated Testing to Detect Status Data Loss in Android Applications
CN114528199A (zh) 一种软件异常检测方法、装置及存储介质
CN116339904A (zh) 一种基于硬件辅助的虚拟化指令模拟错误检测方法及系统
CN118094544A (zh) 代码的检测方法、装置、计算机存储介质以及电子设备
CN115185844A (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