Разделы портала

Онлайн-тренинги

.
Автоматизация тестирования: нужно ли изучать теорию?
13.10.2015 14:17

Зачем тестировщику-автоматизатору учить теорию? Может быть достаточно освоить какой-нибудь популярный инструмент, например, Selenium или TestComplete? Выучить какой-нибудь язык программирования, например, Java или Python? И никакая теория не нужна.

Но подождите! Раз уж зашла речь о программировании ("выучить какой-нибудь язык") -- давайте посмотрим, как там обстоят дела с теорией.

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

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

Но через некоторое время оказывается, что помимо алгоритмов языки содержат конструкции для описания классов -- и тогда приходится снова возвращаться к теории, чтобы понять суть объектно-ориентированного подхода. Это тоже достаточно универсальная идея, которая применяется во многих языках программирования, хотя может выглядеть очень по разному.

Освоив принципы работы с классами и объектами, человек получает в руки новый мощный инструмент. Он уже не только алгоритмы пишет, он строит архитектуру приложения. Это позволяет писать более сложные программы.

Но ещё через какое-то время выясняется, что архитектура местами получается какая-то кривая, костыли подпирают её тут и там. И приходится снова возвращаться к теории -- читать книжки про шаблоны проектирования, изучать типовые приёмы, учиться избегать стандартных ошибок проектирования.

И эти колебания от теории к практике и обратно могут повторяться многократно. Потому что есть ещё много интересного, выходящего за рамки отдельно взятого языка программирования.

А когда вы разрабатываете автоматизированные тесты -- к общей теории программирования добавляется ещё и специфическая дополнительная теория.

Во-первых, надо уметь проектировать тесты.

 

Во-вторых, для создания автотестов используются специальные фреймворки, которые построены на общих принципах, и понимание этих принципов позволяет более эффективно эксплуатировать возможности фреймворков.

В-третьих, есть особые шаблоны проектирования, применяемые именно для создания тестов, и они также позволяют избежать стандартных ошибок.

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

Все помнят высказывание Суворова про то, что теория без практики мертва. Но не все помнят, что на самом деле великий полководец говорил так: "Теория без практики -- мертва, практика без теории -- слепа".

До недавного времени мы проводили только “практические” тренинги для тестировщиков-автоматизаторов, нацеленные на освоение конкретных инструментов (Selenium, TestComplete), языков программирования (Java, C#, Python), тестовых фреймворков (JUnit и TestNG).

Но в какой-то момент мы осознали, что не хватает какого-то связующего звена, тренинга, в котором рассматривались бы общие принципы, который был бы полезен и интересен всем тестировщикам-автоматизаторам, независимо от того, на каком языке они пишут и какими инструментами пользуются.

И мы сделали такой тренинг, который называется просто “Автоматизация функционального тестирования”.

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

Если вы уже немного умеете пользоваться каким-нибудь инструментом -- вам будет интересно сравнить выбранный инструмент с другими, понять, какое место он занимает в общей картине мира, как его можно интегрировать с другими инструментами и какую пользу это может принести.

Если вы считаете себя достаточно опытным автоматизатором -- попробуйте проверить себя, может быть найдутся ещё такие области, в которых вы обнаружите для себя что-то новое.

Первый запуск нового тренинга – 25 ноября, не пропустите, обычно первая группа самая активная и в ней учиться максимально интересно :-)