Dave Whipp wrote:

Richard Nuttall wrote:

Writing a complete test suite really also needs reasonable knowledge
of how the internals are written in order to understand the kinds of
tests that are likely to provoke errors. (More thoughts on this if requested).

[...]

Consider item 0. Do we need to test C<reverse(undef)>? The answer is probably "no": conversion of undef to an empty lsit is a property of the list context in the caller. We tested that as part of our compehensive set of arglist evaluations. The reverse function never sees the undef, so we don't need to test it.
This is an example of an awareness of implementation leading to better knowledge about what areas are worth testing.

In a previous life, I worked as part of a team (implementing Expert Systems in VAX Pascal actually), and we had one person whose sole aim in life was to design and build test cases. In many cases his complete lack of knowledge of implementation detail was good because he thought up all sorts of tests that were useful because he wasn't as close to the trees as we were, in other cases some of the tests didn't exercise any new functionality because in the itnernals, seemingly different cases were implmented using the same functionality.

R.


Reply via email to