This presentation reviews recent developments in code analysis as well as the history of static analysis in commercial software and its evolution in the academic world. It provides an overview of the current commercial landscape, and conclude with best practices for organizations looking to bring static analysis into their software development environment and software testing practices.
Software code analysis
PHP is not the best language to catch errors in code, like mistyped names of variables. This is what static code analysis tools (named linters or lints) can do: find bugs in code before it ever get executed. Linters don’t replace unit tests, but generally they are faster and cheaper to set up. I’ll talk about my XRef lint project (http://xref-lint.net/) as well as other helpful open source alternatives: phplint (http://www.icosaedro.it/phplint/), arcanist (http://phabricator.org/) and scrutinizer (https://scrutinizer-ci.com/).
This presentation discusses problems and solutions that were made in solving problems such as size (about 100 people in total, more than 5 years long), multi-location (Vilnius, China, US), remote PO (teams in Eastern Europe, PO in US), ~550 000 LOC’s, multiple customers. It will present techniques used to maintain the project quality in shape: Continuous Integration, Code Review, Static Code Quality.
Codan is a code analysis framework that performs code checks on C/C++ projects. It is part of the Eclipse CDT (C/C++ Development Tooling) suite since 2011. Codan was updated with the Eclipse Juno release in June 2012 to enable developers to automatically execute external code analysis tools within Eclipse. In this article, Alex Ruiz explains why the update is good news for users of Eclipse CDT, then shows you how to use Java code and a little bit of XML to quickly integrate your favorite code checker into your Eclipse C/C++ development environment, using Cppcheck as an example. The article provides a detailed step by step process to achieve this goal that requires just about 100 lines of simple Java code and 30 lines of XML.
Evan Farrer to test the frequently cited claim by proponents of dynamically typed programming languages that static typing was not needed for detecting bugs in programs. In his blog post, he explains why unit testing isn’t enough and you need static typing too.
In this blog post, Alberto Savoia discusses the CRAP (Change Risk Anti-Patterns) code metric. The CRAP metric combines cyclomatic complexity and code coverage by automated tests to help identify code that might be particularly difficult to understand, test or maintain.