yes assumptions are the mother of all bugs, thats why you should have a test suite that asserts all your assumptions about the system.

How could you possibly write such a system? How do you verify that first test in the suite is passed, something has changed in the system to make that test no longer pass? And if you can't, what good is your test? You can't avoid making assumptions; you can just add complexity by making meta-assumptions until you run out of time/money. Sometimes this is cost effective; but often it's not.

If an assertion fails then you don't have a sane environment for your code.

This is frequently true for production systems. It's often your job to deal with an imperfect world, and a dynamic and often flawed testing or production environment. Sometimes, this means accepting sub-optimal results as a consequence of a sub-optimal testing budget, on a probablistic basis designed to maximimize profits for the industry, given departmental budget contrainst.

We don't always live or work in a perfect world. Quite the opposite, most of the time. We have to do what we can within the time and budget constraints we are offered; that's all we can legally do.


In reply to Re^2: On Systems and Strangeness by Anonymous Monk
in thread On Systems and Strangeness by samizdat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.