Choose at least three available tools for software review and analysis, and summarize their features and drawbacks.


The following are three popular software review and analysis tool-

  • Gerrit

Link: https://www.gerritcodereview.com/

Languages supported: Java EE

Licensing: Free

Advantages7

  • Acts as a repository
  • Auto-review mode – all code pushed to the repository gets reviewd – so not possible to “commit” code changes without review
  • Does not require additional command line tools to “push” the code.
  • Integrated with LDAP with minimal configuration.
  • Granular permissions possible – Allows granting and denying permissions at the repository level and at the low-end branch level. This is makes it easy to create different teams and allows only specified access based on their role and function.
  • Automatic merge features to merge changes and integration
  • Open source software, with active community support, and under active development.
  • Has command line access capability – this helpful is automating and batch-processing reviews and in scripting.
  • Supported by Eclipse, easily integrates into it–  Eclipse is the most popular interface for code development

Disadvantages

  • It works only with GitHub.
  • Cannot handle auditing or post commit review
  • Each new Gerrit account must be explicitly requested. This slows down the on-boarding time of new employees and team members.
  • It has no official APIs. The existing API tools are released by independent developers by reverse-engineering Gerrit’s internal APIs.
  • The ability to add a repository requires escalated administrator privileges
  • Heavy in modules and slow in execution
  • Steep learning curve to get navigate around it and productively use it
  • Phabricator

Link: https://www.phacility.com/

Languages supported: PHP

Licensing: Free and commercial flavors available

Advantages7

  • Integrates with GitHub, Syn and Hg.
  • Allows auditing and post commit review Integrates loads of tools.
  • Phabricator features include code-review, bug-tracking, source-browsing, and creating a wiki.
  • It is FOSS and PHP-based – and is light
  • Active and responsive development team
  • It has a comprehensive official API library
  • Supports command line instructions
  • Has well laid out logging features
  • Efficient “search” functionality – within a single module and across disparate ones

Disadvantages

  • Doesn’t manage repositories – it is necessary to interface with an external repository management tool.
  • Permissions configurations are not fine-grained and don’t offer much control
  • Codacy8

Link: https://www.codacy.com/

Languages supported: Python, Ruby, PHP, Java, JavaScript, Scala, Swift

Licensing: Free and commercial versions available

            Advantages-

  • Supports multiple languages
  • Works on multiple Operating systems: Windows, Linux, and Mac
  • Integrates with GitHub, Bitbucket, JIRA, YouTrack, Heroku, HipChat and Slack
  • Easy setup
  • Easily customizable
  • Faster employee onboarding
  • Small learning curve
  • Detects duplicated code
  • Detects unused functions and modules

Disadvantages-

  • Slow
  • The free version has limited features
  • No auto-sync feature – has to manually be synced with GitHub

UI is clunky – not very clean