Where do the different categories of test fall under "Unit Test", "Acceptance Test", "System Test"?

First it helps to agree on definitions.

An "Acceptance Test" is typically written by a customer, or on behalf of a customer. Its purpose is to verify that the customer is getting what they asked for.

A "System Test" is typically written by the team (or sometimes by QA). Its purpose is to verify that the assembled system "behaves" (for some definition of "behaves" :) There's often a lot of overlap between a System Test and and Acceptance Test.

A "Unit Test" is written by an individual programmer (or a Pair, if you're doing Pair programming). It's purpose is to verify that some component of the overall system behaves according to specifications. Or, if you're doing Test Driven Development, the test can serve the additional purpose of exploring the API before actually coding. The higher-level tests might not care one iota about Unit Tests, which is fine.

Extreme Programming and Test-Driven Development have paid the most attention to Unit Tests, though the "Industrial Extreme Programming" offshoot (http://industrialxp.org/) adds Acceptance Tests to the mix via attention to testing user stories early in the process.

In Perl, Unit Tests are often built with Test::More or one of its predecessors. Acceptance Tests and System Tests, from my experience, are all over the map. There are some options on the horizon. FIT (the Framework for Integrated Testing) has two Perl ports; one on the web site, the other on CPAN (Test::FIT). FIT is aimed at providing a framework that allows stakeholders to express Acceptance Tests via HTML tables (which can be generated either by hand, by a Wiki, or from Excel or Word).


In reply to Re: TDD in perl by dws
in thread TDD in perl by thens

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.