All About Codegrip Grading System
All About Codegrip Grading System
Our grades imply a status-quo of your project’s current status. We calculate the grades based on the issue density (severity of every issue) in correlation with globally accepted coding conventions.
The issues are categorized based on their-severity as blockers, critical, major, minor, and info. All severity is determined based on the impact every issue has on the overall functioning of the project.
- Blockers will ultimately hinder the overall functioning of the project.
- Critical may not stop the project from functioning but will cause random failures while functioning.
- Major issues cause projects to fail in high-demand situations.
- Minor issues may never cause any significant functional failure to the project but may still have implications on boundary level performance.
- Info is not necessarily an issue but is a coding style that may otherwise build up to errors.
Reliability Rating is impacted by the presence of potential bugs or codes that do not have the expected behavior at runtime. All bugs that have to do with operational risks or unexpected runtime behavior are grouped under reliability rating. These bugs are critical programming errors that could cause business disruption.
These issues are detected by in-depth analysis and symbolic execution of the code to understand the state of variables at any given point in the program. Here are the different rating grades and their parameters-
|Grade||Type of Bugs|
|B||1 or more Minor Bug|
|C||1 or more Major Bug|
|D||1 or more Critical Bug|
|E||1 or more Blocker Bug|
The security rating is impacted by vulnerabilities or flaws in the program that can lead to the application differently than it was designed.
Security vulnerabilities such as SQL injection or cross-site scripting can result from coding oversight and bad practices. We cover the security issues as prescribed by CWE and CERT. Here is what the different ratings mean-
|Grade||Type of Vulnerability|
|B||1 or more Minor Vulnerability|
|C||1 or more Major Vulnerability|
|D||1 or more Critical Vulnerability|
|E||1 or more Blocker Vulnerability|
Maintainability refers to technical debt in the code caused due to code smells.
Softwares changes over time, which means that the code written today will be updated tomorrow. The ability, cost, and time to make such changes in a code base correlate directly to its level of maintainability. In other words, low maintainability means low velocity for development teams.
Maintainability includes many concepts such as modularity, understandability, changeability, testability, and reusability. It usually does not have critical issues but is instead the culmination of thousands of minor issues. We call these issues “Code Smells.”
The Maintainability rating scale can determine by looking at outstanding technical debt vs the time that is already spent on clearing the pre-existing issues.
|Grade||(%) Time needed to improve the rating|
in comparison with them needed for making
|A||less than 5%|
|B||between 6 to 10%|
|C||between 11 to 20%|
|D||between 21 to 50%|
|E||anything over 50%|
The effort needed to fix all reliability, security, and Maintainability issues are the technical debt a project has. Technical Debt is measured as a unit of time.
Line wise analysis of the block of code in your projects is done to find the duplicate blocks throughout the project, and the location of duplicates are displayed.
Duplicated lines (%) is calculated by dividing duplicated lines by total lines and multiplying it by 100.
On each line of code containing some boolean expressions, the condition coverage answers the following question: “Has each boolean expression been evaluated both to true and false?”’. Code Coverage signifies the density of possible conditions inflow control structures that have been followed during unit execution.
These are the different aspects that help validate the quality of code using CodeGrip. Code Quality should not be assessed on just one or two factors but considering the different elements mentioned above. CodeGrip also allows the admin user to customize the reporting and define blockers and categorization of issues. This way, you can create the standards that work for you.