代码审查

✍ dations ◷ 2025-01-07 07:04:37 #代码审查

代码审查是指对计算机源代码系统化地审查,常用软件同行评审(英语:Software peer review)的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。

借由代码审查可以找到及移除像是格式化字符串攻击(英语:Format string attacks)、竞争危害、内存泄漏及缓存溢出等计算机安全隐患,因此提升代码的安全性。基于Subversion(可能是Trac或是Redmine)、Mercurial、Git或其他软件的在线软件库可以允许协同审查代码,而且有些协同代码审查工具可以简化代码审查的过程。

自动化代码审查软件(英语:code reviewing software)可以系统化的检查源代码中是否有已知的计算机安全隐患,可以减少大量代码审查的工作。

卡珀斯·琼斯(Capers Jones)分析了超过12,000个软件开发项目,其中使用正式代码审查的项目,潜在缺陷发现率约在60-65%之间,若是非正式的代码审查,潜在缺陷发现率不到50%。大部分的测试,潜在缺陷发现率会在30%左右。。

一般的代码审查速度约是一小时150行代码,对于一些关键的软件(例如安全关键系统的嵌入式软件),一小时审查数百行代码的审查速度太快,可能无法找到程序中的问题。代码审查一般可以找到及移除约65%的错误,最高可以到85%。

也有研究针对代码审查找到的缺陷类型进行分析。代码审查找到的缺陷中,有75%是和计算机安全隐患有关。对于产品生命周期很长的软件公司而言,代码审查是很有效的工具 。

代码审查一般会分为三类:正式的代码审查、结对编程、以及轻量型的非正式代码审查。

正式的代码审查(例如范根检查法)有审慎及仔细的流程,由多位参与者分阶段进行。正式的代码审查是传统审查代码的方式,由软件开发者参加一连串的会议,一行一行的审查代码,一般会使用打印好的源代码。正式的代码审查可以彻底的找到程序中的缺陷,但需要投入许多的资源。

结对编程是两个程序员在一个计算机上共同工作,一个输入程序,另一个工程师审查他或她所输入的程序,结对编程是在极限编程中常见的开发方式。

轻量型的非正式代码审查需要投入的资源比正式的代码审查要少,一般会是在正常软件开发流程中同时进行,有时也会将结对编程视为轻量型代码审查的一种。

书籍中曾提到有关代码审查的案例研究,这个研究发现轻量型代码审查所找到的缺陷会比正式的代码审查要少,但其速度较快,其成本也较低。

以往正式的代码审查在审查的准备及进行时都需要投入许多的资源。

代码分析工具的使用可以协助代码审查。尤其是一些集成在集成开发环境(IDE)下的工具,可以直接提供程序开发者有关编程标准兼容的反馈。

相关

  • abbr class=abbr title=S60: 该物质及容器必须按危险废物放置S60/abbr安全建议标准词(英语:Safety phrases,简写:S-phrases)是于《欧盟指导标准67/548/EEC 附录Ⅳ: 有关危险物品与其储备的安全建议》里定义。该列表被集中并再出版于指导标准2001/59/
  • 露水露水(英语:dew)是稀薄的小水滴,出现于早晨或夜晚中。由于早晨气温较低,当物体的表面温度低于露点时,气化的水分会液化成液态,凝聚在物体(例如树叶或草,以至栏杆、汽车、屋顶或桥梁)
  • 月光花 (Linn.) House 月光花(学名:),又名嫦娥奔月(云南)、天茄儿、天茄子、夜颜(日本)、夕颜(日本),是旋花科番薯属植物,原产于新大陆热带及温带地区,包括南美洲全境、中美洲、墨西哥和美国
  • 拉玛那修道院拉玛那修道院又名拉马那、拉玛纳、拉马纳修道院或道场(原题 Sri Ramana Ashram(英语:Ashram) 或 Sri Ramanasramam),为印度近代圣哲拉玛那·马哈希自1922年至1950年入涅槃前的居所
  • 活着唱着《活着唱着》是2019年加拿大华裔导演马楠执导的剧情长片。在2019年上海国际电影节的亚洲新人奖中,获得最佳影片和最佳女演员。该片入围第72届戛纳影展的“导演双周”竞赛单元
  • 帕普·戈麦斯 亚历杭德罗·达里奥·戈麦斯(西班牙语:Alejandro Darío ‘Papu’ Gómez),也称帕普·戈麦斯(西班牙语:Papu Gómez),1988年2月15日出生于阿根廷联邦首都区,阿根廷职业足球运动
  • 上汽大众上汽大众汽车有限公司(简称上汽大众或上汽大众汽车,旧称上海大众),是中德合资的汽车生产企业,也是中国改革开放以后第一家轿车合资企业。1985年3月德国大众汽车公司和上海汽车工
  • Tajemnica StatuetkiTajemnica Statuetki是由Metropolis软件公司为DOS计算机开发和发布的1993年冒险游戏。这是波兰第一个冒险游戏。他的情节围绕着虚构的国际刑警组织代理人约翰·波拉克(John Pollack),他试图解决与世界各地的各种古董盗窃有关的谜团。虽然波兰的盗版率很高,但是在出版时却成功地出售了四千到六千册,并在国内非常流行。尽管对游戏机制和视听设计的小规模批评,“Tajemnica Statuetki”因其情节和文化里程碑而得到赞扬,这有助于促进波兰电子游戏行业的合法化。
  • 龙飞凤龙飞凤(1977年11月-),湖南江华人。女,瑶族。加入中国共产党。零陵工业学校计算机及应用专业毕业。2013年,当选第十二届全国人民代表大会湖南地区代表。2016年时,任永州市江华瑶族自治县县长。
  • 颜(汉语拼音:yán)可以指: