CN110990294B - 一种软件缺陷检测规则确定方法、装置、设备和存储介质 - Google Patents
一种软件缺陷检测规则确定方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110990294B CN110990294B CN201911314484.6A CN201911314484A CN110990294B CN 110990294 B CN110990294 B CN 110990294B CN 201911314484 A CN201911314484 A CN 201911314484A CN 110990294 B CN110990294 B CN 110990294B
- Authority
- CN
- China
- Prior art keywords
- detection
- determining
- detected
- selectable
- user
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Abstract
本发明适用于计算机技术领域,提供了一种软件缺陷检测规则确定方法、装置、设备和存储介质,所述方法包括:编译处理待检测软件源代码得到抽象语法树及中间表达式;可视化展示可选检测对象;根据用户对可选检测对象的选择操作确定待检测对象;根据用户对可选检测条件的选择操作确定检测条件;根据待检测对象和检测条件确定检测规则。本发明实施例提供的软件缺陷检测规则确定方法先通过进行编译处理并可视化展示可选检测对象,再根据用户对可选检测对象和可选检测条件的选择操作直接确定待检测对象和检测条件,并直接确定检测规则,无需用户自行编写相应的检测规则程序,对用户的专业技能要求低,适用性更强。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种软件缺陷检测规则确定方法、装置、设备和存储介质。
背景技术
随着计算机技术的发展,因软件程序代码编写存在的漏洞而带来的安全问题也层出不穷,为了避免上述情况的发生,通常需要利用检测工具对软件程序代码进行缺陷检测,通常情况下用户可以自定义检测规则。
然而,虽然现有的检测工具支持用户自定义检测规则,但是通常情况下需要用户熟知待检测软件程序代码以及检测工具所支持的特定编程语言,才能在自定义规则时明确指定检测对象(如函数、变量等等),而当待检测软件程序代码更新后,先前自定义的检测规则也就需要随之修改,十分不便。
可见,现有的支持用户自定义检测规则的检测工具对用户的专业技能要求高,往往需要用户掌握特定的编程语言,影响了检测工具的适用性。
发明内容
本发明实施例的目的在于提供一种软件缺陷检测规则确定方法,旨在解决现有的检测工具所存在的对用户的专业技能要求高,需要用户掌握特定的编程语言导致适用性不高的技术问题。
本发明实施例是这样实现的,一种软件缺陷检测规则确定方法,包括:
编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;
根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;
根据所述待检测对象以及所述检测条件确定检测规则。
本发明实施例的另一目的在于提供一种软件缺陷检测规则确定装置,包括:
编译处理模块,用于编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
可选检测对象展示模块,用于根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
待检测对象选择模块,用于根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;
检测条件选择模块,用于根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;
检测规则确定模块,用于根据所述待检测对象以及所述检测条件确定检测规则。
本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述所述软件缺陷检测规则确定方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述软件缺陷检测规则确定方法的步骤。
本发明实施例提供的一种软件缺陷检测规则确定方法,能够通过对待检测软件源代码进行编译处理,得到待检测软件源代码的抽象语法树及中间表达式,进而获取并可视化展示待检测软件源代码的可选检测对象,使得根据用户无需详细了解整个源代码的内容,也可以直接主动确定可选检测对象,进一步从预设的可选检测条件中确定检测条件,并直接根据所述待检测对象以及所述检测条件生成检测规则的代码,无需用户自行编写相应的检测规则程序代码,对用户的专业技能要求低,适用性更强。
附图说明
图1为本发明实施例提供的一种软件缺陷检测规则确定方法的步骤流程图;
图2为本发明实施例提供的另一种软件缺陷检测规则确定方法的步骤流程图;
图3为本发明实施例提供的一种实现用户对可选检测对象选择操作的步骤流程图;
图4为本发明实施例提供的一种实现用户基于属性关键词对可选检测对象选择操作的步骤流程图;
图5为本发明实施例提供的一种实现用户对可选检测对象选择操作的步骤流程图;
图6为本发明实施例提供的另一种实现用户对可选检测对象选择操作的步骤流程图;
图7为本发明实施例提供的又一种实现用户对可选检测对象选择操作的步骤流程图;
图8为本发明实施例提供的一种软件缺陷检测规则确定装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明实施例提供的一种软件缺陷检测规则确定方法的步骤流程图,具体包括以下步骤:
步骤S102,编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式。
在本发明实施例中,利用常见的编译器就可以对待检测软件源代码进行编译处理,经过编译处理后,待检测软件源代码就能够转化为以树状形式示出的且包含待检测软件源代码所拥有的的全部信息的抽象语法树及中间表达式。
步骤S104,根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象。
在本发明实施例中,通常情况下,对待检测软件源代码的检测通常是针对源代码中的类、函数、参数或变量进行检测,例如检测函数的输入值、返回值是否满足要求,检测变量的取值范围是否满足要求等等,因此,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种。
在本发明实施例中,本发明对具体的可视化展示形式不作限制,例如可以是全部展示、也可以是分类折叠展示,凡是能够使得用户能够直接或者通过简单操作间接获取到各可选检测对象的信息的展示方式都可以称为可视化展示。
在本发明实施例中,除了名称外,抽象语法树以及中间表达式中还包含了软件源代码的类、函数、参数以及变量的属性信息,这些属性信息虽然不直接可视化展示出,但是同样会与类、函数、参数以及变量相关联并以计算机可读形式存储在配套设施中。需要说明的是,属性信息不仅仅包括类、函数、参数以及变量的固有属性,此外,在待检测软件的执行过程中,类、函数、参数以及变量所临时赋予的临时属性也同样被认为是属性信息的一种。而基于这些属性信息可以对下述步骤S106的过程进一步进行优化,更加方便用户,具体请参阅后续步骤S106的解释说明。
步骤S106,根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象。
在本发明实施例中,本发明对具体的选择操作不做限制,例如,最常见的,可以是通过鼠标点击、键盘快捷键的形式对可选检测对象进行选择,当然除此之外的其他选择方式如触摸选择、语音选择方式也可以,凡是能够实现用户主动且毫无疑义的选定方式都应当包含在本发明的保护范围之内。
作为本发明的一个优选实施例,结合前述步骤S104的论述可知,对于可选检测对象而言,还具有以计算机可读形式存在的属性信息。进一步,为便于用户能够快速获取到所需要的可选检测对象,本发明对可选检测对象进行选择的过程进行进一步的优化,具体请参阅图3以及图4的解释说明。
步骤S108,根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件。
在本发明实施例中,与可选检测对象相似,可选检测条件也是直接或间接地以可视化展示的形式展示给用户以便于用户选择,但与可选检测对象不同的是,可选检测对象是基于待检测软件源代码生成的,对于不同的待检测软件源代码,可选检测对象通常不同,而可选检测条件是预先设置好的,对于不同的检测软件源代码,可选检测条件通常相同。
作为本发明的一个优选实施例,进一步,为便于用户能够快速获取到所需要的,本发明对对可选检测条件进行选择的过程进行进一步的优化,具体包括两种优化方案,其中,基于意图关键词对可选检测条件进行选择的优化方案具体请参阅图5及其解释说明,而基于检测对象与检测条件的关联关系对可选检测条件进行选择的优化方案请参阅图6及其解释说明。
在本发明实施例中,还需要强调的一点是,结合步骤S106以及步骤S108的论述可知,利用属性信息可以快速的实现对可选检测对象的筛选,而利用意图关键词可以快速的实现对可选检测条件的筛选。而在现有计算机技术能够实现对输入语句进行断句、语义识别的前提下,可以理解,即使用户直接一次性输入完整的包含属性信息以及意图关键词的语句,本发明提供的软件缺陷检测规则确定方法也能够实现自动识别其中的属性信息以及意图关键词,并分别对可选检测对象与可选检测条件进行筛选,从而实现检测规则的确定,上述技术方案同样应当包含在本发明的保护范围内。
步骤S110,根据所述待检测对象以及所述检测条件确定检测规则。
在本发明提供的技术方案中,在确定待检测对象和检测条件后,能够直接生成与检测工具所指定的编程语言相应的检测规则代码,而无需用户主动编写相应的检测规则,无需用户掌握多种编程语言,提高了本发明技术方案的适用性。
本发明实施例提供的一种软件缺陷检测规则确定方法,能够通过对待检测软件源代码进行编译处理,得到待检测软件源代码的抽象语法树及中间表达式,进而获取并可视化展示待检测软件源代码的可选检测对象,使得根据用户无需详细了解整个源代码的内容,也可以直接主动确定可选检测对象,进一步从预设的可选检测条件中确定检测条件,并直接根据所述待检测对象以及所述检测条件生成检测规则的代码,无需用户自行编写相应的检测规则程序代码,对用户的专业技能要求低,适用性更强。
如图2所示,为本发明实施例提供的另一种软件缺陷检测规则确定方法的步骤流程图,详述如下。
在本发明实施例中,与图1示出的一种软件缺陷检测规则确定方法的步骤流程图的区别在于,还包括:
步骤S202,根据所述检测规则对所述待检测软件进行缺陷检测。
在本发明实施例中,利用本发明提供的软件缺陷检测规则确定方法能够快速确定出用户所需求的检测规则,进一步利用该检测规则即可实现对所述待检测软件的缺陷检测,整个检测过程对用户要求低,用户操作方便,极大地方便了用户的操作。
如图3所示,为本发明实施例提供的一种实现用户对可选检测对象选择操作的步骤流程图,具体包括以下步骤:
步骤S302,从所述可选检测对象中确定并可视化展出与用户输入的属性关键词匹配的可选检测对象。
在本发明实施例中,为了便于用户快速筛选出期望的可选检测对象,可以通过主动输入属性关键词的方式对可选检测对象进行筛选,结合前述步骤S104、步骤S106的论述可知,虽然类、函数、参数以及变量的属性信息不直接以可视化方式展示,但是还是会以计算机可读形式存在并与相应的类、函数、参数以及变量关联,在用户输入属性关键词后,通过属性关键词以及类、函数、参数或变量的属性信息进行分析,就能够筛选并可视化突出展出与用户输入的属性关键词匹配的可选检测对象。
在本发明实施例中,需要特别说明的一点是,本优化技术方案还便于源代码的更新。采用常规的方式编写检测规则后,当源代码更新,也就是类、函数、参数以及变量更新后,无法使用原有的检测规则,因为源代码中不再存在原有的待检测对象,需要重新编写检测规则。然而,在本优化技术方案中,由于是通过属性关键词确定类、函数、参数或变量,对于仅仅只是对类、函数、参数以及变量的名称进行调整的更新情况,由于当前的检测规则还关联保留了类、函数、参数以及变量的属性信息,因此,无需对重新编写检测规则,十分方便。
步骤S304,根据用户对与所述属性关键词匹配的可选检测对象的选择操作,确定待检测对象。
在本发明实施例中,在基于属性关键词筛选出相关联的可选检测对象后,仍需要用户进一步选择或者选定具体的待检测对象。
本发明提供的优化方法,不仅便于用户快速筛选出自己想要的可选检测对象,同时也简化了源代码更新时,需要对检测规则同步进行更新的过程。
如图4所示,为本发明实施例提供的一种实现用户基于属性关键词对可选检测对象选择操作的步骤流程图,具体包括以下步骤。
步骤S402,根据所述抽象语法树以及所述中间表达式确定所述可选检测对象的属性信息。
在本发明实施例中,可以知晓,可选检测对象的属性信息可以直接通过抽象语法树以及中间表达式来确定。
步骤S404,根据用户输入的属性关键词确定与所述属性关键词匹配的检索属性信息。
在本发明实施例中,通过对属性关键词进行语义识别,就能够确定与用户输入的属性关键词匹配的检索属性信息。
步骤S406,根据所述检索属性信息确定并可视化展示具有所述检索属性信息的可选检测对象。
在本发明实施例中,当类、函数、参数以及变量所具有的的属性信息与用户输入的属性关键词所匹配的属性信息吻合时,表明所述类、函数、参数以及变量即为用户期望的可选检测对象,因此通过可视化的方式进行展示,以便于用户选择。
如图5所示,为本发明实施例提供的一种实现用户对可选检测对象选择操作的步骤流程图,具体包括以下步骤。
步骤S502,从预设的可选检测条件中确定并可视化展示与用户输入的意图关键词匹配的可选检测条件。
在本发明实施例中,与筛选可选检测条件相似,本发明也可通过用户主动输入意图关键词的方式筛选用户所期望的可选检测条件。例如当需要判断某个函数返回值是否大于N时,此时大于N即为用户所期望的可选检测条件,用户只需要输入大于,此时,会自动筛选与大于相关的可选检测条件,进一步的,当N值为预设的,还会提示用户手动属于阈值N。
步骤S504,根据用户对与所述意图关键词匹配的可选检测条件的选择操作,确定检测条件。
在本发明实施例中,在基于意图关键词筛选出相关联的可选检测条件后,仍需要用户进一步选择或者选定具体的检测条件。
如图6所示,为本发明实施例提供的另一种实现用户对可选检测对象选择操作的步骤流程图,具体包括以下步骤。
步骤S602,根据所述待检测对象以及预设的待检测对象与可选检测条件的关联关系确定并可视化展示与所述待检测对象关联的可选检测条件。
在本发明实施例中,提供了另一种实现用户对可选检测对象进行选择操作的技术方案,具体的,在用户确定好待检测对象后,基于预设的待检测对象与可选检测条件的关联关系确定并可视化展示与所述待检测对象关联的可选检测条件。
在本发明实施例中,考虑到对某些可选检测对象而言,经常使用的检测条件并不多,因此,将可选检测对象与检测条件相关联,在用户确定可选检测对象之后,就能够快速确定并可视化展示出该可选检测对象所常用的检测条件以便与用户选取。其中,如图7所示,提供了一种将可选检测对象与检测条件相关联的实现方式,具体内容详细请参阅图7。
步骤S604,根据用户对所述可选检测条件的选择操作,确定检测条件。
在本发明实施例中,在基于可选检测对象和可选检测条件的关联关系确定并可视化展示可选检测条件后,仍需要用户进一步选择或者选定具体的检测条件。
如图7所示,为本发明实施例提供的又一种实现用户对可选检测对象选择操作的步骤流程图,详述如下。
在本发明实施例中,与图6示出的另一种实现用户对可选检测对象选择操作的步骤流程图的区别在于,还包括:
步骤S702,在确定检测规则后,将检测规则中包含的待检测对象以及检测条件的关联关系确定为关联。
在本发明实施例中,其中,在每一次确定检测规则,也就是在图1所提供的一种软件缺陷检测规则确定方法中的步骤S110后,都将检测规则中包含的待检测对象以及检测条件的关联关系确定为关联,以便于下次快速筛选。
如图8所示,为本发明实施例提供的一种软件缺陷检测规则确定装置的结构示意图,详述如下。
在本发明实施例中,所述软件缺陷检测规则确定装置具体包括:
编译处理模块810,用于编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式。
在本发明实施例中,利用常见的编译器就可以对待检测软件源代码进行编译处理,经过编译处理后,待检测软件源代码就能够转化为以树状形式示出的且包含待检测软件源代码所拥有的的全部信息的抽象语法树及中间表达式。
可选检测对象展示模块820,用于根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象。
在本发明实施例中,通常情况下,对待检测软件源代码的检测通常是针对源代码中的类、函数、参数或变量进行检测,例如检测函数的输入值、返回值是否满足要求,检测变量的取值范围是否满足要求等等,因此,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种。
在本发明实施例中,本发明对具体的可视化展示形式不作限制,例如可以是全部展示、也可以是分类折叠展示,凡是能够使得用户能够直接或者通过简单操作间接获取到各可选检测对象的信息的展示方式都可以称为可视化展示。
在本发明实施例中,除了名称外,抽象语法树以及中间表达式中还包含了软件源代码的类、函数、参数以及变量的属性信息,这些属性信息虽然不直接可视化展示出,但是同样会与类、函数、参数以及变量相关联并以计算机可读形式存储在配套设施中。需要说明的是,属性信息不仅仅包括类、函数、参数以及变量的固有属性,此外,在待检测软件的执行过程中,类、函数、参数以及变量所临时赋予的临时属性也同样被认为是属性信息的一种。
待检测对象选择模块830,用于根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象。
在本发明实施例中,本发明对具体的选择操作不做限制,例如,最常见的,可以是通过鼠标点击、键盘快捷键的形式对可选检测对象进行选择,当然除此之外的其他选择方式如触摸选择、语音选择方式也可以,凡是能够实现用户主动且毫无疑义的选定方式都应当包含在本发明的保护范围之内。
检测条件选择模块840,用于根据用户对预设的可视化展示的可选检测条件的选择操作,确定检测条件。
在本发明实施例中,与可选检测对象相似,可选检测条件也是直接或间接地以可视化展示的形式展示给用户以便于用户选择,但与可选检测对象不同的是,可选检测对象是基于待检测软件源代码生成的,对于不同的待检测软件源代码,可选检测对象通常不同,而可选检测条件是预先设置好的,对于不同的检测软件源代码,可选检测条件通常相同。
检测规则确定模块850,用于根据所述待检测对象以及所述检测条件确定检测规则。
在本发明提供的技术方案中,在确定待检测对象和检测条件后,能够直接生成与检测工具所指定的编程语言相应的检测规则代码,而无需用户主动编写相应的检测规则,无需用户掌握多种编程语言,提高了本发明技术方案的适用性。
本发明实施例提供的一种软件缺陷检测规则确定装置,能够通过对待检测软件源代码进行编译处理,得到待检测软件源代码的抽象语法树及中间表达式,进而获取并可视化展示待检测软件源代码的可选检测对象,使得根据用户无需详细了解整个源代码的内容,也可以直接主动确定可选检测对象,进一步从预设的可选检测条件中确定检测条件,并直接根据所述待检测对象以及所述检测条件生成检测规则的代码,无需用户自行编写相应的检测规则程序代码,对用户的专业技能要求低,适用性更强。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;
根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;
根据所述待检测对象以及所述检测条件确定检测规则。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
编译处理模块,用于编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
可选检测对象展示模块,用于根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
待检测对象选择模块,用于根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;
检测条件选择模块,用于根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;
检测规则确定模块,用于根据所述待检测对象以及所述检测条件确定检测规则。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种软件缺陷检测规则确定方法,其特征在于,包括:
编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;
根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;
根据所述待检测对象以及所述检测条件确定检测规则;
根据所述检测规则对所述待检测软件进行缺陷检测;
所述根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象的步骤具体包括:
从所述可选检测对象中确定并可视化展示与用户输入的属性关键词匹配的可选检测对象;
根据用户对与所述属性关键词匹配的可选检测对象的选择操作,确定待检测对象;
所述从所述可选检测对象中确定并可视化展示与用户输入的属性关键词匹配的可选检测对象的步骤具体包括:
根据所述抽象语法树以及所述中间表达式确定所述可选检测对象的属性信息;
根据用户输入的属性关键词确定与所述属性关键词匹配的检索属性信息;
根据所述检索属性信息确定并可视化展示具有所述检索属性信息的可选检测对象;
所述根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件的步骤具体包括:
从预设的可选检测条件中确定并可视化展示与用户输入的意图关键词匹配的可选检测条件;
根据用户对与所述意图关键词匹配的可选检测条件的选择操作,确定检测条件;
或
所述根据用户对预设的可视化展示的可选检测条件的选择操作,确定检测条件的步骤具体包括:
根据所述待检测对象以及预设的待检测对象与可选检测条件的关联关系确定并可视化展示与所述待检测对象关联的可选检测条件;
根据用户对所述可选检测条件的选择操作,确定检测条件。
2.根据权利要求1所述的软件缺陷检测规则确定方法,其特征在于,还包括:
在确定检测规则后,将检测规则中包含的待检测对象以及检测条件的关联关系确定为关联。
3.一种软件缺陷检测规则确定装置,其特征在于,包括:
编译处理模块,用于编译处理待检测软件源代码,并生成所述待检测软件源代码的抽象语法树及中间表达式;
可选检测对象展示模块,用于根据所述抽象语法树以及所述中间表达式确定并可视化展示所述待检测软件源代码的可选检测对象,所述可选检测对象至少包括所述待检测软件源代码的类、函数、参数以及变量中的一种;
待检测对象选择模块,用于根据用户对可视化展示的所述可选检测对象的选择操作,确定待检测对象;确定待检测对象的步骤具体包括:从所述可选检测对象中确定并可视化展示与用户输入的属性关键词匹配的可选检测对象;根据用户对与所述属性关键词匹配的可选检测对象的选择操作,确定待检测对象;所述从所述可选检测对象中确定并可视化展示与用户输入的属性关键词匹配的可选检测对象的步骤具体包括:根据所述抽象语法树以及所述中间表达式确定所述可选检测对象的属性信息;根据用户输入的属性关键词确定与所述属性关键词匹配的检索属性信息;根据所述检索属性信息确定并可视化展示具有所述检索属性信息的可选检测对象;
检测条件选择模块,用于根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件;所述根据用户对可视化展示的预设的可选检测条件的选择操作,确定检测条件的步骤具体包括:从预设的可选检测条件中确定并可视化展示与用户输入的意图关键词匹配的可选检测条件;根据用户对与所述意图关键词匹配的可选检测条件的选择操作,确定检测条件;
或
所述根据用户对预设的可视化展示的可选检测条件的选择操作,确定检测条件的步骤具体包括:根据所述待检测对象以及预设的待检测对象与可选检测条件的关联关系确定并可视化展示与所述待检测对象关联的可选检测条件;根据用户对所述可选检测条件的选择操作,确定检测条件;以及
检测规则确定模块,用于根据所述待检测对象以及所述检测条件确定检测规则;根据所述检测规则对所述待检测软件进行缺陷检测。
4.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至2中任一项权利要求所述软件缺陷检测规则确定方法的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至2中任一项权利要求所述软件缺陷检测规则确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314484.6A CN110990294B (zh) | 2019-12-19 | 2019-12-19 | 一种软件缺陷检测规则确定方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911314484.6A CN110990294B (zh) | 2019-12-19 | 2019-12-19 | 一种软件缺陷检测规则确定方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990294A CN110990294A (zh) | 2020-04-10 |
CN110990294B true CN110990294B (zh) | 2023-07-14 |
Family
ID=70095886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911314484.6A Active CN110990294B (zh) | 2019-12-19 | 2019-12-19 | 一种软件缺陷检测规则确定方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990294B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708694A (zh) * | 2020-06-10 | 2020-09-25 | Xc5香港有限公司 | 基于抽象解释的软件检测方法、装置、计算机设备和存储介质 |
CN112433730A (zh) * | 2020-11-23 | 2021-03-02 | 北京字节跳动网络技术有限公司 | 代码检测规则的生成方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
CN107153606A (zh) * | 2016-03-04 | 2017-09-12 | 郭德贵 | 一种程序分析过程可视化方法及系统 |
CN109857641A (zh) * | 2018-12-29 | 2019-06-07 | 北京奇安信科技有限公司 | 对程序源文件进行缺陷检测的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7562340B2 (en) * | 2006-03-23 | 2009-07-14 | International Business Machines Corporation | Method for graphically building business rule conditions |
-
2019
- 2019-12-19 CN CN201911314484.6A patent/CN110990294B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
CN107153606A (zh) * | 2016-03-04 | 2017-09-12 | 郭德贵 | 一种程序分析过程可视化方法及系统 |
CN109857641A (zh) * | 2018-12-29 | 2019-06-07 | 北京奇安信科技有限公司 | 对程序源文件进行缺陷检测的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110990294A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9075787B2 (en) | Defining a reusable spreadsheet-function by extracting the function from a complex calculation in a spreadsheet document | |
CN106951228B (zh) | 版本迭代中差异的处理方法和装置 | |
US9202021B2 (en) | License verification method and apparatus, and computer readable storage medium storing program therefor | |
CN110060674B (zh) | 表格管理方法、装置、终端和存储介质 | |
CN110990294B (zh) | 一种软件缺陷检测规则确定方法、装置、设备和存储介质 | |
CN108027721B (zh) | 用于使用控件来配置通用程序的技术 | |
KR101554424B1 (ko) | 테스트 케이스 생성 자동화 방법 및 장치 | |
CN107992631B (zh) | 一种文件管理方法及终端 | |
CN108446398A (zh) | 一种数据库的生成方法及装置 | |
CN112860312A (zh) | 项目依赖关系变化的检测方法及装置 | |
CN104937540B (zh) | 获取与类似代码相关联的应用生命周期管理实体的标识 | |
JP2005352612A (ja) | プログラム開発支援装置および変数名リスト表示方法 | |
JP2013020437A (ja) | 要件管理支援装置 | |
US20030043208A1 (en) | Dynamic menu system | |
CN115827125A (zh) | 界面控件测试方法和设备 | |
JP5720531B2 (ja) | ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法 | |
JP7092992B2 (ja) | 文書管理プログラム、文書管理装置および文書管理方法 | |
CN110309315B (zh) | 模板文件的生成方法、装置、计算机可读介质及电子设备 | |
CN112463319A (zh) | 内容检测模型的生成方法和装置、电子设备及存储介质 | |
US20040075696A1 (en) | System and method for automatic mnemonic assignment | |
JP2000172739A (ja) | 設計支援装置 | |
US9880873B2 (en) | Electronic official document processing method | |
JP7469999B2 (ja) | 検索装置、検索方法、および検索プログラム | |
CN116484835B (zh) | 剧本道具挖掘方法、装置及设备 | |
US11914654B2 (en) | Document management apparatus, document management system, and non-transitory computer readable medium storing program |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230417 Address after: 51 Brasbala Road, Singapore, No. 04-08 Lazada 1 Applicant after: Alipay Intellectual Property Holding Co. Address before: 14 / F, Hong Kong tower, 8 Hennessy Road, Wanchai, Hong Kong, China Applicant before: XC5 Hong Kong Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |