一种软件性能风险检测方法及装置制造方法及图纸

技术编号:22754924 阅读:30 留言:0更新日期:2019-12-07 03:54
本申请提供了一种软件性能风险检测方法及装置,包括:获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;对风险程序集合中程序的操作行为进行处理后获得逻辑特征向量;利用逻辑特征向量进行风险检测。本申请提供的软件性能风险检测方法包含了指标定义、风险识别及行为分析、特征存储、风险学习和操作管理等,能够防范性能风险影响软件的运行,并且对软件研发前期的性能风险识别提供了保障,以便在研发阶段就对可能存在的风险问题进行优化。

A software performance risk detection method and device

The application provides a software performance risk detection method and device, including: acquiring the software program set to be detected, selecting the program with performance risk according to the predefined performance index, generating the risk program set; processing the operation behavior of the program in the risk program set to obtain the logic feature vector; using the logic feature vector for risk detection. The software performance risk detection method provided in this application includes index definition, risk identification and behavior analysis, feature storage, risk learning and operation management, etc., which can prevent performance risk from affecting the operation of software, and provide guarantee for performance risk identification in the early stage of software development, so as to optimize the possible risk problems in the development stage.

【技术实现步骤摘要】
一种软件性能风险检测方法及装置
本申请属于计算机软件检测领域,具体地讲,涉及一种基于机器学习的软件性能风险检测的方法及装置。
技术介绍
性能风险是软件项目风险的一种,如果软件发生性能风险可能会影响软件正常运作,造成软件重构、项目失败,并可能带来重大损失。随着业务架构的日趋复杂,以及各种技术框架的引入,性能风险的种类也不断增加。在传统的技术中,性能风险的识别高度依赖人的经验,或者需要等到风险发生后再举一反三,不利于在软件研发的前期就识别和排除风险。
技术实现思路
本申请提供了一种软件性能风险检测方法及装置,以至少解决现有技术中软件性能风险需要依赖人的经验进行识别并且无法在软件研发的前期就对风险进行识别和排除。根据本申请的一个方面,提供了一种软件性能风险检测方法,包括:获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;对风险程序集合中程序的操作行为进行处理后获得逻辑特征向量;利用逻辑特征向量进行风险检测。在一实施例中,根据预先定义的性能指标筛选具有性能风险的程序,包括:判断待检测的软件程序集合中的程序是否符合性能指标;通过动态审计将待检测的程序集合中不符合性能指标的程序拦截。在一实施例中,对风险程序集合中程序的操作行为进行处理,包括:解析风险程序集合中程序操作行为的步骤并将操作行为步骤转化为逻辑特征向量并保存。在一实施例中,利用逻辑特征向量进行风险检测,包括:利用学习算法对逻辑特征向量进行聚类,将逻辑特征向量分类;根据所述逻辑特征向量的数量与预设阈值判断对应的类别的操作行为是否为高风险行为。根据本申请的另一个方面,还提供了一种软件性能风险检测装置,包括:预筛选单元,用于获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;逻辑特征向量获得单元,用于对风险程序集合中程序的操作行为进行处理后获得逻辑特征向量;风险检测单元,用于利用逻辑特征向量进行风险检测。在一实施例中,预筛选单元包括:性能判断模块,用于判断待检测的软件程序集合中的程序是否符合性能指标;拦截模块,用于通过动态审计将待检测的程序集合中不符合性能指标的程序拦截。在一实施例中,逻辑特征向量获得单元具体包括:解析转化模块,用于解析风险程序集合中程序的操作行为步骤并将操作行为步骤转化为逻辑特征向量并保存。在一实施例中,风险检测单元包括:聚类模块,用于利用学习算法对逻辑特征向量进行聚类,将逻辑特征向量分类;高风险定义模块,用于根据所述逻辑特征向量的数量与预设阈值判断对应的类别的操作行为是否为高风险行为。本申请利用机器学习技术,对软件的性能风险进行识别,从而达到在软件研发的前期就将所具有的性能风险识别出并排除的功能。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请中软件性能风险检测的方法流程图;图2为本申请中根据性能指标筛选具有性能风险的程序的方法流程图;图3为本申请中利用逻辑特征向量进行风险检测的方法流程图;图4为本申请中软件性能风险检测装置的结构框图;图5为本申请实施例中的一种电子设备的具体实施方式。具体实施方式在现有技术中,软件性能风险的识别高度依赖人的经验,或者需要等到软件的性能发生风险问题后再进行举一反三亡羊补牢,这样的方式不利于在软件研发的前期就识别和排除风险。基于上述,本申请提供了一种软件性能风险检测方法,如图1所示,包括如下步骤:S101:获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合。在一具体实施例中,待检测的软件由一个或多个程序组成,因此,每个软件即为一个程序集合,程序集合中的元素为一个或多个。性能风险的指标需要提前设定,例如,当CPU的使用率超过70%的时候会具有性能风险,因此,CPU的使用率是否超过70%即为一项性能风险的判断指标。利用预先定义的性能风险指标,对待检测的软件(程序集合)中的程序进行筛选,将不符合性能风险指标的程序筛选出。S102:对风险程序集合中程序的操作行为进行处理后获得逻辑特征向量。在一具体实施例中,将具有性能风险的程序的操作行为进行拆解,将其拆解为操作行为步骤以及每个步骤所包含的逻辑特征,然后将逻辑特征以向量的形式保存。S103:利用逻辑特征向量进行风险检测。在一具体实施例中,在获得逻辑特征向量之后,对所有逻辑特征向量利用聚类算法进行聚类,聚类算法包括但不限于EM\DBSCAN、K-Means等。聚类的结果是将逻辑特征向量进行了N种分类,对聚类结果进行判断,根据分类集合中包含的逻辑特征向量元素的个数与预设的阈值之间的关系判断该分类所对应的行为是否为高风险行为,比如当某一分类集合中包含的逻辑特征向量元素的个数超过预设阈值(比如100)时,这一分类所对应的操作行为即为高风险行为。图1所示的方法的执行主体可以为服务器、PC、移动终端,该方法实现了将软件程序根据性能指标进行预筛选,筛选出具有性能风险的程序集合,再将具有性能风险的程序集合中的程序进行解析,解析出操作行为步骤以及对应的逻辑特征,再利用聚类算法对解析得到的逻辑特征向量进行分析,来检测是否为高风险行为的功能。在一实施例中,如图2所示,根据预先定义的性能指标筛选具有性能风险的程序,包括如下步骤:S201:判断待检测的软件程序集合中的程序是否符合性能指标。S202:通过动态审计将待检测的程序集合中不符合性能指标的程序拦截。在一具体实施例中,常见的性能指标有响应时间、吞吐量、连接数大小和资源使用率等。可以按照不同的维度进行性能指标的定义并作为风险识别的对象用于判断哪些程序不满足性能要求,存有性能风险。比如,以数据库服务器为例,可以定义5个性能指标:1、CPU资源使用率小于70%;2、空闲内存大于0;3、连接数使用率小于80%;4、DBCPU事件排在前台事件第一位;5、单SQL执行次数在正常值范围内。定义完性能指标后利用动态审计的方式逐条判断待检测的软件的程序集合中的程序是否符合预定义的性能指标,如果该程序不符合预定义的性能指标,那么对该程序以旁路或探针形式,通过动态审计的手段,对该程序进行拦截和采集。在一具体实施例中,假设在一次数据库性能风险审计案例中,命中到了下面4个性能指标不符合要求:CPU资源使用率超过70%,数据库连接数超过80%的预警值,前台事件第一位是cursor:pinS,并且单SQL(结构化查询语言)执行次数异常,那么判定此次被审计的软件程序集合具有性能风险本文档来自技高网...

