Engineers and software developers sometimes fall into an either/or mindset, as we all do from time to time, in which there are only two possible outcomes: your solution or the other person’s – and the other person’s is the wrong one.
But in the diverse domain of software code analysis and test, the answer to the question of the right approach to ensuring code quality may be a multiple choice one, not just a choice between static analysis and dynamic testing.
My Editor’s Top Picks for this week’s Tech Focus newsletter illuminate this issue:
Static analysis vs. dynamic testing, by GrammaTech’s Paul Anderson
Think static analysis cures all ills? Think again, by LDRA’s Mark Pitchford.
My view is that their apparent disagreement is not the no-win either/or dichotomy, but is more about differences in point of view and emphasis. But in addition to a number of different ways to do static code analysis and software testing, there are also at least a half a dozen alternative methods to ensure the quality of your code, including: the use of assertions, semantic analysis, mutation-based code coverage, pattern-based code and flow analysis, software DNA mapping, and Boolean satisfiability.
If after you have evaluated these various methods you still can’t determine the best approach for your particular application, be sure to register and attend the 2011 Spring ESC, May 2-5. Several class tracks offer possible answers: Best Practices, Debugging and optimizing, Design and test, Multicore debug, Languages and techniques and Software processes and tools.