Software Quality Policy
JPO ODE Software Quality Standards: All new source code must earn the following scores on SonarQube.com (https://sonarqube.com/organizations/usdot-jpo-ode/projects ):
- 90% or higher unit test coverage
- Score of A for Bugs
- Score of A for Vulnerabilities
- Score of A for Code Smells
All third-party and/or legacy source code including source code from SE MI ODE or any other collaborations will be assessed for quality and test coverage. If the quality and test coverage does not fully comply with JPO ODE Software Quality Standards but the quality of the source code is assured in other ways, the source code will be excluded from static analysis. Currently, the following modules are included in static analysis:
- jpo-ode-core/src/main/java/us/dot/its/jpo/ode/dds/*
- jpo-ode-plugins
- jpo-ode-svcs
When any legacy source code is modified or refactored, the source code is no longer considered legacy and must comply with JPO ODE Software Quality Standards. This would mean that:
- The source code will immediately be included in static analysis
- Additional unit test coverage will be added if adequate test coverage does not already exist.
- Other quality metrics will be assessed and brought up to meet JPO ODE Software Quality Standards
Software Modules (as of 4/3/17)
- jpo-ode-common – Common utilities used throughout the entire system – much of this module was migrated from SE MI ODE project
- jpo-ode-core - ODE Core code – much of this module was migrated from SE MI ODE project
- jpo-ode-plugins - Plugin support for ODE, currently includes ASN.1 J2735 plugin only
- jpo-ode-svcs - ODE data services module
Software Quality Improvements SOP
- Check out branch "ode-217" from GitHub
- Fix issues reported by SonarQube static analysis report available from the above URL
- Commit the changes and push to GitHub ode-2-17 branch
- Check SonarQube (https://sonarqube.com/dashboard?id=usdot.jpo.ode%3Ajpo-ode%3Aode-217)
after the build is complete to confirm that all of the issues are fixed. - Create a Pull Request to merge ode-217 back into the develop branch.
GitHub Unit Tests
https://github.com/usdot-jpo-ode/jpo-ode/tree/develop/jpo-ode-svcs/src
There are two sub-directories: main and test in the develop branch for the ODE source code.
The unit tests code is in the test sub-directory and the unit test classes are run by maven during the build.
Collaborator's Testing Process
- Collaborator will monitor JIRA for Story Status.
- Developer will verify that the code is ready to test at agreed upon time.
- Developer's will supply testing documentation .
- A meeting will be held with the Collaborator to review testing procedures.
(target: 2 days before the Sprint Review/Demo) - Collaborator will report back result by the agreed upon time.
(target: night before the demo)