Peer code review is an important part of software development process. It both helps to find defects early and encourages spreading knowledge across a development team.
When adopting code review practices you may want to find a tool that will help developers to organize the code review process: change sets exploration, communicating between developers and reviewers about defects and ways to fix them.
Recently I have done some research on existing code review tools that can integrate with Visual Studio 2010 ALM (Visual Studio 2010 + Team Foundation Server 2010).
Here are my requirements for a code review tool:
- Integration with TFS Source Control. A tool should support links between code review tasks and TFS changesets/shelvesets.
- Integration with TFS Work Item Tracker. Code review tasks should be TFS Work Items.
- Integration with Visual Studio: I want to do the entire code review process within Visual Studio IDE instead of external Windows/Web applications.
- A tool should support building of the formal code review workflow: to define code review work item states and transitions.
- A tool should help to find changes in source code, to allow the reviewer to write comments for arbitrary blocks of code.
- A tool should be supported by vendor and/or have a strong community.
- A tool should have moderate price.
I’ve searched for tools that meet these requirements and the result was discouraging. There are no tools that are appropriate for me. They either have no important functionality or cannot be integrated with Visual Studio ALM.
Here are these tools:
TeamReview
http://teamreview.codeplex.com/
License: GNU GPL
Integration with TFS: Yes
Integration with VS: Yes
Review request is being created as a Task work item that is related to a changeset or a shelveset. The task is assigned to a reviewer, the reviewer creates a Code Review Response work item for each code defect.
No code change highlight tools. Developers can write comments for particular code chunks.
Is supported: No (the most recent release – February 2010)
SmartBear CodeCollaborator
http://smartbear.com/products/software-development/code-review
License: Proprietary
Price: $489 за named developer, либо $1299 за concurrent developer
Integration with TFS: Partly
Integration with VS: Yes
Integrates with TFS Source control, but does not make relations to TFS work items. Do not integrate defects data and code review states with TFS work items.
Highlights changed code lines. Allows creating comments for particular code blocks.
Is supported: Yes
Code Review Tool
License: Proprietary
1-5 concurrent users – $199 per user
6-10 concurrent users – $299 per user
11-25 concurrent users – $269 per user
26-50 concurrent users – $239 per user
Integration with TFS: Not full
Integration with VS: No
Integrates only with TFS source control, uses own data structures and logic to store information about defects, does not integrate with TFS work items.
Highlights changed code lines. Allows creating comments for particular code blocks.
Is supported: Yes
TFS Code Review Workflow
http://tfscodereviewflow.codeplex.com/
License: MS-PL
Integration with TFS: Yes
Integration with VS: Yes
A developer shelves changes, creates Code Review work item, that isrelated to the shelveset. A reviewer reviews the shelveset. If there are any defects, the reviewer informs the developer (e.g. via e-mail). If there are no active defects, the Code Review work item state is changed to “Approved”, and the developer can check in the changeset.
Is supported: No (the most recent release – July 2006)
Attrice Team Foundation Sidekicks
http://www.attrice.info/cm/tfs/index.htm
Free
Integration with TFS: Yes
Integration with VS: Yes
This tool does not provide code review process model. It only helps to find changed code blocks in a changeset.
Is supported: N/A
The most appropriate for my requirements is Team Review. It is not an ideal code review tool, but other tools are worse (maybe except of TFS 2012 code review feature).
UPDATE (5/28/2013): Now I work with Crucible to do code reviews. It does not integrate with VS (but does integrate with source control systems, for example it works well with git that I use now). But it is a way more usable than every tools mentioned above. So, if you search for CR system, you should take a look at Crucible.