《中国人工智能学会通讯》——8.42 基于编程模式挖掘软件缺陷

简介: 本节书摘来自CCAI《中国人工智能学会通讯》一书中的第8章,第8.42节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。

8.42 基于编程模式挖掘软件缺陷

软件缺陷种类繁多且新缺陷不断出现、不同缺陷形成的原因各不相同。试图通过直接描述软件缺陷模式来发现软件缺陷非常困难。所幸,由于程序编写过程需要遵循程序设计语言确立的各种编程规范和约定,无缺陷的正常程序大都应与此“正常模式”相符。因此,要挖掘软件缺陷,可以设法对正常程序需要符合与遵循的编程模式进行建模,据此发现与此“正常模式”相违背的潜在软件缺陷。对编程模式的刻画,可通过对软件项目中的源代码以及其他相关非代码数据的分析和挖掘来实现。

从源代码挖掘编程模式
获得程序正常模式描述的最直接方法是基于程序设计语言的领域知识定义出一套模板,然后根据所定义的模板实现软件缺陷的检测[3] 。,然而,该方法对软件缺陷的甄别效果很大程度上依赖于所定义的模板正确性与完备性,需要经验丰富且对当前程序设计语言构造理解深的专家才能定义出正确且相对完备的模板,因此难以在实际中广泛应用。为此,Li et al [4] 提出了自动模板生成。他们假设程序中缺陷是因不慎引入的,缺陷自身的数量远不及正常模式多。因此,通过频繁模式进行挖掘,即可有效发现与描述程序中的正常模式。他们利用编码规则将函数作为项 (item) 进行关联规则挖掘,获得了函数之间使用的耦合关系,据此发现不满足关系的潜在缺陷。Livshitz et al [5] 通过关联规则挖掘从软件的修改记录 (change log) 中挖掘出了函数的成对使用模式 ( 如函数 malloc () 与 free() 通常成对使用 ),据此发现因未成对使用某些函数而造成的缺陷。

从其他数据源挖掘编程模式
仅利用当前软件项目的源代码进行挖掘,有时并不能涵盖所有有用的正常编程模式。例如,在这个软件中仅对某个 API 使用了一两次,因此很难从中挖掘出针对这个 API 的频繁模式。因此,需要利用其他数据来源来辅助对编程规则的挖掘。Taoet al [6] 借助 Google 代码搜索获得大量对该 API 使用的历史记录,并通过对此进行关联规则挖掘获得API 的使用模式与规范。Tan et al [7] 通过挖掘源代码中给出的文字注释,将注释中指明的函数使用规则映射为一组规则模板,基于此发现程序中与注释所指明的函数使用规则不相符的缺陷。

相关文章
|
6月前
|
人工智能 安全 Anolis
中兴通讯分论坛邀您探讨 AI 时代下 OS 的安全能力 | 2024 龙蜥大会
操作系统如何提供符合场景要求的安全能力,构建更加安全可信的计算环境。
|
9月前
|
人工智能 自然语言处理 前端开发
ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)
ChatGPT更新的使用指南,与其他类似的人工智能的软件和服务-更新版(2023-6-25)
145 0
|
9月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能在公司监视员工电脑的软件中的崭新应用(TensorFlow)
在当今数字化时代,企业日益依赖人工智能技术来提高工作效率和确保数据安全。最近,TensorFlow作为一种强大的机器学习工具,开始在公司监视员工电脑的软件中崭露头角。本文将探讨TensorFlow在这一领域中的创新应用,并通过多个代码示例展示其功能。
292 0
|
9月前
|
机器学习/深度学习 人工智能 监控
人工智能在内网上网行为管理软件中的智能分析与优化
随着科技的迅猛发展,内网上网行为管理软件越来越成为企业信息安全的重要组成部分。本文将探讨如何通过人工智能技术对内网上网行为进行智能分析与优化,以提高管理软件的效能。
386 0
|
机器学习/深度学习 传感器 自动驾驶
自动驾驶软件和人工智能
自动驾驶汽车的核心在于其软件系统,而其中的机器学习和深度学习技术是使车辆能够感知、理解、决策和行动的关键。本文将深入探讨这些技术在自动驾驶中的应用,包括感知、定位、路径规划以及道路标志和交通信号的识别。
187 0
|
机器学习/深度学习 人工智能 自然语言处理
阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24
这是ShowMeAI每周通讯的第3期。本期内容关键词:新冠、ChatGPT、2022 AI 报告、腾讯·绝悟、阿里·AliceMind、小红书·全站智投、OpenAI·Point-E、Google·CALM、Wayve·MILE、AI2·MemPrompt、Stanford x MosaicML·PubMed GPT、腾讯全员大会、特斯拉裁员、图森未来裁员、AI 应用与工具大全。
567 0
阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24
|
机器学习/深度学习 人工智能 自然语言处理
2022年十大人工智能 (AI) 软件解决方案
IDC 预测,人工智能平台和人工智能应用开发和部署将继续成为人工智能市场增长最快的领域。此列表为组织评估最适合其需求的方法和解决方案提供了一个起点。
966 0
2022年十大人工智能 (AI) 软件解决方案
|
人工智能
ai人工智能写歌词app,ai写歌词网站,ai作词软件创作版,作词人的辅助工具,押韵助手
早在2019年,AI机器人小芝(aixiegeci)就出现在音乐创作创作领域,作为一个AI人工智能写歌词app,在歌词创作领域辅助音乐人写歌词的应用。在软件上输入三句话作为关键词引导句子,选择歌词风格,30秒就能完成一首歌词的创作,根据主题来写一首原创歌词给音乐人作为歌词创作词穷时作为参考借鉴。同时,该应用软件还可以选择歌词的韵脚(十三韵)和每句歌词末尾押韵的字数。
1276 0
ai人工智能写歌词app,ai写歌词网站,ai作词软件创作版,作词人的辅助工具,押韵助手
|
人工智能 搜索推荐 大数据
新潮科技:人工智能歌词创作软件app,在线ai作词押韵写歌词,可以自己写歌词的软件
AI机器人小芝(aixiegeci)是一款帮音乐人快速创作歌词的软件app。它不仅实现了传统常有的写歌词押韵功能,还引入了大量AI人工智能算法来辅助创作,根据你自己输入的关键词句子作为引导语作为创作的指引方向,不断写出原创歌词句子给你做参考,降低了创作歌词的难度,提高了创作歌词的乐趣和效率。该软件有两个创新功能模块:AI智能写歌词和AI智能填词。这个歌词创作工具对于想要进一步改善歌词写作效果和写歌词没有灵感思路的音乐人来说是及时的帮助。
1679 0
新潮科技:人工智能歌词创作软件app,在线ai作词押韵写歌词,可以自己写歌词的软件
|
人工智能 SEO
基于人工智能的搜索引擎优化软件
本文研究全球及中国市场基于人工智能的搜索引擎优化软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势

热门文章

最新文章