Заставьте разработчиков сотрудничать с аналитиками и тестировщиками для написания сценариев, которые охватывают то, как пользователь будет использовать свой код и почему это ценно.Я обычно формулирую сценарии как:
Given <a context>
When <an event happens>
Then <an outcome occurs>.
Они должны искать то, о чем они не знают или о чем не думают, но что делают тестеры.
Я использую парувопросы, чтобы помочь мне с этим.Я ставлю под сомнение контекст:
Given <the context in which we start>,
when <I do this with the system>,
then <this happens>.
Is there any other context in which the same event produces
a different outcome?
Have we covered all the similar combinations?
И ставлю под сомнение результат:
Given <the context in which we start>
when <I do this with the system>
then <this happens>
If I were to make that happen using something different -
a manual process, say - would that cover the outcome you're
hoping to achieve?
Эти два вопроса помогают мне определить поведение системы и обнаружить вещи, о которых я даже не думал.Я могу использовать их для написания автоматических приемочных тестов или сценариев, если захочу.Эти вопросы также помогают мне узнать о моем домене и передать знания другим разработчикам.
Если у вас возникли проблемы с аналитиками / представителями бизнеса и / или тестировщиками, с которыми можно обсуждать эти проблемы, то именно поэтому вашУ разработчиков есть ошибки!
В противном случае, пожалуйста, посмотрите на BDD (Behavior Driven Development), которая поможет вам узнать больше о том, как это сделать, автоматизированные инструменты, которые помогут вам превратить эти разговоры в тесты и т. д.