【技术保护点】
1.一种软件性能风险检测方法,其特征在于,包括:/n获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;/n对所述风险程序集合中程序的操作行为进行处理后获得逻辑特征向量;/n利用所述逻辑特征向量进行风险检测。/n

【技术特征摘要】
1.一种软件性能风险检测方法,其特征在于,包括:
获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;
对所述风险程序集合中程序的操作行为进行处理后获得逻辑特征向量;
利用所述逻辑特征向量进行风险检测。


2.根据权利要求1所述的检测方法,其特征在于,所述根据预先定义的性能指标筛选具有性能风险的程序,包括:
判断所述待检测的软件程序集合中的程序是否符合所述性能指标;
通过动态审计将所述待检测的程序集合中不符合所述性能指标的程序拦截。


3.根据权利要求1所述的检测方法,其特征在于,所述对所述风险程序集合中程序的操作行为进行处理,包括:
解析所述风险程序集合中程序的操作行为步骤并将所述操作行为步骤转化为所述逻辑特征向量并保存。


4.根据权利要求1所述的检测方法,其特征在于,所述利用所述逻辑特征向量进行风险检测,包括:
利用学习算法对所述逻辑特征向量进行聚类;
根据所述逻辑特征向量的数量与预设阈值判断对应的类别的操作行为是否为高风险行为。


5.一种软件性能风险检测装置,其特征在于,包括:
预筛选单元,用于获取待检测的软件程序集合,并根据预先定义的性能指标筛选具有性能风险的程序,生成风险程序集合;
逻辑特征向量获得单元,用于对...

【专利技术属性】
技术研发人员:陈肇权黄裕建马泽政
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1