Зачем Git тестировщику

c919c15cb47970429261375b022dec0c.png

Привет, меня зовут Даша Суркова, я наставник на курсе «Инженер по тестированию плюс» и ведущий инженер по контролю качества в компании «Мой спорт». Я была первым QA на проекте, собеседовала и менторила своих будущих коллег, и мы вместе поднимали тестирование. Сейчас я большую часть времени занимаюсь тестированием мобильных приложений.

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

Что такое Git

Git — это система контроля версий: она хранит историю изменений проекта и позволяет ей управлять. Одно из самых важных преимуществ Git — возможность удобно работать над проектом нескольким участникам команды: каждый из них видит, кто и когда внёс изменения в код. Например, если изменения внесены в одном и том же участке кода разными разработчиками, Git об этом предупредит и поможет решить это пересечение кода или, если в терминологии Git’а, — решить конфликт.

Общение с Git происходит через команды в командной строке: с их помощью можно, например, сохранить изменения, отправить их в удалённый репозиторий или получить из него свежие изменения от других разработчиков. Также существуют программы, предоставляющие графический интерфейс для работы с Git. Они облегчают работу, ведь вместо ручного ввода команд можно просто нажать на кнопку.

Зачем Git тестировщику

В первую очередь Git необходим тестировщикам, которые занимаются автоматизацией тестирования. Для них использование Git практически идентично тому, как им пользуются разработчики: с помощью Git над одним проектом могут работать несколько тестировщиков. Код автотестов может находиться в общем репозитории или даже лежать в коде самого приложения.

Ручным тестировщикам тоже полезно знать хотя бы основы Git: на многих проектах они имеют доступ к удалённому репозиторию кода своего приложения. У них может возникнуть необходимость скопировать себе репозиторий или просто посмотреть какие-то данные в нём.

Часто тестировщикам приходится переключаться между разными версиями, или ветками, приложения — это тоже можно делать командами Git. Если вы сами попробуете работать с ветками через Git, у вас сформируется более чёткое представление о моделях ветвления.

Понимая Git и модель ветвления на своём проекте, тестировщик сможет отслеживать актуальность веток. Таким образом он будет уверен, что тестирует самую свежую версию приложения.

Предположим, вы получили свежую версию приложения, начали её тестировать и поймали сбой. Увидев историю изменений, которую для вас заботливо хранит Git, вы сможете выяснить, чей именно коммит вызвал этот сбой, и обратиться к конкретному разработчику. Коммит — это зафиксированные изменения.

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

Чем ещё полезен Git

Помимо практического применения, базовое знание Git и его основных команд поможет лучше понимать разработчиков и говорить с ними на одном языке. Например, от разработчиков нередко можно услышать фразы «я спулил изменения», «запушил фикс», «поймал конфликт» — всё это из терминологии Git.

Небольшое отступление, чтобы вас не томить: «спулил изменения» значит «забрал из удалённого репозитория изменения, сделанные другими разработчиками». «Запушил фикс» — отправил исправления в удалённый репозиторий. «Поймал конфликт» — столкнулся с пересечениями в изменениях кода.

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

С помощью Git можно хранить и изменять файлы совершенно разных форматов — это не обязательно код на каком-то языке программирования. Например, на GitHub любой человек может создать репозиторий и хранить там своё портфолио или базу знаний. Например, вы создавали тест-кейсы и хотели бы их приложить к резюме — выложите их на GitHub и дайте работодателю ссылку на репозиторий. Это здорово продемонстрирует ваши скилы (навыки).

Знание Git хотя бы на базовом уровне помогает решать задачи самостоятельно и не обращаться к разработчикам для совершения рутинных действий. Например, если нужно менять простую настройку тестового окружения в конфигах, тестировщик со знанием Git может сам внести изменения, закоммитить, запушить и продолжать тестирование. Это и быстрее, и удобнее для всех сторон.

Когда начинать изучать

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

  • По моему опыту, если тестировщика подключают к уже работающему проекту автотестов, то первое, что ему нужно сделать, — забрать проект из репозитория. Если проект уже живёт, на нём работают несколько человек, то наверняка существует удалённый репозиторий. Здорово, если тестировщика не введёт в ступор этот первый шаг — склонировать проект.

  • Если тестировщик совсем не разбирается в Git, он будет тратить время на его изучение. Вначале его будут тормозить даже базовые вещи: что вообще значит «склонировать проект», как установить Git, как менять настройки. Если тестировщик уже знает хотя бы базу, он сможет быстрее погрузиться в работу.

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

В интернете много бесплатных гайдов, видео и курсов для изучения Git — можно выбрать любой формат, который покажется ближе и интереснее. Например, бесплатный курс «Основы работы с Git» учит принципам Git на примерах реальных задач. Он подойдёт абсолютным новичкам и всем, кому интересно погрузиться в тему.

Почему Git — первый шаг к автоматизации

В автоматизации тестирования есть человекочитаемые языки, например Gherkin. Он используется для описания сценариев тест-кейсов для автотестов. Это не код приложения, а, по сути, обычный текст. Писать на таком языке может кто угодно, для этого не нужны специальные знания. Пример тестового сценария на Gherkin:

Scenario: Successful registration

Given I am on the registration page  

When I enter username "admin”

And I enter password "password” 

And I confirm password

And I click the register button

Then The successful registration page is opened

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

Важен ли Git для трудоустройства

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

Если тестировщик планирует уходить в автоматизацию, то владение Git — это базовый навык. Например, в моей компании мы искали всех QA с навыками автоматизации. Такие тестировщики могут спокойно забрать себе проект и сразу начать погружение в автотесты. 

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

© Habrahabr.ru