代码审查

✍ dations ◷ 2025-07-11 07:12:58 #代码审查

代码审查是指对计算机源代码系统化地审查,常用软件同行评审(英语: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)下的工具,可以直接提供程序开发者有关编程标准兼容的反馈。

相关

  • 于尔根·埃勒斯于尔根·埃勒斯(德语:Jürgen Ehlers,德语:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","
  • Oh my wish! / 振作My Heart / 毫不犹豫去跳下的勇气《Oh my wish! / 振作My Heart / 毫不犹豫去跳下的勇气》(Oh my wish! / スカッとMy Heart / 今すぐ飛び込む勇気)是日本的女子偶像组合早安少女组。'15的第59张单曲。2015年8
  • 本因坊策元本因坊策元(1675年-1699年),生于日本江户,本姓佐山,法名日云,日本江户时代围棋棋士,棋力上手(七段),本因坊家迹目。师事棋圣道策,与桑原道节、本因坊道的、星合八硕、熊谷本硕合称坊门五
  • 斯坦利·切拉斯坦利·I·切拉(英语:Stanley I. Chera, 1942年10月22日-2020年4月11日),男,美国企业家。1942年出生于纽约布鲁克林区的一个叙利亚裔犹太家族,1980年代开始涉足纽约市房地产业,2000
  • 海洋国家公园海洋国家公园是一种主要保留海洋与周边陆地、岛屿而划定的自然保护区域,通常由政府所拥有,目的是保护当地海域与相关物种(海洋生物为主)不受人类发展和污染的伤害。
  • 陈继勇陈继勇(1953年3月15日-2020年10月25日),湖北应城人,中国经济学家,武汉大学二级教授,博士生导师。曾任湖北省社会科学院院长,武汉大学经济与管理学院院长等职。主要研究领域为世界经
  • 2019年8月17日喀布尔爆炸袭击2019年8月17日,在阿富汗喀布尔的一场婚礼上发生了自杀式炸弹攻击。该次攻击造成至少63人死亡,182人受伤。伊斯兰国随后承认犯案,并称此次攻击的目标是伊斯兰教什叶派。袭击发生时,有1000多人聚集在一起参加婚礼。这起爆炸案发生于阿富汗独立(英语:Afghan Independence Day)一百周年的前一天,这也导致政府推迟在达鲁尔·阿曼宫计划举行的庆祝活动。此次自杀式炸弹攻击发生于当地时间晚上10点40分左右,地点在西喀布尔一处什叶派哈扎拉人聚居的婚宴会场。自杀式炸弹袭击者在婚礼大厅的男人区、靠近
  • 岩鞍岩鞍(英语:phacolith)是一种侵入火成岩的岩体,大致平行于层理面。 是一个透镜状岩体形成于背斜的顶部或向斜的槽谷。 偶尔它能从背斜的顶部延伸到相邻的向斜的槽中,因此其横截面呈 S 形。 在褶皱的地形中,褶皱的背斜顶和向斜槽是减压区,因此利于岩浆侵入.在新泽西州苏塞克斯县的富兰克林和汉堡地区。爱尔兰的奥美冥王星.印度拉贾斯坦邦阿杰梅尔区巴亚兰附近.英格兰什罗普郡的康登山.
  • 段纯妃 (明熹宗)段纯妃(1607年5月10日-1629年7月3日),南京鹰扬卫人,明熹宗妃嫔。万历三十五年四月十五日巳时出生,父亲段黄彝,因女贵升任四品指挥同知,生母为肖氏。天启元年时(1621年) ,段氏以选美前三名的身份入宫,封为纯妃。段氏甚有美色,泰昌帝的宫御曹氏在回忆宫词中题咏:“宝妆云髻亸金衣,娇小丰姿傍玉扉;新入未谙宫禁事,低头先拜段纯妃。”明熹宗登极时,段纯妃与魏忠贤客氏等人也并无冲突。崇祯二年五月十三日午时,年仅二十二岁的段氏去世,谥号恭惠。崇祯四年闰十一月二十二日葬在金山。李成妃、张裕妃也葬于此地。《北
  • 李启良李启良,历史学家,书法家。陕西安康历史博物馆馆长,研究员,中国博物馆学会会员,陕西省博物馆学会理事,陕西省考古学会理事,陕西慈善书画研究会会员,陕西开明书画院院士、副院长。2000年至2010年担任安康市政协副主席,现任安康市政协副厅咨询员。《石螺斋谈丛》