Software Quality

Last modified by Benjamin Fischer on 2025/09/23 15:46

There are several tools that can assist developers to increase the quality of the software produced, some of which are outlined here for introduction purposes.

Python

Linters

  • Pylint is the classic tool and has been around for a long time. It’s very thorough, can be configured and customised in many ways if needed and is straightforward to use. It has a reputation for being quite verbose in its outputs.
  • Ruff is much newer and is gaining in popularity because it runs very quickly and is a bit simpler. It is probably a bit less thorough and configurable than Pylint, but it’s a popular and proven tool.
  • Radon is more specialist but is a very good metrics tool specifically for Python. Many projects add use of Radon alongside Pylint or Ruff.
  • There are a number of others too including Flake8 and Black that are quite widely used. But starting with Pylint or Ruff is probably the right thing to do.

Commercial IDEs

Commercially there are also Python specific IDEs (development environments) like Pycharm that integrate these tools via plugins and also provide their own sophisticated code quality checks and automated remediation in many cases. People with academic email addresses can generally get Pycharm for free subject to certain conditions on how it is used.

C++

Linters

  • Clang-tidy: part of the “clang” compiler suite, which checks for code quality and C++ conventions in the code
  • Clang-format which formats C++ into the standard format (and can be tailored for site specific preferences).
  • Cppcheck, which is independent of Clang and very good at finding C++ specific bugs (memory problems, null pointers, …). (Commercial version available too).
  • OCLint, which is again independent and is very good at checking for design level code quality (long functions, complexity, maintainability problems, ….).

Commercial

  • PVS-Studio, a long standing commercial static analyser. 
  • CppCheck’s commercial version
  • SonarQube C++, a very comprehensive, and potentially expensive, C++ analysis suite. 

Commercial IDEs

Again, you have commercial IDEs including CLion, which is part of the JetBrains Student Pack linked above, and Microsoft Visual Studio, that they might well use already.

Credits

The majority of this list was made possible thanks to the extensive input of Eoin Woods.