Рассказываем про необходимый минимум
Продолжаем рассказывать о профессиях и технологиях, которые сейчас востребованы на ИТ-рынке. Недавно говорили о веб-разработке: что нужно уметь и какие там есть направления. Сегодня обсудим тестирование и инструменты, которые для этого понадобятся.
Мы посмотрим на обновлённый курс Яндекс Практикума «Инженер по тестированию: от новичка до автоматизатора». Мы по очереди разберём все инструменты и технологии тестирования и расскажем, зачем нужна каждая из них.
Кто такой инженер по тестированию
Задача инженера по тестированию — сделать так, чтобы в цифровом продукте не было сбоев. Проще говоря, найти ошибки. Звучит просто, но есть нюансы:
- Цифровые продукты становятся всё сложнее: там множество взаимосвязанных функций, сценариев, экранов и скрытой логики. Чем больше продукт, тем больше там всего может пойти не так.
- Один и тот же продукт может работать на множестве устройств и во множестве сред. Например, один и тот же интернет-банк может работать как веб-приложение на айфоне, как мобильное приложение на Андроиде и как навык для Алисы.
- Притом что айфонов может быть пять разных версий, а ещё пять версий айпадов с разными размерами экрана.
- А Андроидов будет ещё бесконечное количество версий в разных оболочках. И всё это общается с одним и тем же сервером.
- И помножьте это на 200+ экранов самого интернет-банка.
- Плюс сами приложения обновляются ритмично: каждые 2–3 недели накатывают маленькие изменения и исправляют ошибки.
Получается, нужно взять в среднем 5 кнопок на экране, помножить их на 200 экранов и помножить на 50 платформ (условно говоря). И всё это тестировать каждые 2–3 недели, но очень быстро: чтобы от готового кода до выкаченного продукта проходило минимум времени.
Разумеется, существенная часть этого делается не руками, а автоматически. И вот эту автоматику нужно настроить и поддерживать в работоспособном состоянии.
Инженеров по тестированию называют QA-инженерами, где QA — это сокращение от quality assurance, что означает «контроль качества». Также есть QC-инженеры — quality control, контролёр качества, они смотрят за тестированием самого продукта. Но название профессии мало на что влияет — всё будет зависеть от того, что специалист умеет и какими технологиями владеет.
Читайте подробнее:
Кто такой инженер по тестированию
Технологии: JSON, XML и XSD, SQL
Эти технологии — самые частые в работе тестировщика, без них в профессии работать не получится.
JSON — JavaScript Object Notation. Это способ передать структурированные данные от одной программы к другой, используя при этом строку текста. В этой строке зашифрованы объекты, их свойства и значения. Тестировщики смотрят на обмен JSON-сообщениями между программами, чтобы понять, нет ли ошибок в передаче данных.
Читайте подробнее:
XML, XSD — это сокращения от eXtensible Markup Language и XML Schema Definition. Смысл этих технологий в том, чтобы выстроить внутри документа логическую структуру — чтобы было видно, что к чему относится и как всё связано между собой, в каком формате представлены данные.
SQL— Structured Query Language, язык структурированных запросов, он нужен для работы с базой данных. «Структурированный» означает, что каждый запрос должен иметь определённую структуру, чтобы база поняла, как на него реагировать. С помощью SQL-запросов можно делать что угодно: создавать и изменять таблицы, настраивать связи между ними, а главное — искать то, что нужно, по любым параметрам.
Автоматизация тестирования: JUnit, Jenkins, Selenide, Selenium WebDriverd
Сила тестировщика — в автоматизации, когда код можно сразу проверить по многим параметрам и тут же получить ответ, работает он нормально или нет.
JUnit — фреймворк для автоматизации тестирования для Java. Считается базовым инструментом тестирования, потому что многие другие программы для тестов по логике очень напоминают работу с JUnit.
Jenkins — приложение, которое помогает автоматизировать разные этапы работы с кодом — например сборку и анализ. Если новый код прошёл все тесты и получил одобрение на всех этапах, Jenkins может автоматически добавить его в новую версию программы.
Selenium WebDriver — программа, которая позволяет имитировать действия пользователей в браузере. Нужна, чтобы автоматизировать тестирование графического интерфейса веб-приложений. Вместо того чтобы нажимать на кнопки на сайте руками, это можно поручить программе и сразу найти, что работает не так.
Selenide — фреймворк для тестирования веб-приложений на основе Selenium WebDriver. В нём уже есть готовые куски автотестов, из которых, как из конструктора, можно быстро собирать нужные тесты.
Тестирование: зачем тыкать на 1 000 кнопок в секунду
Тестирование API и трафика: REST Assured, apiDoc и Swagger, Postman, Charles
Кроме обмена JSON-данными, программы и сайты часто общаются между собой по API. API — это аббревиатура от английского Application Programming Interface, интерфейс программирования приложения. Проще говоря, это то, что может делать приложение по просьбе других приложений.
Само по себе приложение, сервис или программа не умеют работать с другими программами. Разработчик должен научить программы общаться между собой, и для этого нужны API.
REST Assured — Java-библиотека для тестирования REST API, а REST API — это способ общения сайтов и веб-приложений с сервером. REST Assured имитирует запросы приложений и смотрит, что ответит сервер. Если сервер ответит что-то не то — скорее всего, где-то ошибка.
apiDoc и Swagger — инструменты документации API. С их помощью тестировщики узнают, какие сообщения, какого содержания и в какие части приложения можно отправлять. Это как большие справочники, куда можно посмотреть и понять, как работать с разными сервисами.
Postman — инструмент для тестирования API. Части приложения обмениваются сообщениями, а Postman позволяет тестировщику самому создавать эти сообщения, отправлять их в разные части приложения и проверять, что всё работает правильно.
Charles — приложение, которое позволяет просматривать трафик и подставлять в него тестовые значения. С ним можно изменить трафик, чтобы посмотреть, что будет делать приложение при некорректном ответе от сервера или, наоборот, какой ответ присылает сервер при некорректном запросе.
Какой софт нужен, чтобы стать тестировщиком
Рабочие инструменты: Git, IntelliJ IDEA, Android Studio
Тестировщик должен уметь оформить и проверить результаты своей работы так, чтобы это было понятно остальным. Для этого он использует те же инструменты, что и программисты: среду разработки и систему контроля версий.
Git — система контроля версий. Помогает работать с кодом в команде и сохранять историю изменений.
IntelliJ IDEA — интегрированная среда разработки, в которой можно писать, компилировать и отлаживать код. Считается довольно сложной, но крутой — для неё есть плагины на все случаи жизни. Некоторые программисты даже говорят, что не запускают на компьютере ничего, кроме IntelliJ IDEA.
Вот наш обзор инструментов крутых программистов
Android Studio — программа, которая позволяет имитировать работу мобильного устройства с разными параметрами и функциональностью. Программисты пользуются ей для разработки приложений для смартфонов, а тестировщики — для проверки программ без установки на настоящие телефоны.
Вот наша статья про Android Studio
Прикладные инструменты: Allure, Maven
Allure — инструмент, в котором можно формировать наглядные отчёты о тестировании. Работает так: вы собираете все автотесты, на которых нужно проверить программу, закидываете их в Allure, а на выходе получаете полный отчёт о том, как сработал каждый тест, что он делал и на каких этапах появились ошибки.
Maven — система сборки для Java. Помогает подготовить код к запуску, например скомпилировать и запустить тесты.
Словарь тестировщика: автотесты, юнит-тесты и другие важные слова
Сколько платят
Средняя зарплата тестировщика на сегодня — 180 тысяч рублей.
Джуниоры в среднем получают 65 тысяч, мидлы поопытнее — 160 тысяч. Перейти из джуниоров в мидлы можно за полгода плотной работы в тестировании. Прочитайте также наш свежий обзор зарплат в ИТ.
А ещё можно работать тестировщиком и совмещать это с учёбой — главное, чтобы вы успевали выполнить все тесты и зафиксировать нужный результат.
Где научиться
Самый простой способ стать тестировщиком — пройти курс Яндекс Практикума «Инженер по тестированию: от новичка до автоматизатора». Начать учиться можно бесплатно, с другой учёбой или работой совмещать тоже получится.