Здравствуйте, i_kruk, Вы писали:
_>Какой-то код есть, но тестировщики об этом не знают
_>Тестировщики тестят черным ящиком. Программисты пишут юнит тесты.
_>Поэтому тестерские проверки завязаны на пользовательский интерфейс. Кстати, часто случается, что какой-то контрол поменял свое название, и весь автоматизированный тест валится, так как не может найти нужный контрол.
Для тестирования тоже есть своя архитектура и паттерны

Если выделить логику поиска контролов на форме (по имени или еще как) в отдельный класс, то при изменении имени контрола достаточно будет поменять этот класс и все тесты починятся автоматом. Этот же прием спасает при изменении UI фреймворка, так как потребуется переписать только "классы обертки" форм.
Я называю этот паттерн FormObject (уже не помню где о нем услышал).
Сами тесты выглядят так:
var loginForm = new LoginForm(/*сюда можно передать все тчо нужно тестовому фреймворку, чтобы он смог "кликать" кнопки */);
loginForm.Username = "aikin";
loginForm.Password = "secret";
loginForm.LogMeIn();
Assert.That(loginForm.IsClosed); // Проверить можно все что угодно, например, что открылась другая форма или еще что
СУВ,
Aikin... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>