[Tutor] the art of testing
Dave Angel
davea at ieee.org
Wed Nov 25 04:41:32 CET 2009
Serdar Tumgoren wrote:
>> That's a good start. You're missing one requirement that I think needs to
>> be explicit. Presumably you're requiring that the XML be well-formed. This
>> refers to things like matching <xxx> and </xxx> nodes, and proper use of
>> quotes and escaping within strings. Most DOM parsers won't even give you a
>> tree if the file isn't well-formed.
>>
>
> I actually hadn't been checking for well-formedness on the assumption
> that ElementTree's parse method did that behind the scenes. Is that
> not correct?
>
> (I didn't see any specifics on that subject in the docs:
> http://docs.python.org/library/xml.etree.elementtree.html)
>
>
I also would assume that ElementTree would do the check. But the point
is: it's part of the spec, and needs to be explicitly handled in your
list of errors:
file xxxxyyy.xml was rejected because .....
I am not saying you need to separately test for it in your validator,
but effectively it's the second test you'll be doing. (The first is:
the file exists and is readable)
>> But most importantly, you can divide the rules where you say "if the data
>> looks like XXXX" the file is rejected. Versus "if the data looks like
>> YYYY, we'll pretend it's actually ZZZZ, and keep going. An example of that
>> last might be what to do if somebody specifies March 35. You might just
>> pretend March 31, and keep going.
>>
>
> Ok, so if I'm understanding -- I should convert invalid data to
> sensible defaults where possible (like setting blank fields to 0);
> otherwise if the data is clearly invalid and the default is
> unknowable, I should flag the field for editing, deletion or some
> other type of handling.
>
>
Exactly. As you said in one of your other messages, human intervention
required. Then the humans may decide to modify the spec to reduce the
number of cases needing human intervention. So I see the spec and the
validator as a matched pair that will evolve.
Note that none of this says anything about testing your code. You'll
need a controlled suite of test data to help with that. The word "test"
is heavily overloaded (and heavily underdone) in our industry.
DaveA
More information about the Tutor
mailing list