This post maps the components of domain testing test technique (the recipe) using our previous example of domain testing Google calendar event creation. Components are aligned with Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
Test technique has following components:
- analyze the situation
- model the test space
- select what to cover
- determine test oracle
- configure the test system
- operate the test system
- observe the test system
- evaluate the test results
Analyze the situation
What are input and output variables? In domain testing example, we only analyzed input variables. But what are output variables?
You get this event when you submit event with default values. We should also do analysis what are possible values for output variables.
Model the test space
We did that for event name variable. Sample all possible variable values by splitting values in groups that are treated equally by the create event feature. One group were values from zero length to max length. Consider valid and invalid values. Do a test with value from group that has the highest probability to trigger a failure. In our example, that would be length of max_length.
Select what to cover
Combination of variables event type and time.
Determine test oracles
Should we consider input rejection or output overlows. Event time variable has a date. Oracle is Gregorian calendar standard definition.
Configure the test system
Should we test on live system or test environment? In this example we tested on tentamen GSuite. Is this wise? What if failure causes lost of all event data? How can we easily set up test environment, are there scripts for that purpose or we must do it manually? How can we create tests, by hand or using selenium? What are input field selectors? This is input selector for time variable:
Operate the test system
How do we run tests? Run selenium tests from our development machine, or execute test manually following the test script?
Observe the test system
What are system outputs while we execute the tests?
Evaluate the test results
Did the program pass the test? Should be event without name be accepted?
This recipe components are part of every test technique, not just domain testing.