Detection of Bugs and Code Smells through Static Analaysis of Source Code

Go is a new language especially known for its speed, simplicity, and concurrency approach.

The language has gained some promising momentum as a newcomer, several big projects like Docker is implemented in the language. As Go increases popularity among developers, the software industry is still hesitating to fully include the usage of the language in their projects.

One of the reasons is the lack of tool support around the language, i.e. the lack of tools for automated static analysis of Go source code. The industry strives for implementation and delivery of defect free software to their customers. In the struggle for delivering beautiful and defect free code are they completely dependent on static analysis of source code to reveal defects and suspicious code at an early stage in the development phase.

This thesis works out a set of basic definitions of bugs and code smells in Go, and implements the first version of the static analysis tool detecting violations of these definitions by scanning the source code. The tool is also shipped as a SonarQube plugin for continuously analyzing and measuring code quality.

Tags: Go language, code smells, static analysis, compiler, cyclometric complexity By Christian Bergum Bergersen
Published Sep. 22, 2016 2:13 PM - Last modified Apr. 13, 2018 10:32 AM