<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 01/07/2020 18:12, Martyn Thomas
      wrote:</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><snip></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <blockquote type="cite"
      cite="mid:b0bc32f7-12fd-a746-4fa3-4eaccda37063@thomas-associates.co.uk">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      ...  and, in practice, a SPARK development wouldn't find anything
      much at all in any cost-effective amount of unit testing, so it's
      a sensible engineering decision to omit it.</blockquote>
    <p><br>
    </p>
    <p>I'm not so sure. Presumably the CbyC approach would effectively
      replace 100% equivalence-class testing ... BUT ...</p>
    <p>(1) How well would that protect you against errors that would be
      detected by 100% strong, robust boundary-value testing? (see
      Jorgensen's definition - bib details below - sorry if the
      cut-and-paste from Amazon makes for iffy formatting)<br>
    </p>
    <p>(2) Could it identify code through which there were more simple
      paths than actually needed to pass all the equivalence-class test
      cases? - Or is one testing only for functional correctness and not
      minimal control-flow complexity? (Given the ordure I've seen in C
      program flowgraphs, I'd want at least some way to warn people if
      their code was unnecessarily cumbersome.)</p>
    <p>That's the reason I try to ensure that my code units have the
      property that every set of test cases that achieves 100%
      boundary-value coverage also attains 100% simple-path coverage.
      It's not instead-of CbyC (where that is possible) but
      belt-and-braces-in-addition-to CbyC - which in C developments is,
      I think, entirely justified.</p>
    <p><br>
    </p>
    <p>Olwen</p>
    <p><br>
    </p>
    <h1 id="title" class="a-spacing-none a-text-normal"
      style="box-sizing: border-box; padding: 0px; margin-top: 0px;
      margin-right: 0px; margin-bottom: 0px !important; margin-left:
      0px; text-rendering: optimizelegibility; font-size: 28px;
      line-height: 1.2; font-style: normal; text-transform: none;
      text-decoration-line: none !important; text-decoration-style:
      initial; text-decoration-color: initial; color: rgb(17, 17, 17);
      font-family: "Amazon Ember", Arial, sans-serif;
      font-variant-ligatures: normal; font-variant-caps: normal;
      letter-spacing: normal; text-align: start; text-indent: 0px;
      white-space: normal; word-spacing: 0px; -webkit-text-stroke-width:
      0px; background-color: rgb(255, 255, 255);"><font size="-1"><span
          id="productTitle" class="a-size-extra-large"
          style="box-sizing: border-box; font-size: 19px !important;
          line-height: 1.2 !important; text-rendering:
          optimizelegibility;">Jorgensen, P. C., Software Testing: A
          Craftsman's Approach, Auerbach Publications, 4ed, 2013,  </span><span
          style="box-sizing: border-box;">ISBN-10:</span><span> </span>1466560681<span
          style="box-sizing: border-box;">, ISBN-13:</span><span> </span>978-1466560680</font></h1>
    <p><br>
    </p>
    <br>
    <p><br>
    </p>
    <br>
  </body>
</html>