Автоматизация тестирования: нужно ли изучать теорию? |
13.10.2015 14:17 |
Зачем тестировщику-автоматизатору учить теорию? Может быть достаточно освоить какой-нибудь популярный инструмент, например, Selenium или TestComplete? Выучить какой-нибудь язык программирования, например, Java или Python? И никакая теория не нужна. Но подождите! Раз уж зашла речь о программировании ("выучить какой-нибудь язык") -- давайте посмотрим, как там обстоят дела с теорией. Обучение программированию начинается с понимания того, что такое алгоритм. Базовые элементы описания алгоритма одинаковы для множества языков программирования. И если человек один раз понял, что такое условие и что такое цикл -- он сможет узнать их под разными масками в разных языках программирования. После этого, конечно, хорошо бы уже научиться писать на каком-нибудь языке, чтобы эти теоретические знания об алгоритмах применить на практике. Но через некоторое время оказывается, что помимо алгоритмов языки содержат конструкции для описания классов -- и тогда приходится снова возвращаться к теории, чтобы понять суть объектно-ориентированного подхода. Это тоже достаточно универсальная идея, которая применяется во многих языках программирования, хотя может выглядеть очень по разному. Освоив принципы работы с классами и объектами, человек получает в руки новый мощный инструмент. Он уже не только алгоритмы пишет, он строит архитектуру приложения. Это позволяет писать более сложные программы. Но ещё через какое-то время выясняется, что архитектура местами получается какая-то кривая, костыли подпирают её тут и там. И приходится снова возвращаться к теории -- читать книжки про шаблоны проектирования, изучать типовые приёмы, учиться избегать стандартных ошибок проектирования. И эти колебания от теории к практике и обратно могут повторяться многократно. Потому что есть ещё много интересного, выходящего за рамки отдельно взятого языка программирования. А когда вы разрабатываете автоматизированные тесты -- к общей теории программирования добавляется ещё и специфическая дополнительная теория. Во-первых, надо уметь проектировать тесты.
Во-вторых, для создания автотестов используются специальные фреймворки, которые построены на общих принципах, и понимание этих принципов позволяет более эффективно эксплуатировать возможности фреймворков. В-третьих, есть особые шаблоны проектирования, применяемые именно для создания тестов, и они также позволяют избежать стандартных ошибок. И если вы владеете этим общим над-языковым и над-инструментальным пониманием принципов разработки автотестов -- вам будет достаточно легко переключаться с одного языка или инструмента на другой, вы сможете правильно выбирать подходящий инструмент под конкретную задачу, ваши тесты будет легче понимать и поддерживать. Все помнят высказывание Суворова про то, что теория без практики мертва. Но не все помнят, что на самом деле великий полководец говорил так: "Теория без практики -- мертва, практика без теории -- слепа". До недавного времени мы проводили только “практические” тренинги для тестировщиков-автоматизаторов, нацеленные на освоение конкретных инструментов (Selenium, TestComplete), языков программирования (Java, C#, Python), тестовых фреймворков (JUnit и TestNG). Но в какой-то момент мы осознали, что не хватает какого-то связующего звена, тренинга, в котором рассматривались бы общие принципы, который был бы полезен и интересен всем тестировщикам-автоматизаторам, независимо от того, на каком языке они пишут и какими инструментами пользуются. И мы сделали такой тренинг, который называется просто “Автоматизация функционального тестирования”. Если вы чувствуете себя новичком в этой области -- приходите на тренинг, не стесняйтесь, может быть будет не всё понятно, но зато полезно сначала посмотреть на автоматизацию с высоты птичьего полёта, чтобы понять, в каком направлении лучше двигаться, какие инструменты стоит начать изучать и почему. Если вы уже немного умеете пользоваться каким-нибудь инструментом -- вам будет интересно сравнить выбранный инструмент с другими, понять, какое место он занимает в общей картине мира, как его можно интегрировать с другими инструментами и какую пользу это может принести. Если вы считаете себя достаточно опытным автоматизатором -- попробуйте проверить себя, может быть найдутся ещё такие области, в которых вы обнаружите для себя что-то новое. Первый запуск нового тренинга – 25 ноября, не пропустите, обычно первая группа самая активная и в ней учиться максимально интересно :-) |