Перевод и адаптация: Кристина Журавлева (ПрактиТест)
Многие слышали, что разработчики не могут быть хорошими тестировщиками.
Хотелось бы все-таки разобраться почему. В этом мне поможет англоязычная статья Джоэля Монтвелиски. Конечно перевод будет вольным с небольшими отступлениями и моими мыслями на эту тему.
Правда, что вы можете научить собаку нескольким трюкам, но вы уж точно не сможете научить ее летать.
Давайте рассмотрим несколько пунктов по которым разработчикам не суждено стать тестировщиками в привычном понимании этого слова.
1. “Родительские чувства” к коду
Разработчики привязаны к тому, что они пишут. Может быть это прозвучит глупо, но очень сложно оценивать объективно то, что ты создаешь.
2. Акцентирование на позитивных моментах
Работа разработчика основывается на позитивных сценариях и их реализации в продукте. Чтобы работать тестировщиком нужно иметь диаметрально противоположный склад ума, так как тестировщики всегда акцентируются на негативных сторонах продукта нежели чем на позитивных. Следовательно разработчику нужно поменять склад ума, чтобы стать тестировщиком, а это не кажется столь реальным на мой взгляд.
3.Работа на основе принципа упрощения сложных вещей
Рассматривание сложных сценариев с целью нахождения багов является одной из составляющих процесса тестирования. В двух словах мы берем простую вещь и придумываем как ее можно усложнить.
Разработчики поступают ровно наоборот. Они берут сложный процесс или проект и разбивают его на более мелкие компоненты с целью найти решение проблемы.
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений 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,
уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.
У многих тестировщиков, а также и у многих менеджеров, при звуке слов "автоматизация тестирования" в мозгу возникает идиллическая картинка в стиле научно-фантастических романов: роботы выполняют рутинную и тяжёлую работу, а человек занимается интеллектуальным или творческим трудом.
Но это никакая не фантастика, это вполне реально и достижимо!
Да, можно освободить тестировщиков от выполнения некоторых типовых задач, переложив эту работу на плечи роботов. Таких рутинных действий тестировщик совершает больше, чем кажется на первый взгляд. Автоматизировать можно не только собственно выполнение тестов, но и подготовку тестового стенда, генерацию тестовых данных большого объёма или высокой сложности, помощь в проверке результатов, полученных при ручном тестировании (сравнение текстов, картинок), создание отчётов или иных документов.
Однако нельзя просто пойти и купить робота, который начнёт немедленно приносить вам пользу. Можно либо взять "универсального" робота и обучить его, либо взять конструктор и собрать узкоспециализированный автомат для решения ваших конкретных задач.
Процесс внедрения автоматизации – это как раз и есть процесс создания или обучения роботов.
Внедрение автоматизации затрагивает многие стороны процесса разработки. Это отнюдь не чисто инженерная задача, требующая только владения инструментами автоматизации и навыками программирования.
Прежде чем перейти к технической части, необходимо выбрать оптимальную стратегию внедрения и дальнейшего развития автоматизированных тестов. Нужно скоординировать работы по автоматизациями с деятельностью специалистов по ручному тестированию, потому что предстоит провести отбор тестов для автоматизации, а может быть и переработку этих тестов. Предстоит также согласовать свои действия с разработчиками, а может быть даже договориться о специальных доработках тестируемого приложения для более удобной автоматизации.
Ну и конечно без инженеров в этом деле не обойтись. Правильно выбрать средства автоматизации, интегрировать с инструментами групповой работы (баг-трекер, сервер непрерывной интеграции, системы отчётности) – при решении этих технических задач талант инженера-автоматизатора может раскрыться в полной мере.
Но главная опасность подстерегает впереди – рано или поздно станет ясно, насколько оправданным и экономически целесообразным оказалось внедрение автоматизации в тестирование. Нужно будет оценить достигнутые результаты и принять новые решения относительно дальнейшего развития систем автоматизации.
Чтобы научить вас правильно планировать процесс внедрения автоматизации, успешно решать технические задачи и адекватно оценивать текущее состояние процесса мы разработали новый тренинг, особенность которого заключается в том, что его ведут два тренера – "менеджер" и "инженер".
Это позволит вам увидеть проблемы, которые возникают при внедрении автоматизации тестирования, с двух разных (можно даже сказать противоположных) точек зрения.
Тренинг будет полезен всем, кто внедряет с нуля или улучшает текущие подходы к организации автоматизированного тестирования: тест-менеджерам, специалистам по автоматизации и тест-дизайнерам, взаимодействующим с группой автоматизации.