Бизнес и UAT
Бизнес в большинстве случаев рано или поздно потеряет интерес к любому инструменту тестирования. В конце концов, они - бизнес-тестеры, а не тестеры, поэтому они не будут много заниматься написанием / поддержкой тестовых сценариев. Они Бизнес, они хотят заниматься бизнесом. С их точки зрения, тестировщики / разработчики / другие ИТ-специалисты несут ответственность за предоставление им программного обеспечения определенного качества.
Даже если Agile - ваш путь, и вы получаете какой-то уровень приверженности со стороны бизнеса, не ожидайте, что он будет вести себя как тестировщик на каждом спринте / итерации или что бы то ни было у вас. Это действительно не их работа.
Одно отступление: пользовательские приемочные тесты - это ручные тесты, выполняемые пользователем (пользователями), поэтому он (они) может сказать, что это продукт, который он (они) просил.
Поэтому, когда функция (или набор функций) готова, делайте презентацию для бизнеса, пусть они играют с ней, пусть говорят, это то, что им нужно. Не заставляйте их проверять эту функцию при каждой итерации.
Теперь вернемся к вашим приемочным испытаниям. Когда у вас есть история от клиента, реализуйте тест (ы) для нее в своей тестовой инфраструктуре. Вы пишете это, вы запускаете это, вы поддерживаете это. Может быть целесообразно провести тестирование для разработки функций и накопителей с помощью ADD / BDD / TDD или как вы хотите это называть. Должно быть очевидным, что этот тест (-ы) внесет свой вклад в ваш набор регрессионных тестов на следующих итерациях.
Итак, моя точка зрения такова, что бизнес не будет заинтересован в написании / ведении тестов, особенно при расширении набора функций. Не борись с этим, приспособься к этому. Позвольте им в конце итерации выполнять только (ручные) приемочные тесты для новых функций. Ради себя создайте тесты для функций, которые они хотят иметь. Создайте приемочные тесты для каждой функции. Пусть эти тесты станут вашим костюмом для регрессионного тестирования. Примите, что вы несете ответственность за его поддержание.
Концепция приемочного тестирования
Да, да? Затем попробуйте WatiJ для веб-сайтов и Abbot для настольных компьютеров. Имейте в виду, что эти тесты не будут простыми юнит-тестами. Вы хотите что-то, что будет тестировать функции реального приложения, вы хотите, чтобы Test Script выполнял определенный сценарий / бизнес-процесс. Это означает, что вам нужно подходить к написанию таких тестов, как к написанию приложения, которое они тестируют: DRY, KISS, YAGNI, Design Patterns - все применимо В конце концов, это будет написание программного обеспечения, которое просто проверяет другое программное обеспечение, которое вы пишете.
Станут ли эти тесты большими и сложными при таком подходе? Ну, больше и сложнее, чем юнит-тесты. Но они тестируют не одно устройство, а целое приложение. Кроме того, они будут намного проще и меньше, чем приложение, которое вы пишете.
Будете ли вы писать тестовый фреймворк? Если вы хотите добиться успеха с этим подходом, тогда да, вы будете писать среду тестирования - набор тестовых классов и вспомогательных классов, в которых реализованы некоторые знания о вашем приложении. Но вы не будете расширять JUnit. JUnit - это всего лишь некоторый API, который вы используете в своей среде.