@lostpassword

Что бы подобрать для UI-тестирования десктопного приложения?

Здравствуйте.
Ситуация: есть десктопное приложение на C#, которое потихоньку пишется. Хочу узнать, можно ли его как-то автоматически тестировать.
Грубо говоря, открывает пользователь форму, вводит данные, потом открывает другую, вводит, потом смотрит результат, который отображается на нескольких вкладках. Хочется подготовить несколько (10-20-30) примеров - и прогонять их, автоматически проверяя результат.
Я человек небогатый, Visual Studio Ultimate не куплю. Да и вообще по деньгам абсолютный потолок - это где-то 1000 рублей в месяц (да и то меня жаба задушит), поэтому хотелось бы что-нибудь бесплатное.
1. Когда говорят о тестировании, обычно всплывают юнит-тесты - но я, честно говоря, не вижу, как они мне пригодятся в этой ситуации. Довольно много логики завязано на событиях UI-компонентов, и я не очень представляю, как мне эмулировать, скажем, клик по ячейке таблицы. Эмулировать клик важно, потому что я теоретически могу и с обработчиком накосячить. Опять же, глубоко вникать в технологию юнит-тестов я пока не готов. Стоит ли копать в этом направлении?
2. Для тестов собственно UI я что-то инструментов не знаю. Максимум приходит на ум AutoHotKey - но с ним будет не очень просто считывать результат. Был у кого-то опыт подобных мероприятий?
Вроде все. Спасибо за советы, если таковые будут.)
  • Вопрос задан
  • 3908 просмотров
Решения вопроса 1
@polarnik
Тестировщик
Использовал TestComplete. Инструмент хороший. Платный. Отладчик лучше всего работает, если язык проекта Delphi Script.

1. Логику работы приложения отделите от форм. Чтобы в событиях форм лишь вызывались методы основного класса. В собственных разработках не всегда следую этому правилу, но следую. На форме есть текстовое поле, а в методе параметр типа string. На форме есть таблица на четыре колонки, в методе есть список классов (в классе четыре поля). И так далее.
На основной класс уже пишутся модульные тесты.

2. Используя такие инструменты как TestComplete, удобно писать регрессионные тесты на проверку правильности отображения заранее подготовленных данных. А проверять логику работы кликами - крайне тяжело.
Советы:
- после каждого действия проверяйте отсутствие диалогов с ошибками и отсутствие ошибок в логах;
- выделите время на подготовку тестовых данных, хорошие тестовые данные в визуальных тестах крайне важны;
- пишите короткие тесты (открыть, проверить, закрыть), не пишите тесты, которые длятся дольше 20-30-ти секунд.

Вам придётся разработать API, хотя бы для таких частых действий как "открыть" и "закрыть" и API для проверки результатов (обращения к базе данных, файлам, логам). Визуальные тесты окупаются, если вы заявляете поддержку нескольких конфигураций (интерфейс единый, а окружение различное - операционные системы, базы данных, настройки, параметры шрифтов, ...). Если хотите тестировать только на одной конфигурации, то автоматизируйте самым минимум операций, не усложняйте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Oxoron
Шарпер
Если уже есть Премиум Студия -
Coded UI Tests. Созданы как раз для тестирования UI.
habrahabr.ru/post/97012 - для старой 2010 версии VS. В 2012 не особо поменялись, выше пока не пробовал.
Если нет премиума - в 1000 рублей, увы, не уложитесь.

Копать в сторону Unit-тестов стоит в любом случае. Помимо базы в виде Art Of Unit Testing можно почитать вот этого товарища: sergeyteplyakov.blogspot.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы