Тестируем UI с помощью Coded UI Test

    image
    В жизни любого серьезного проекта всегда уделяется большое внимание и много времени тестированию. Процесс тестированию может продолжаться несколько часов, а может занять и целые недели, все зависит от размеров вашего проекта. Существует множество вариантов тестирования вашего  решения. В Visual Studio 2010 появился новый способ тестрования, позволяющий с легкостью находить недоработки в графическом интерфейсе.

     

    Демонстрировать новые возможности Visual Studio я буду на примере WPF приложения.imageimage

    Для простоты, приложение будет уметь выполнять две обычные операции: сложения и деления. Теперь, давайте добавим в наше решение проект тестирования (Test -> New Test). image

    Visual Studio предложит выбрать сценарий создания теста. В данном примере,  я буду использовать второй пункт(UI Recorder), который очень похож на всем известный Web Recorder в IE.
    imageimage

    После того, как я выбрал нужный сценарий, мне необходимо записать какие-то действия с помощью recorder’а. Предлагаю записать простой сценарий – сложение чисел.  Для этого я нажму кнопку Record Action и выполню требуемые операции.image

     
    Мы видим, что Recorder распознал элементы и произошедшие события нашего приложения – это является огромным нововведением посравнению с Web Recorder’ ом. В данном случае анализ событий и элементов происходит на нижнем уровне, хочу обратить внимание, что распознавание для разных приложений работает по-разному, а для некоторых оно вообще не поддерживается. Список поддерживаемых приложений описан ниже в таблице. image

    Финальная версия Visual Studio 2010 позволит создавать UI тесты для основных видов приложений, что позволит использовать данный вид тестов без особых проблем. После того, как UI Recorder записал все проделанные действия, я могу сохранить их, как .Net Static Method и использовать в любом месте моего тестового проекта. Все записанные методы сохраняются в классе RecordedMethods, который при желании можно всегда изменить. image

    Visual Studio осуществляет поиск элементов с помощью фильтров, описанных в областях “Search Criteria”.  Coded UI Test позволяет осуществлять проверку параметров элементов за счет использования привязки(UI Locator). imageimage

    Используя “Прицел”, я выбрал интересующий меня элемент — метку с результатом. Когда мы нажмем на кнопку сохранить, Visual Studio создаст класс UIMap, описывающий выбранный элемент, и сделает его доступными внутри моего проекта.image

    Теперь давайте посмотрим на практике, как можно применить данную возможность.  Для этого я должен передать класс UIMap в ранее записанный метод.image

    Допустим, я хочу проверить, как работает операция сложения в моем приложении. Для этого я добавлю возможность считывания параметров с консоли при запуске теста.image

    На последнем шаге мне нужно создать простую логику проверки в требуемом методе. Это можно сделать с помощью метода AreEqual класса Assert.image

    Ну и напоследок, запустим наш тест и убидимся в корректной работе нашего приложения.image

    Вот такая новая возможность появилась в VS10, надеюсь, вы найдете ей применение
    Поделиться публикацией
    Комментарии 49
      +5
      Студия с каждой версией всё удобнее и краше, спасибо за подробное описание фичи!
        –9
        Еще бы и стоило подешевле.
        Имхо, инструменты разработки вообще должны быть бесплатны.
          +2
          Если вы студент(аспирант) или участник стартапа, то visual studio для вас будет бесплатная.
            –3
            знаю знаю. По Dreamspark есть Visual Studio 2008 (правда на жену пока де студентка :)
            Но в компании пока не хотят переходить на 2008 имено потому что 1000$ а если только в отделе разработки 50 человек…

            Зато c Netbeans проблем никаких (фриварный он). в частности и поэтому уже второй проект на Java.
              0
              >Но в компании пока не хотят переходить на 2008 имено потому что 1000$ а если только в отделе разработки 50 человек…

              Я вам одну тайну раскрою: компаниям типа «только в отделе разработки 50 человек» VS обычно приезжает по MSDN подписке.
                +1
                так и есть. Standart Edition у нас так и приезжает. Но экономия небольшая.

                плюс например upgrade с 2005 до 2008 будет стоить 800$ что на тех же 50 человек те же 40K

                  0
                  40к? Откуда такие цифры, там же не за одну копию вы платите, а за подписку. Или я чего-то не понимаю?
                  msdn.microsoft.com/en-us/vstudio/subscriptionschart.aspx
                    0
                    см. там ссылку «MSDN Subscription Software Use Rights» msdn.microsoft.com/ru-ru/subscriptions/cc150618.aspx

                    там четко прописано «Подписки MSDN лицензируются по принципу «на пользователя».»

                    если б это стоило хоть 5000$ но «на всех» то и вопросов бы не было.
                      0
                      Значит меня этот пост ввёл в заблуждение www.gotdotnet.ru/Forums/legal/430601.aspx
                      Но вообще есть корпоративные подписки, там явно должно быть дешевле:)
                      Это отдельная тема лицензирования, хорошо что мне пока не приходилось с этим сталкиваться.
                        +1
                        партнёрство это вообще отдельная тема…

                        да я просто VS2008 хочу на работе :) А у нас большая жаба в в руководстве которая бегает и всех душит :)) вот так поневоле и изучаешь все эти вопросы.

                        изучаешь, ищешь… и тут раз NetBeans! totally free!
                    0
                    Ничё не понял. Вы что, на 50 человек на каждого отдельно подписываетесь?
                  –1
                  Странно как-то выбираете проекты, при учете того что на выбор технологии разработки влияет стоимость среды разработки.
                    0
                    главным критерием была кросплатформенность и возможность работы под Solaris. Тут уж хочешь-нехочешь приходится откладывать C# в сторону.

                    а хорошая IDE free of charge это так сказать бонус был, именно тогда я и задумался о том что бесплатная IDE это не так плохо как кажется.

                    Ведь если будет много хороших и красивых приложений для Windows то это будет способствовать продвижению технологий Microsoft в целом.
                0
                expres бесплатна.КО(с)
                  0
                  спасибо, Капитан :)

                  но для серьезной разработки его зачастую не хватает.
                    +1
                    Согласен, я общался с командой разработчиков, обещали новые фичи по UI тестированию в Beta 2
                      0
                      Различия разных версий можно посмотреть тут www.microsoft.com/Rus/Msdn/vs/versions.mspx
                        0
                        Чего вам в нём не хватает?:) Есть ещё SharpDevelop. Для домашнего использования этих IDE хватает с головой.
                        А в компании пусть предоставляют софт:)
                          0
                          SharpDevelop это действительно очень неплохо.

                          но он объективно беднее VS. Сравнение тут community.sharpdevelop.net/blogs/mattward/pages/VisualStudioExpressComparison.aspx
                            0
                            например то, что под Express нельзя делать солюшен в котором есть проект на C++ и С#.

                            Научные алгоритмы с большими обработками и вычислениями обычно собираются на плюсах, в то время как UI и BLL на шарпе. И обертки спасают далеко не всегда.
                            0
                            Хотя если вы там, что то для офисса или ещё чего делайте, то да… Я просто с этим не сталкивался. WPF+c# я и в про и в ехпресс пробывал, по мне всё одинаково:)
                          0
                          имхо, MS и рада бы выпускать студию бесплатно, но это убьёт и без того еле живой рынок средств разработки под Win
                            0
                            не думаю что именно эта причина двигает ими :)
                              0
                              у них много причин и целей, часто взаимоисключающих :)
                              как производителю ОС, им нужно много софта под эту ОС, в том числе средств разработки и офисных программ
                              как производителю средств разработки и офисных программ им охота задавить конкурентов
                          0
                          Радует, что есть поддержка браузеров, хоть и не всех. Интересно было бы на неё взглянуть в действии.
                          0
                          Потрясающе. Когда-то очень хотелось этого…
                            +1
                            Прочитал.
                            Возможно, тут присутствует какой-то скрытый смысл, которого я не заметил, но…

                            seleniumhq.org/ (Selenium)

                            Всё то же самое, что я увидел в статье, и плюс

                            — OpenSource, Freeware, ессно,

                            — IDE (recorder) с офигительным количеством тестируемых параметров как плагин к FF,

                            backend (возможность программирования тестов) на:

                            -dotnet
                            -java
                            -perl
                            -php
                            -python
                            -ruby
                            (remote control components), + server и т.д. и т.п.

                            Юзают тестеры Google.
                            см. www.youtube.com/watch?v=EDb8yOM3Vpw
                            (первая лекция, чувак жжот — «Why Selenium sucks» ;-)) )
                              0
                              Минусы данного IDE:
                              1) Только веб-тестирование
                              2) Поддержка только Firefox
                              3) Не интегрирован с другими IDE
                                0
                                3) Не интегрирован с другими IDE

                                А как же Selenium Eclipse?
                                  0
                                  Да, вы правы. Я имел виду интеграцию с средствами разработки под платформу MS.
                                  0
                                  на видео, где-то на 3 минуте грят, что поддерживаются все браузеры.
                                      0
                                      и? запускать тесты можно практически в любом браузере. Разве этого не достаточно?
                                        0
                                        Этот IDE позволяет делать только Web UI Test! Сoded UI Test в VS дает возможность тестировать Native и Managed приложения! Для тестирования веба в VS есть давно Web Test.
                                          0
                                          В комплект поставки входит «remote control» с помощью которого вы можете программировать как UI тесты так и юниты и integration.
                                          Я лично пишу через него UI тесты, но в видео рассказывают и про другие.
                                            0
                                            Спасибо, это наверно хороший и удобный тул. Но, мне кажется, обладателям VS удобней будет использовать встроенную фичу.
                                0
                                Данные тесты подходят только как раз к категории «кнопки и текстбоксы». На практике я с трудом представляю как тестировать подобные интерфейсы:

                                  0
                                  Мне кажется, этот сценарий будет очень полезным для Silverlight, который счас не понятно, как тестировать.
                                  0
                                  picamatic.com/show/2009/07/29/11/24/4627269_988x605.png
                                  0
                                  И все же ИМХО правильная multi-tier архитектура, в которой слой представления отделен от логики, намного более правильное решение для автоматического тестирования. Большинство подобных фремворков требуют слишком больших трудозатрат на поддержку тестов при изменениях в проекте.
                                  P.S. Хотя включение подобного инструмента в VS — однозначный позитив, приятно, что в MS много работают над автоматическим тестированием.
                                    +1
                                    Даже если слой представления отделен от логики, это не отменяет необходимость тестировать слой представления.
                                    –1
                                    на мой взгляд не оч удобно.
                                    существует же туева куча различного софта для тестирования, который намного удобнее этого полуфабриката.
                                      +2
                                      назовите, пожалуйста, три достойных совтины из туевой кучи для тестирования гуёвых сишных приложений
                                    0
                                    Спасибо! Отличная новость :) Есть чем заменить упоминаемый выше Selenium (хоть и хороший тул, но если аналог встроен в студию, это намного удобнее).
                                    Только вопрос — в каких редакциях VS будет доступен данный тип проекта?

                                    Поскольку бета, то и баги есть, это понятно… У меня Coded UI Test Builder при сохранении записанного рекордером метода выдает всегда валит эксепшн, пока не поборол…

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое