I have no disagreement with the above statement, but I want to comment on:To me the most important question about this (as a QA professional, not as a SW professional, which I'm not) is how can you guarantee the effectiveness and completeness of SW testing? IMO, you can't, because regardless of field and type of objects being tested, testing can only be indicative, never a proof.
This is why you can never achieve AFAP through tetsing - one could always argue that you could have tested more, achieved a higher level of certainty and thus lowered the risk a bit more. I'm not arguing that this is effective, or that you should (I think that the AFAF concept, which ignores context, is ridiculous in any technical field), just trying to highlight that relying only, or mostly, on testing, for mitigating high risks, is problematic.
I'm unconvinced that there is a more objective form of demonstrating effectiveness of engineering solutions than testing. Diverse test methods have different levels of effectiveness, but even the least powerful test method can be repeated, unlike relying on 'professional judgement'.
Specific to software testing, there are a variety of test methodologies which are recognized as being more likely to expose defects than a simple 'test to the requirements'. For example: a low-hanging fruit for external reviewers to question when it comes to testing software is "boundary testing". A mature ME software development program will apply a variety of applicable test methods when challenging a software solution. I will concede that the individual effectiveness (or if you prefer, "power") of test methods for software is generally impossible to calculate. Having written that, I should note that I have only very rarely seen the mathematical power of test methods (and the results of such test methods) be formally used to rationalize a specific risk reduction in controls outside of software.
Last edited: