Онлайн-тренинг с практической работой, 10 занятий, начало 31 июля.
Мы в очередной раз провели опрос про популярность языков программирования среди тестировщиков-автоматизаторов. И вновь, как и в прошлый раз, ожидаемо с большим отрывом победил язык Java. Но теперь Python и C# подобрались к лидеру уже ближе, проиграв не в три раза, а всего лишь в два :)
Но нельзя не признать, что инструменты разработки, создаваемые компанией Microsoft, эволюционируют семимильными шагами. Поэтому мы решили, что пришло время запустить тренинг "Программирование на C# для тестировщиков", аналогичный тренингу по языку Java.
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересует программирование на Java у нас есть другой курс).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организоваэ ь код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы хотите считаться профессионалом в области автоматизации тестирования, строчка "я знаю Selenium" обязательно должна присутствовать в вашем резюме.
Простые тесты можно создавать при помощи рекордеров Selenium IDE или Selenium Builder. Но при увеличении объёма и сложности тестов этот подход теряет свою эффективность и привлекательность. Профессионалы пишут тесты на языках программирования.
Если до этого Вы не занимались автоматизацией и не знакомы с Selenium, то лучше начать с курса Selenium 2.0: стартовый уровень.
Python входит в число четырёх языков программирования, которые официально поддерживаются Selenium (наряду с Java, Ruby и C#).
Также существует аналогичный тренинг на языке Java.
Этот курс предназначен для тех, кто хочет освоить программный интерфейс Selenium 2.0 и научиться разрабатывать автотесты для веб-приложений на языке программирования Python.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений на языке программирования Python с использованием инструмента Selenium 2.0, в частности:
владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
владеть расширенным набором команд Selenium 2.0, эмулирующих действия пользователя (клавиатурные сочетания, перетаскивание элементов мышью и другие),
владеть техниками поиска (идентификации) элементов в окне браузера,
уметь обеспечивать стабильность и скорость выполнения тестов за счёт правильного использования ожиданий,
уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям,
владеть основными шаблонами проектирования тестов, в том числе шаблоном PageObject,
уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.
Как, с вашей точки зрения, изменится тестирование в связи с наступлением эпохи интернета вещей, когда все, вплоть до зубочистки, начнет обмениваться данными и собирать информацию о пользователе? Помимо того, что это тьма новых экзотических платформ, это еще, имхо, и совсем другие требования к безопасности, и определенный challenge для юзабилити-тестирования.
У меня перед глазами сразу плывут картинки из второй части бартоновского Бэтмена, когда Пингвин взломал бэтмобиль и тот стал подчиняться не Бэтмену, а Пингвину. Как вы считаете, профессия тестировщика "интернета вещей" радикально изменится, или изменится только разнообразие оборудования, которое нужно проверять, а практики в целом останутся прежними?
При работе с Selenium столкнулся с проблемой поиска элемента по XPath (собственно, проблема относится не к Selenium, а к составлению верного xpath-выражения).
Суть проблемы - я ищу все элементы по тексту:
//*[text()='Нужный мне текст']
Всё хорошо, но тут появился элемент, содержащий внутри текста тэги.
//*[text()='Номер договора: С-0127, Продукт: Новый продукт, Сумма: 1 000.00 RUB, Срок: 90 дней, Дата начала: 19.06.2013']
элемент не находится.
Понимаю, что можно найти этот элемент с помощью contains(text(),'часть текста') and contains(...), но хочется иметь некое универсальное решение, которое не обращает внимания на эти тэги.
Собственно, вопрос - есть ли возможность с помощью xpath-запроса найти данный элемент, передав приведенную выше строку?
Российский разработчик и производитель сетевого и телекоммуникационного оборудования Полигон открывает кампанию по тестированию оборудования: поиску ошибок и уязвимостей в ПО сетевых коммутаторов Арлан.
Внутренне ПО оборудования основано на ядре Linux. Все окружение разрабатывается командой программистов из России.
Подробнее о кампании тестирования на http://plgn.ru/about/testirovanie/. После заявки ждите звонка инженера по тестированию и уточнению включения Вас в программу.
--
Компания «Полигон» основана в 1988 году и прошла в своем развитии путь от небольшой команды инженеров до головного предприятия холдинга «Полигон».
Специализация компании – разработка и производство активного сетевого и телекоммуникационного оборудования для промышленных предприятий, операторов связи, ведомственных и силовых структур. Предлагаются как отдельные устройства для сетей передачи данных, так и законченные инфраструктурные решения.
Приложение, которое разрабатывает наша компания, имеет UI и у нас есть тест кейсы для тестирования через UI. Но мы планируем внедрять автотестирование через сервисы при помощи SoapUI. В связи с этим у меня возник вопрос: а как вообще тестировать сервисы? Просто проверять грубо говоря все возможные входные параметры и проверять все возможные варианты? или ориентироваться на бизнес смысл этих сервисов? Поделитель пожалуйса опытом
Переделываю сейчас проект автомации под паттерн Page Object & Page Factory. Столкнулась с тем, что эти паттерны в основном предполагают что страницы статичные и элементы имеют постоянные идентификаторы.
В моем приложении очень много страниц показывающих результаты разных поисков (похоже на поиск Google, когда кол-во и "внешний вид" результатов на странице может изменяться в зависимости от вида поиска (сайты/статьи/видео/...) и от термина который ищут. Также много страниц с таблицами (кол-во строчек меняется и мне иногда нужна первая, а иногда седьмая).
id у элементов одинаковые, но в них есть "номер результата"/"номер строки", напр. entry_0_title, entрy_1_title, ... Причем entry (один отдельно взятый результат) это группа из 15-20 элементов (как title, vendor, ISBN, ...) и хотелось бы их id объединить в какой-нибудь section или inner class, чтобы использовать в Page Object class.
В Интернете пишут что эти паттерны для динамических элементов не подходят, что @FindBy работает только со статикой, и т.д.
Запись доклада Алексея Баранцева на июньской встрече клуба тестировщиков в Москве.
Если почитать какую-нибудь книжку про разработку автотестов или просто погуглить по словам "successful test automation" -- можно найти множество разнообразных рекомендаций. Выбирайте правильно инструмент. Проектируйте и выстраивайте правильную архитектуру тестов.
Уделяйте внимание тому, чтобы тесты было легко поддерживать. Не забывайте про планирование и управление (вообще-то это надо было бы поставить первым пунктом).
Но когда вы только приступаете к созданию автотестов -- вы ещё не знаете ничего ни про инструменты (насколько хорошо они вам подойдут), ни про архитектуру, да и управлять ещё нечем. Планировать в условиях такой неопределённости тоже сложно.
Что же делать?
Вы когда-нибудь выращивали цветы? Комнатные, или на клумбе, или может быть даже не цветы, а кусты или деревья?
Конечно, можно сначала нанять ландшафтных дизайнеров, распланировать и спроектировать большой-большой парк, потом нанять рабочих, которые всё посеют и посадят в соответствии с планом, сделают дорожки и выкопают декоративные прудики. А потом будут его поддерживать.
Но для этого нужно во-первых, иметь опыт таких работ, а во-вторых, иметь достаточно солидный бюджет.
Однако есть и другой путь -- "органический". Сначала посадить один цветочек. Если не приживётся -- посадить другой. Когда вы увидите, что он хорошо себя чувствует -- посадить побольше таких цветов. Оформить красиво клумбу. Подсадить что-нибудь ещё. Разбить рядом вторую клумбу, с другими цветами. Потом что-нибудь куда-нибудь пересадить, а что-нибудь вообще перестать сажать, потому что не понравились. И так постепенно создать ничуть не менее красивый, а может даже более уютный парк. Где нет прямых, как стрела дорожек, но всё равно достигнута гармония.
Тесты можно выращивать примерно так же -- используя разные инструменты, время от времени меняя их, постепенно усложняя архитектуру по мере надобности. Главное -- не забывать их регулярно поливать и полоть, чтобы не заросли сорняками.