<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 9, 2014 at 12:10 PM, Bear <span dir="ltr"><<a href="mailto:bear@sonic.net" target="_blank">bear@sonic.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Sat, 2014-03-08 at 20:46 -0500, John Kelsey wrote:<br>
> Isn't this just combinatorial testing?<br></div></blockquote><div>....</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
<br>
</div>It is exactly combinatorial testing.  I've never seen any<br>
really good frameworks to do it though.<br><br></blockquote><div><br></div><div>A problem with combinatorial testing is the permutations get </div><div>too numerous very quickly.  Testing cycles move from hours</div><div>
to weeks.</div><div><br></div><div>I would assert() that:</div><div>asserts() have value but if combinatorial testing is the </div><div>best test strategy change assert to liveassert() or some such</div><div>macro that does not collapse to nothing when running </div>
<div>code.   Same for bounds testing.... </div><div><br></div><div>At some future time liveassert() can be edited to be a</div><div>normal assert() should performance analysis discover </div><div>the hit matters and the test is unneeded in production.</div>
<div><br></div><div>This moves some combinational testing into the </div><div>world of real user data and short circuits  N! type</div><div>combinational testing to a subset that matters.</div><div><br></div><div>Also when an urgent fix is pushed to plug a zero day</div>
<div>or some such error ship with asserts(true) and follow</div><div>up them disabled a bit later.</div><div><br></div><div>A risk is that a bogus assert exist in the code base</div><div><br></div><div>Testing is hard... one quote I think attributed to Don Knuth</div>
<div>is that TeX took 1/10th the time while individual functional</div><div>tests took 9/10.    i.e. His one year project was "finished" in</div><div>ten.     </div><div><br></div><div>For those shipping product time to market is important so</div>
<div>ship early if you must but leave asserts live until such time</div><div>that they are discovered to be unnecessary.</div><div> <br></div></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">  T o m    M i t c h e l l</div>

</div></div>