This post follows up on the one from yesterday:
So, data-driven testing is the way to go for a huge return
on finding and regressing product issues and measuring the whole quality
picture. How to start?
I like XML files to do this. Here are some reasons:
1.
Your favorite text editor will work for
reviewing, editing, and extending your test set.
2.
If given values for a test are optional and you
provide defaults as needed, the XML can be “sparse” and even easier to read and
edit. The data that drives the test also expresses the focus and reason for the
test, in the data itself!
3.
You can be as constrained or as loose with the
data schema (the layout of the XML data) as you want.
4.
Extending your data engine can be as simple as
allowing and parsing different values. For example, for testing with objects
that include pointers or references, you can put “null” as a value in your XML
and have your engine parse and use that for the test, in the context as defined
in the XML.
There are many engines that help with data-driven tests, or
with some time and skill, you can write your own.
To make the tests more readable and extensible, use
different XML files to drive different kinds of tests – e.g. positive vs.
negative tests, scenario A vs. scenario B, vs. scenario C. With appropriate
labels, comments, error messages and bug numbers inline with the data for the
individual test, all your tests can be self-documenting and even self-reporting,
freeing you from maintaining documents with details about the tests and
removing that source of errors and potential conflicts.
A relational database is a more powerful way of handling
large amounts of structured data. This would be a better choice for example if you
were doing fuzz testing by generating large numbers of tests, according to your
randomization scheme, and then saving to and executing from a SQL database.
Even with fuzz testing, it’s very important that tests be as repeatable as
possible!
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.