On Thu, 22 Jan 2009, Richard Hainsworth wrote:
4) Testing software is different from debugging or running software. Running
is about providing functionality to the user. Debugging is about getting
expected behaviour and discovering why behaviour exhibited is not what is
expected / specified. Testing is about demonstrating that the functionality
provided is the functionality expected / specified under all specified
conditions.
I guess I've always seen it as having even more facets. I hadn't
thought about testing in this context before. My suggestion, though, is that
the facets would include:
- "Useful" code (ie. the code that actually does the stuff you want)
- Runtime error handling (ie. try/catch/whatever)
- Debugging code (kind of like a log of watches[*], etc)
- Tests (we're talking about these)
- Comments # We know what these are :)
- Documentation (POD, etc)
[*] by "watches", I mean those things in a GUI where you get it to show you
the contents of a variable.
If there is a name for what I've labelled '"Useful" code', then please
let me know :).
Anyway, I just wanted to highlight the contrast between code (which is
essentially a 1-dimensional character stream), and the 2-dimensional nature
we're trying to capture, in hopes that it will give someone ideas.
In particular, I note that we have specialised syntax for each of
these. While it would presumably be confusing to unify the syntax for all of
them, it seems to me that they naturally break into three groups:
- "Useful" code (in as group by itself)
- Checking code
- Runtime error handling
- Debugging code
- Tests
- English
- Documentation
- Comments
Whether we should somehow unify the syntax of either the checking
group or the English group isn't something that I know the answer to, but it's
a thought. Perl 6 is confusing to the beginner, and that's OK, but I figure
it should be no more confusing than it has to be.
:)
---------------------------------------------------------------------
| Name: Tim Nelson | Because the Creator is, |
| E-mail: wayl...@wayland.id.au | I am |
---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK----
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V-
PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y-
-----END GEEK CODE BLOCK-----