Kritika detects various bad smells, best practices violations, possible errors and much more using a blend of well-known static code analysis tools and custom proprietory techniques.
Every violations is attached to the offending line with a short explanation for the ease of analysis.
Kritika is a great fit for a huge codebase. Thanks to the incremental analysis it takes literally just seconds to get a full report.
This is especially useful when lots of developers work on their own branches with small changes.
Duplications are hard to detect right without false-positives. To make it more reliable Kritika compares not code, but abstract syntax trees. This way duplications with renamed variables or functions are still going to be detected.
Full diff-mode between code snapshots allows to see new violations and changes that introduce them. This make code review much easier.
All rule profiles have many different rules with their own configuration options. Due to smart incremental analysis switching specific rules on or off will not force all the rules to be rescaned.
Quality Gates allow enforcing a trend that new code modifications should follow. Right now only one type of quality gates is available: always better, which means that the new code should be better or not worse than the previous. More quality gates are comming soon!
There is no quality without testing. Coverage allows to visualize the current testing coverage of the codebase.
It's easy to configure your existing CI testing to submit coverage reports after each build. For Perl take a look at Devel::Cover::Report::Kritika.
In the real world test coverage can take a lot of time to finish, usually hours. That is why coverage uploads are totally separated from the basic analysis and can be uploaded and added to the snapshot report later.
Our industry is full of different tools for different tasks. Kritika plays nice with others.
Repository providers, CI/CD servers, Email notifications etc are all here.