Jump to content

Automated code review: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Add source about automated code review at Google
Guettli (talk | contribs)
https://stackoverflow.com/questions/8503559/what-is-linting
Line 1: Line 1:
{{Refimprove|date=September 2010}}
{{Refimprove|date=September 2010}}


'''Automated [[code review]]''' software checks source code for compliance with a predefined set of rules or best practices. The use of analytical methods to inspect and review source code to detect bugs has been a standard development practice. This process can be accomplished both manually and in an automated fashion.<ref name="SA_ref">{{cite web|title=An overview of the Static Code Analysis approach in Software Development | first1=Ivo | last1=Gomes | first2=Pedro | last2=Morgado | first3=Tiago | last3=Gomes | first4=Rodrigo | last4=Moreira | publisher= Universidade do Porto | year=2009 | url=http://paginas.fe.up.pt/~ei05021/TQSO%20-%20An%20overview%20on%20the%20Static%20Code%20Analysis%20approach%20in%20Software%20Development.pdf | accessdate=2010-10-03}}</ref><ref>{{cite web|title= Tricorder: Building a Program Analysis Ecosystem | url=https://research.google/pubs/pub43322/}}</ref> With automation, software tools provide assistance with the code review and inspection process. The review program or tool typically displays a list of warnings (violations of programming standards). A review program can also provide an automated or a programmer-assisted way to correct the issues found. This is a component for mastering easily software. This is contributing to the [[Software intelligence|Software Intelligence]] practice.
'''Automated [[code review]]''' software checks source code for compliance with a predefined set of rules or best practices. The use of analytical methods to inspect and review source code to detect bugs has been a standard development practice. This process can be accomplished both manually and in an automated fashion.<ref name="SA_ref">{{cite web|title=An overview of the Static Code Analysis approach in Software Development | first1=Ivo | last1=Gomes | first2=Pedro | last2=Morgado | first3=Tiago | last3=Gomes | first4=Rodrigo | last4=Moreira | publisher= Universidade do Porto | year=2009 | url=http://paginas.fe.up.pt/~ei05021/TQSO%20-%20An%20overview%20on%20the%20Static%20Code%20Analysis%20approach%20in%20Software%20Development.pdf | accessdate=2010-10-03}}</ref><ref>{{cite web|title= Tricorder: Building a Program Analysis Ecosystem | url=https://research.google/pubs/pub43322/}}</ref> With automation, software tools provide assistance with the code review and inspection process. The review program or tool typically displays a list of warnings (violations of programming standards). A review program can also provide an automated or a programmer-assisted way to correct the issues found. This is a component for mastering easily software. This is contributing to the [[Software intelligence|Software Intelligence]] practice. This process is usually called "linting" since one of the first tools for static code analysis was called [[Lint_(software)|Lint]]


Some [[static code analysis]] tools can be used to assist with automated code review. They do not compare favorably to manual reviews, however they can be done faster and more efficiently.{{Citation needed|date=January 2018|reason=Need evidence that manual reviews are better than automated}} These tools also encapsulate deep knowledge of underlying rules and semantics required to perform this type analysis such that it does not require the human code reviewer to have the same level of expertise as an expert human auditor.<ref name="SA_ref"/> Many [[Integrated Development Environments]] also provide basic automated code review functionality. For example the [[Eclipse (software)|Eclipse]]<ref>{{cite web|title=Collaborative Code Review Tool Development |publisher=www.eclipse.org |url=http://marketplace.eclipse.org/content/collaborative-code-review-tool |accessdate=2010-10-13 |url-status=dead |archiveurl=https://web.archive.org/web/20100401051935/http://marketplace.eclipse.org/content/collaborative-code-review-tool |archivedate=2010-04-01 }}</ref> and [[Microsoft Visual Studio]]<ref>{{cite web|title=Code Review Plug-in for Visual Studio 2008, ReviewPal | publisher=www.codeproject.com | url=http://www.codeproject.com/KB/work/ReviewPal.aspx | accessdate=2010-10-13}}</ref> IDEs support a variety of plugins that facilitate code review.
Some [[static code analysis]] tools can be used to assist with automated code review. They do not compare favorably to manual reviews, however they can be done faster and more efficiently.{{Citation needed|date=January 2018|reason=Need evidence that manual reviews are better than automated}} These tools also encapsulate deep knowledge of underlying rules and semantics required to perform this type analysis such that it does not require the human code reviewer to have the same level of expertise as an expert human auditor.<ref name="SA_ref"/> Many [[Integrated Development Environments]] also provide basic automated code review functionality. For example the [[Eclipse (software)|Eclipse]]<ref>{{cite web|title=Collaborative Code Review Tool Development |publisher=www.eclipse.org |url=http://marketplace.eclipse.org/content/collaborative-code-review-tool |accessdate=2010-10-13 |url-status=dead |archiveurl=https://web.archive.org/web/20100401051935/http://marketplace.eclipse.org/content/collaborative-code-review-tool |archivedate=2010-04-01 }}</ref> and [[Microsoft Visual Studio]]<ref>{{cite web|title=Code Review Plug-in for Visual Studio 2008, ReviewPal | publisher=www.codeproject.com | url=http://www.codeproject.com/KB/work/ReviewPal.aspx | accessdate=2010-10-13}}</ref> IDEs support a variety of plugins that facilitate code review.

Revision as of 16:05, 22 January 2020

Automated code review software checks source code for compliance with a predefined set of rules or best practices. The use of analytical methods to inspect and review source code to detect bugs has been a standard development practice. This process can be accomplished both manually and in an automated fashion.[1][2] With automation, software tools provide assistance with the code review and inspection process. The review program or tool typically displays a list of warnings (violations of programming standards). A review program can also provide an automated or a programmer-assisted way to correct the issues found. This is a component for mastering easily software. This is contributing to the Software Intelligence practice. This process is usually called "linting" since one of the first tools for static code analysis was called Lint

Some static code analysis tools can be used to assist with automated code review. They do not compare favorably to manual reviews, however they can be done faster and more efficiently.[citation needed] These tools also encapsulate deep knowledge of underlying rules and semantics required to perform this type analysis such that it does not require the human code reviewer to have the same level of expertise as an expert human auditor.[1] Many Integrated Development Environments also provide basic automated code review functionality. For example the Eclipse[3] and Microsoft Visual Studio[4] IDEs support a variety of plugins that facilitate code review.

Next to static code analysis tools, there are also tools that analyze and visualize software structures and help humans to better understand these. Such systems are geared more to analysis because they typically do not contain a predefined set of rules to check software against. Some of these tools (e.g. Imagix 4D, Resharper, SonarJ, Sotoarc, Structure101, ACTool[5]) allow one to define target architectures and enforce that target architecture constraints are not violated by the actual software implementation.

Automated code review tools

See also

References

  1. ^ a b Gomes, Ivo; Morgado, Pedro; Gomes, Tiago; Moreira, Rodrigo (2009). "An overview of the Static Code Analysis approach in Software Development" (PDF). Universidade do Porto. Retrieved 2010-10-03.
  2. ^ "Tricorder: Building a Program Analysis Ecosystem".
  3. ^ "Collaborative Code Review Tool Development". www.eclipse.org. Archived from the original on 2010-04-01. Retrieved 2010-10-13.
  4. ^ "Code Review Plug-in for Visual Studio 2008, ReviewPal". www.codeproject.com. Retrieved 2010-10-13.
  5. ^ Architecture Consistency plugin for Eclipse