List of Software Quality Enhancement Tools and Links

Introduction

Quite a few people, including me, have been lamenting the poor quality of a lot of modern software applications. In order to do something constructive to combat this, I decided to collect links to tools and other resources that can help to enhance the quality of software.

Linters

linters are programs that statically analyse static source code for defects. Autoformatters format code to conform to a certain indentation style.

Code autoformatters

  • Prettier - formats JavaScript, TypeScript, JSON, CSS, SCSS, HTML, YAML, Markdown and other languages.

  • clang-format - for C, C++, Objective C, JavaScript, Java, and C#.

  • Perltidy - for Perl.

  • tidyall - an all-in-one autoformatter and validator - with many backends.

  • check-all-the-things - a tool to run many individual checking tools. By the Debian project and other contributors.

Profilers

Profilers are programs that report which parts of the code consume a lot of time, memory or other resources, to allow for a more effective optimisation.

Memory Debuggers

Fuzzers

Checkers for invalid text

  • Test::TrailingSpace - ascertain there are no text files with trailing whitespace, and optionally no hard tabs, and no DOS-style newlines. (By me).

  • Test::NoTabs - detect hard tabs ('\t'); mostly only for perl code.

  • Test::EOL - test for DOS-style newlines, and trailing whitespace; mostly only for perl code.

  • File-Find-CaseCollide - find collisions in filenames, differing only in case (for avoiding problems on case-insensitive filesystems such as FAT).

Proof Assistants / Interactive Theorem Provers

Allows one to prove the correctness of code, thus reducing the list of defects.

Automated Refactoring

See Also

Licence

This document is Copyright by Shlomi Fish, 2020, and is made available under the terms of the Creative Commons Attribution Noncommercial ShareAlike License (CC-by-nc-sa) 3.0 Unported (or at your option any later version).

For securing additional rights, please contact Shlomi Fish and see the explicit requirements that are being spelt from abiding by that licence.