At my company, we're building an online test-taking experience, and we ran into a problem. We would like to find a way to encourage our users to provide feedback during the test; however, since tests are timed, users are clearly uninterested in wasting time providing feedback. Here are the solutions we thought of, with the respective considerations we made.
Adding 30 seconds to the timer whenever a user submits some feedback → We're going to get a lot of "hdkjgnhgkdndj" feedback from users who need more time
Showing an interstitial "Provide feedback" screen after submitting each question (freezing the timer) → This is a clearly intrusive solution that would worsen the test-taking experience
Showing two distinct "Submit"/"Submit and provide feedback" buttons to let users choose whether they want to provide feedback for each question (and freezing the timer while they're providing the feedback) → Two "Submit" buttons would clutter the UI, especially on mobile devices with smaller screens
How should we approach this? Are there any best practices we should keep in mind? Should we just A/B test solutions until we get the most feedback?
Assuming that you want to accept feedback primarily about individual questions:
On each question, add a checkbox titled something like “I would like to provide feedback about this question (after finishing the test)”.
If it is checked, add the question to a count or list of questions which have been flagged in this way. Don't do anything else in the UI now.
When the complete test has been submitted and there is no longer a timer, show them all the questions they checked the box on (or, if they look for it, all of the questions), and let them write feedback (instead of answers) for each one.
This way, providing feedback or not does not affect the timing of the test itself at all (other than the time to hit the checkbox).