To ensure testability of C++ packages (also if there are no tests yet but shall be added in the future) the following metrics could be added to the static analysis list:
* Cyclic includes: Can limit (white box) testing of packages. Can be checked with [cppdep](
https://github.com/rakhimov/cppdep) (static analysis).
* McCabe complexity (often called differently): Can make (white box) testing of packages practically impossible. Some standards recommend not to raise the upper threshold value of 15. Can be checked e.g. with [lizard](
https://github.com/terryyin/lizard).
* Efferent coupling (on various levels of abstraction): Describes the degree of dependency of an entity under analyzation on other entities (e.g. on the class level: on which/how much other classes does the class under analyzation depend on). Further info [here](
https://www.cppdepend.com/metrics#EfferentCoupling). I don't know if there are free tools which are capable of reporting this metric.
* Afferent coupling (on various levels of abstraction): Describes the degree of dependency of other entities on the entity under analyzation (e.g. on the class level: which/how much other classes depend on the class under analyzation). Further info [here](
https://www.cppdepend.com/metrics#AfferentCoupling). I don't know if there are free tools which are capable of reporting this metric.
---
[Visit Topic](
https://discourse.ros.org/t/what-quality-metrics-do-we-need-to-make-packages-quality-visible/3985/3) or reply to this email to respond.
If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates.
______________________________________________________________________________
ros-users mailing list
ros-users@lists.ros.org
http://lists.ros.org/mailman/listinfo/ros-users
Unsubscribe: <
http://lists.ros.org/mailman//options/ros-users>