Input validation as a metric for quality

To detect seg faults one usually runs the production code with a dynamic analysis tool (like e.g. valgrind/memcheck, clang AddressSanitizer consider googles advanced documentation for the AddressSanitizer or clang LeakSanitizer (googles advanced documentation for the LeakSanitizer).

To check against seg faults on the ROS level you would have to check if there is any response from the node (the test runner should not crash) after throwing some input at it. To generate as much as possible different input (for fuzzy testing) you would need some ROS level property based testing framework.

pyros-dev uses property based testing here (hypothesis_example.py) and here (test_basic_fields.py) to generate input data for tests. The same approach could be used to generate input data for ROS nodes. However the ROS1 test frameworks would need (significant) modification/extension to get the data into test cases. (In case I am wrong please correct me!)