Code Review can often find and remove vulnarablilities such as format string exploits, race conditions, memory leaks and buffer over flows, there by improving software security.
types of Code Reviews:
- Code review practices often fall into two main categories: formal code review and lightweight code review.
- Code review practices often fall into two main categories: formal code review and lightweight code review like Fagon Inspection involves a careful and detailed process with multiple participants and multiple phases. Formal code reviews are the older, traditional method of review, in which developers attend a series of meetings and review code line by line, usually using printed copies of the material. Formal inspections are extremely thorough and have been proven effective at finding defects in the code under review. However, some criticize formal reviews as taking too long to be practical.
- Lightweight code review typically requires less overhead than formal code inspections, though it can be equally effective when done properly, Lightweight reviews are often conducted as part of the normal development process:
- Over-the-shoulder: One developer looks over the author's shoulder as the latter walks through the code.
- Email pass-around: Source code management system emails code to reviewers automatically after checkin is made.
- Pair Programming: here Two authors develop code together at the same workstation, such as is common in Extreme Programming.
- Tool-assisted code review: Authors and reviewers use specialized tools designed for peer code review. Programmers often find tool-assisted code review to be less tedious and more efficient than some other methods
Criticism:
Some argue that code review is less important when certain rules or secure coding methodologies are followed from the software's inception, the Extreme programming approach includes the practice of pair programming, which can be argued to be code review during development. Extreme Programming proponents argue that other Extreme Programming practices, such as refactoring and creating tests before even writing the code, produces code that doesn't need to be reviewed or rewritten as often and thus speeds software development.
Related Topics:


No comments:
Post a Comment