За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы хотите считаться профессионалом в области автоматизации тестирования, строчка "я знаю Selenium" обязательно должна присутствовать в вашем резюме.
Простые тесты можно создавать при помощи рекордеров Selenium IDE или Selenium Builder. Но при увеличении объёма и сложности тестов этот подход теряет свою эффективность и привлекательность. Профессионалы пишут тесты на языках программирования.
Если до этого Вы не занимались автоматизацией и не знакомы с Selenium, то лучше начать с курса Selenium 2.0: стартовый уровень.
C# входит в число четырёх языков программирования, которые официально поддерживаются Selenium, наряду с Java, Ruby и Python (и у нас есть тренинги на языке Java и Python, аналогичные данному).
Этот курс предназначен для тех, кто хочет освоить программный интерфейс Selenium 2.0 и научиться разрабатывать автотесты для веб-приложений на языке программирования C#.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений на языке программирования C# с использованием инструмента Selenium 2.0, в частности:
владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
владеть расширенным набором команд Selenium 2.0, эмулирующих действия пользователя (клавиатурные сочетания, перетаскивание элементов мышью и другие),
владеть техниками поиска (идентификации) элементов в окне браузера,
уметь обеспечивать стабильность и скорость выполнения тестов за счёт правильного использования ожиданий,
уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям,
владеть основными шаблонами проектирования тестов, в том числе шаблоном PageObject,
уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.
Онлайн-тренинг Алексея Баранцева, 1 месяц занятий, 6 часов теории + много практики + постоянные консультации тренера в скайп-чате
Можно ли представить себе хорошего линуксового системного администратора, который не знает общую теорию операционных систем и сетей, не подозревает о существовании Windows и MacOS, не умеет пользоваться для настройки системы консолью так же хорошо, как графической оболочкой? Можно ли считать хорошим инженером-строителем человека, который не владеет сопроматом, не знает про современные строительные материалы и особенности их применения, даже если на текущем объекте строительства они не используются? Можно ли признать хорошим актёром того, кто день за днём играет одну и ту же роль, не знает о современных тенденциях в театральном искусстве и не пытается попробовать себя в других амплуа?
Хороший специалист должен обладать достаточно широкими знаниями. Да, он глубоко изучает какую-то одну тему, специализируется в каком-то направлении, но при этом он должен представлять себе общую картину своей профессиональной области. Если он не будет это делать -- мир уйдёт вперёд, его узкая тема окажется устаревшей и невостребованной, а он ничего другого не знает и не умеет.
Умение создавать автоматизированные тесты предполагает владение специализированными инструментами, которые так и называются "инструменты для автоматизации тестирования". Но знания хорошего специалиста должны охватывать всю область автоматизации. Какие вообще инструменты бывают? Для чего они предназначены? В какой ситуации следует (или наоборот не следует) использовать тот или иной инструмент?
Как выбрать наиболее подходящий для решения задачи инструмент среди множества похожих?
И конечно же надо уметь делать хорошие автотесты. Да, сначала надо научиться понимать, чем "хорошие" автотесты отличаются от "плохих". А потом -- научиться делать "хорошие". Эти правила являются общими, независимыми от конкретного используемого инструмента.
Для тех, кто хочет расширить свой кругозор и получить общие фундаментальные знания в области автоматизации тестирования мы подготовили этот учебный курс.
Портал http://skillswiki.net/ собирает интересную статистику — ребята берут данные из хедхантера и других сайтов для поиска работы и вычленяют нужные в профессии навыки.
Теперь и про тестировщиков аналитику собрали. Тоже прикольно картиночки порассматривать, я работу редко меняю, рынок тоже не мониторю. Что же хотят работодатели? А что, интересненько))
Думаю, было бы прикольно по аналитикам такое собрать
Я полагаю, что качество работы менеджера должно коррелировать с целями бизнеса.
В "Записках автоматизатора" есть интересные варианты целей владельца бизнеса:
Развлеканец . Ключевая фраза, по которой можно отличить этот тип хозяина: «Из-за этого я теряю пять тысяч долларов каждые пятнадцать минут». Время и сумма могут варьироваться – неизменно одно: если вы начнете приставать к такому с просьбой привести расчеты, на которых строится это утверждение (чего я делать очень не рекомендую), то расчетов не дождетесь, но через некоторое время приведете развлеканца в бешенство с тяжелыми последствиями для себя. Традиционное поведение бизнесмена у представителей этого типа претерпело одно маленькое изменение: вместо установок «Заработать кучу денег и развлечься на них» или хотя бы «Развлечься зарабатыванием кучи денег» работает установка «Развлечься своим бизнесом».
Но предположим все таки, что цель - "Заработать деньги". Тогда какие задачи стоят перед менеджментом? Деминг сформулировал задачу так: "Основная задача операционного менеджмента - улучшение качества потока." Звучит не очень понятно. Разобьем на подзадачи.
Насколько я смог понять Деминга и Голдратта предварительный шаг, без которого никак не обойтись это "перевод процесса в статистически управляемое состояние". Звучит тоже не слишком понятно. Если грубо, то в этом состоянии:
Вместо того, чтобы спрашивать подчиненного "чем ты занимаешься", менеджер открывает трекер.
Вместо того, чтобы спрашивать подчиненного "почему задача не сделана в срок", менеджер открывает трекер.
Вместо того, чтобы спрашивать подчиненного "когда закончится проект", менеджер открывает трекер и считает.
Занимаюсь тестирование не столь давно, пока вопросов не возникало.
Но сейчас я в тупике.
Скажите, кто сможет что посоветовать.
Представьте, есть система интернет-банкинга (ИБ). Функционал примерно представляете. Там можно делать платежи, проверять свой баланс, делать переводы и так далее.
Для меня как тестировщика - ИБ представляет собой черный ящик. Доступ только к веб-интерфейсу.
Сам ИБ, а так же его база данных - предоставлен вендором, доступа к нему прямого нет.
Процесс ручного тестирование мануальщиками выглядит так:
- человек логинится
- выбирает платеж к примеру
- заполняет нужные поля (сумма, счет, номер телефона и т.д.)
- нажимает "Продолжить"
- на телефон тестировщика - физический телефон - прилетает СМС, в котором код авторизации
- тестировщик вводит код, платеж проходит
- далее: тестировщик открывает приложение для просмотра операции в бэкенде (это оболочка для базы данных - назовем DBM), в нем проводит закрытие дня для своего счета, делает постилирование и потом появляются проводки, которые он может глазками посмотреть
- далее: открывает банковскую систему (Colvir) и смотрит, появился ли там платеж
Желание бизнеса (не разработчиков) - проверять всю эту цепочку. Я пока могу - довести до платежа. Вскоре, как решу проблему с СМС - провести платеж, подтвердив вводом кода из СМС.
Но дальше: мне надо залезть в DBM, сделать там уже в десктоп приложении нужные действия.
Потом посмотреть еще в Colvir`е- сели ли туда проводки.
Возникает собственно вопрос:
- что бы вы и как бы вы это все тестировали? При условии - что тестовых веб-сервисов нет, заглушки поставить не могу. СМС придется все же читать как-то из телефона ( думаю решить это следующим образом - СМС отправляется на почту, а там уже парсится).
Что у меня есть:
- пишем для веба тесты на Python + Selenium Grid + Allure и все это на jenkins ci крутится. Прогнать тесты для веб части - не проблема. Использую pytest и page object pattern.
- для десктоп приложений - у нас есть купленный HP UFT, под который кстати написан фрейморк на питоне, для запуска из скрипта с передачей параметров.
Спасибо. Если что-то надо уточнить - пожалуйста, жду уточняющих вопросов.
Имеет ли смысл прогонять тест, если шаг подготовки к тесту создал неверные тестовые данные? (в форуме бага, длинное название темы было обрезано)
Объект с несколькими полями ходит по состояниям State1->State2->State3->State4
Проверяем переход State3->State4. Соответственно прогон по состояниям State1->State2->State3 вынесен в инициализацию теста. Объект изменяется в процессе прохода по этим состояниям.
Возник вопрос, как должен вести себя тест, если в переходе State2->State3 ошибка, и одно из свойств объекта рассчитывается некорректно.
Я считаю, что после выполнения шагов инициализации нужно проверить все поля объекта. Если они не совпадают с ожидаемыми, то выполнять проверку шага State3->State4 бессмысленно, так как объект на входе не совпадает с ожидаемыми входными данными теста. Соответственно, все тесты, проверяющие переходы после State3, упадут на инициализации. Тест, проверяющий шаг State2->State3 упадет с ошибкой, на которую заводить баг.
Коллега считает, что если объект дошел до State3, то данный кейс нужно выполнять независимо от корректности значения других полей объекта.
Моя мысль - нельзя ожидать корректной работы в случае несоответствия входных данных тестовому сценарию. Плюсы - явно видно упавший кусок, нет ложных срабатываний тестов. Минусы - не проверяются все последующие куски кода.
Мысль коллеги - будет много упавших тестов, которые могли бы и пройти. По результатам прогона мы получим больше инфы о последующих шагах и сможем выявить ошибки на участке State3->State4.
Моя основная претензия к его подходу - мы можем получить ложное срабатывание теста на функциональность State3->State4, хотя ошибка была в переходе State2->State3. Ошибка будет неявной и потребует времени на разбор. Потребуется разобраться со всеми упавшими тестами, прежде чем заводить ошибку в трекер.
У меня на данный момент аргументы кончились. Я подсознательно считаю, что так делать нельзя, но объяснить почему уже не могу. Может я не прав?