Aaron Wilson, Margaret Burnett, Laura Beckwith, Orion Granatir, Ledah Casburn, Curtis Cook, Mike Durham, & Gregg Rothermel
Despite their ability to help with program correctness, assertions have been notoriously unpopular—even with professional programmers. End-user programmers seem even less likely to appreciate the value of assertions; yet end-user programs suffer from serious correctness problems that assertions could help detect.
This leads to the following question: can end users be enticed to enter assertions? To investigate this question, we have devised a curiosity-centered approach to eliciting assertions from end users, built on a surprise-explain-reward strategy.
Our follow-up work with end-user participants shows that the approach is effective in encouraging end users to enter assertions that help them find errors.
In our strategy a feature that surprises a user must inform the user. We have devised an on-demand explanation system structured around each object that might arouse curiosity.
Users can begin exploring the object by viewing its explanation, on demand, in a low-cost way via tool tips:
- To protect against bad values, type a guard (range) such as 0 to 10 or double-click.
- The value must not conflict with its guard(s). To resolve the conflict, fix an error in a formula or in a [user] guard.
- The computer's testing caused it to wonder if this would be a good guard. Fix the guard to protect against bad values, by typing a range or double-clicking.
- All guards must agree. To make them agree, fix an error in a formula or in a [user] guard.
- Computer guards tell you what the value will be. The computer determined this guard from the formulas and guards you entered.
2003, Conference on Human Factors in Computing Systems, April, pages 305-312