Готовлю проект по автоматизации тестирования UI веб-приложения. Разработчики используют последнюю версию Silverlight - 5ую. Требуется проверять в браузерах: Chrome, IE и в Safari.
Нашла здесь тему, в которой этот вопрос уже поднимался:
http://software-test...-silverlight-5/
Но она 2012 года, комментарии в ней уже не актуальны. Coded UI Test теперь поддерживают Silverlight 5:
https://visualstudio...e0-7dc92131d2da
Меня смущают сложности развития и поддержки тестов на CUT. Более привычно работать с Selenium Webriver.
Функции записи последовательности действия меня не интересуют. Я предпочитаю написать классы, позволяющие разделить логику поиска веб-элементов от логики тестов.
Хотелось бы применять принципы Page Object Model при разработке тестов:
http://habrahabr.ru/...rt/blog/138674/
Нашла статью компании, которая комбинирует применение Selenium WebDriver и CUT:
http://bugscatcher.net/archives/1540
Не могу до конца понять, применим ли в моем случае такой же подход?
Конкретные вопросы (my concerns):
- Можно ли создать проект с тестами отдельно от проекта с тестируемым приложением?
В случае c Selenium WebDriver достаточно указать адрес тестового стенда, на который задеплоен последний билд.
Предполагалось начать работу с тестами максимально автономно от группы разработчиков.
А если придется хранить тесты в той же ветке репозитория, что и само тестируемое приложение, то как обосновать разработчикам такую необходимость? (Я имею в виду случай, когда используется только WebDriver.)
- Как обеспечить поддержку тестирования в разных браузерах?
Есть информация, что CUIT это не умеют:
http://www.dotnetcur...le.aspx?ID=1004
- Если для CUIT обязательно создавать Automation ID для каждого объекта, то почему бы не дать Selenium эти самые id для нахождения веб-элементов и обойтись без CUIT?
В чем именно проблема тестирования Silverlight приложение с помощью Selenium Webdriver?
- Если использовать связку Selenium Webdriver + Coded UI Tests, то каким образом между ними будет происходить разделение труда?
Сейчас для запуска тестов планирую использовать NUnit. Когда будут рабочие варианты тестов - перейти на Team City, разработчики пользуются им.
Для того, чтобы отчеты о тестах были понятны большой команде (автмаотизатор тестов - 1 штука, ручные тестировщики - ~5, разработчики - пара десятков) обдумываю применение Specflow. Его связка с прогонщиками тестов и с вебдрайвером мне ясна, имеются наработки. Но в комбинированном варианте не знаю, каких проблем ожидать.
Долгосрочная перспектива:
1. Кроме регрессионных тестов писать приемочные на новый функционал (TDD)
2. Планируется автоматизировать тестирования нескольких разных веб-приложений компании. Технологический стек одинаковый.
Поэтому решение должно быть не сделал-отвязался, а максимально эффективным. Чтобы не скакать от подхода к подходу, используя каждый раз разные инструменты и фреймворки. Нужно сейчас определиться с архитектурой решения, а потом писать тесты как на конвеере.
Какие есть еще варианты?
Фреймворк White плохо поддерживает Silverlight, а с поддержкой разных браузеров тот еще вопрос. Отпадает.
http://teststack.azu...hite/index.html
Silverlight-selenium - существует как приблуда к Selenium RC, который теряет преимущества вебдрайвера перед CUIT.
https://code.google....light-selenium/
Не работала еще с Teletrik Test Studio.
http://www.telerik.c...erlight-testing
И если уже поднимать вопрос о затратных решениях, то у нас есть лицензия на Test Complete. Но он проигрывает в сравнении с Selenium в вопросе удобства написания и поддержки тестов, к тому же его тесты медленнее работают. Тем не менее есть возможность прикручивания Specflow к тестам Test Complete, что, возможно, поможет в поддержке тестов.
http://smartbear.com...h-testcomplete/
Буду признательна за любые комментарии!