Test-Driven Development больше подходит для разработки кода, чем для разработки пользовательских интерфейсов. Существует несколько различных способов выполнения TDD, но предпочтительный способ настоящего TDD - сначала написать свои тесты, а затем написать код для прохождения тестов. Это делается итеративно на протяжении всей разработки.
Лично я не уверен, как вы будете выполнять TDD для пользовательских интерфейсов; тем не менее, команда, в которой я работаю, выполняет автоматические имитационные тесты наших пользовательских интерфейсов. По сути, у нас есть набор симуляций, которые запускаются каждый час при самой последней сборке приложения. Эти тесты выполняют общие действия и проверяют, что определенные элементы, фразы, диалоговые окна и т. Д. И т. Д. Правильно встречаются, например, на основе набора вариантов использования.
Конечно, у этого есть свои недостатки. Недостатком этого является то, что симуляции заблокированы в коде, представляющем дело. Это оставляет мало места для отклонений и в основном говорит, что он ожидает от пользователя точно такого поведения по отношению к этой функции.
Некоторое тестирование лучше, чем отсутствие тестирования, но могло бы быть и лучше.