I have been talking about integrity management, but the word integrity actually comes from the technical condition of being whole. That is why in star trak we hear that the Enterprise’s hull integrity is failing. The ship is not complete. When a car leaves the manufacturing company, it gets stamped 100% integrity, meaning that it is complete.
So what is your code integrity?
Your code is whole if it does what it supposed to do. It doesn’t mean that the client finds it useful or that it is easy to use, but it does mean that if the developer meant for the code to do something, that it actually does it.
Probably the best way to insure code integrity is to have a set of tests that the developer can run to make sure that his code has integrity.
So how would we measure code integrity?
I think that the number of test, test density and code coverage are not sufficient. They don’t really tell us of the effectiveness of the tests, so we don’t know the level of our code integrity. I am debating this, I am not so sure.
How would you measure your code integrity?
seems like there are 2 approaches:
1) theory: proofs, modeling.
2) practice: testing, manual or automated.
Integrity has another meaning which is to be unimpaired or even perfect in condition. I think of it more as the software should do what it is intended to do (you’re right – whether it benefits the customer or not). This means no bugs and no incomplete functionality (which could be characterized as a bug I guess). Regression tests, source code analysis, dynamic analysis, manual testing, code review, fuzzing, are just some of the many strategies for creating software with integrity.
What you are suggesting are ways to reach a higher code integrity. But I am looking for a *measurement* of code integrity. Something that will help us see what actions have more impact on our code integrity