Alex Todorov

Static analysis tools aka linters are usually the domain of software developers. However, these are very powerful tools which can be extended and used to help improve the product from the point of view of testers.

Static analysis is all about finding code patterns. These can be patterns that would lead to problems. For example:
– missing permissions
– mismatched permissions
– strings not marked for translation

– not following conventions and team/product policies
– missing or misplaced files which could break the release/packaging process
– using code patterns which don’t play well in terms of constraints posed by the various software libraries that we use
– anything else that our team decides is an issue for the current product under test
Several facts make static analysis tools ideal for testing:

– they are very fast (parsing huge amounts of source code takes seconds)
– they are usually the first tool to be executed which means very early in the software development lifecycle
– they can be extended with arbitrary rules
– developers mostly tend to comply with these tools

– dev tools can be used by testers
– fast and cheap for some kind of testing tasks
– can be extended with arbitrary checks