Скидка 700 BYN
на все курсы до 31 мая!
4 ноября

Тестировщик в IT — чуткий гарант качества продукта

В плане подготовки тестировщиков, TeachMeSkills — не IT-школа, а полноценный университет. Мы учим студентов проверять программы, сайты и приложения вручную или с помощью популярных языков программирования вроде Java, Python, JavaScript и C#. Рынок тестирования софта в 2022 году оценили в $45 млрд, а ожидаемые темпы его роста в период с 2023 по 2032 год составят 5%. Человек, освоивший профессию, без работы не останется.

Мир не идеален, люди не идеальны, в манной каше — комочки, а на какао — пенка. С программным обеспечением дела обстоят точно так же — только что созданные и достаточно старые десктопные, мобильные и веб-приложения наполнены ошибками, от которых необходимо избавляться всеми доступными способами. На помощь приходят QA-инженеры (от англ. quality assurance — «обеспечение качества»), отвечающие за дотошное погружение в продукт с целью подтверждения его работоспособности.


Зачем тестировать программы, сайты и приложения

Чтобы понять, зачем нужны эксперты по ручному и автоматизированному тестированию, разберем теоретический цикл разработки программы:

  1. Образцовый продакт-менеджер создает идеальный спек (документацию, которая рассказывает, как должен вести себя софт).Образцовый дизайнер, применяющий продвинутые инструменты (о них мы рассказывали здесь), рисует продуманные до малейших деталей мокапы.
  2. Образцовый техлид уровня Билла Гейтса и Брендана Айка (создателя языка JavaScript) распределяет задачи между членами идеальной команды.
  3. Образцовые разработчики пишут идеальный код, проверяют его и составляют техническую документацию.
  4. Образцовый продукт выходит в продакшн и начинает решать коммерческие задачи — все довольны и счастливы, льются слезы умиления.

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

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


Ручное тестирование мобильных и веб-приложений

Ручное тестирование — это процесс поиска ошибок в приложении без использования инструментов автоматизации и применения языков программирования. Эксперт открывает программу и имитирует действия рядового пользователя, стремясь охватить максимальный объем функций. Он проверяет бизнес-логику, надежность, удобство и визуал, а затем фиксирует проблемы в баг-репортах (отчетах, на основании которых разработчики будут все исправлять).

Специалисту по ручному (мануальному) тестированию не обязательно уметь кодить — он составляет тест-кейсы и описывает последовательности действий без знания языка программирования. В числе его ключевых хард-скилов:

  • теория тестирования — техники тест-дизайна, виды проверок, способы локализации ошибок и методология разработки ПО;
  • прикладные инструменты — для веб-приложений Chrome DevTools и его аналоги, для API — Postman или SoapUI;
  • ведение тестовой документации — Allure TestOps, Testlink, Testrail, TestIT или, например, Cayman;
  • базы данных — у любого приложения есть своя БД, поэтому экспертам приходится работать с SQL;
  • баг-репорты — нужно уметь составлять документы с информацией об ошибках, причинах их появления и способах локализации.

Может показаться, что ручное тестирование — пережиток прошлого и совершенно ненужная вещь в мире с повальной автоматизацией и нейросетями. На практике дела обстоят совсем по-другому. Автоматизаторы хорошо показывают себя на длинной дистанции — при сроках разработки и существования проекта от года и больше. На коротких проектах предпочтение всегда отдается тестировщикам «ручного калибра».
«Я всегда говорил о том, что мануальщики никуда не пропадут. У людей есть те самые когнитивные функции — люди могут определять, что перед ними находится. Машина, тестовый скрипт, компьютер или даже искусственный интеллект действует так, как ты ему скажешь, и смотрит на те элементы интерфейса, на которые ты ему указал», — Дмитрий Рак, преподаватель курса автоматизированное тестирование на Java в TMS.
Автоматизированное тестирование

Тем, кто тестированием не занимался, кажется, что это очень просто — понажимал на кнопки, нашел пару ошибок, передал информацию девелоперу, и все. На практике дела обстоят по-другому. QA-инжиниринг — это сложная и творческая профессия на стыке IT, UX-дизайна, продуктового менеджмента и даже аналитики. С наиболее интересной стороны она раскрывается с помощью инструментов автоматизации.

Автоматизатор — это специалист по тестированию софта, занимающийся созданием сценариев для проверки программ и приложений. Его хард-скилы зависят от направления работы: писать скрипты QA-инженеры предпочитают на Java, Python, JavaScript и C#. Обходиться без знания языка программирования им не удается — ЯП применяется при выполнении повторяющихся тестов, в проектах с большим количеством тест-кейсов и при работе с внушительными объемами данных.


Автоматизация на Java

Java — язык программирования, который остается актуальным в течение последних 25+ лет. Платформа, созданная Джеймсом Гослингом в 1995 году, до сих пор входит в пятерку лидеров по уровню востребованности и популярности. С ее помощью пишут веб-приложения, промышленные, банковские и научные программы, а также корпоративный софт и инструменты для работы с Big Data. С использованием возможностей «Джавы» эксперты создали Netflix и Tinder, систему электронной торговли для Goldman Sachs и звездную игру Minecraft.

Автоматизаторы, использующие «Джаву», занимаются тем же, чем занимаются остальные автоматизаторы. Большой специфики языка здесь нет — эксперты разрабатывают сценарии для тестирования на уровне API, а также для десктопных, мобильных и веб-приложений.

В числе хард-скилов QA-инженеров, работающих с Java:

  • база языка — операторы, циклы, коллекции и все, что касается объектно-ориентированного программирования;
  • инструменты для автоматической сборки проектов и тестирования— Maven, JUnit и/или TestNG;
  • библиотеки для взаимодействия с объектами тестирования — Selenide и Selenium для веба, Appium для мобильных приложений, REST Assured для API;
  • инструменты для построения отчетов автотестов —Allure или Report Portal;
  • системы непрерывной интеграции для запуска тестов в облаке — например, GitHub Actions или Jenkins.
      «В плане автоматизации «Джава» от Python или C# практически не отличается. Java — более громоздкий язык, который существует дольше, чем перечисленные ранее. Поэтому семейство написанных для него библиотек гораздо шире — соответственно, шире и возможности. К примеру, ни один язык не позволяет автоматизировать процесс тестирования мобильных приложений так комфортно, как Java» — Дмитрий Рак, преподаватель курса автоматизированное тестирование на Java в TMS.
      Автоматизация на Python

      В феврале 1991 года Гвидо ван Россум опубликовал исходный код нового на тот момент языка программирования, получившего название Python. Сотрудник центра математики и информатики в Нидерландах даже не предполагал, какую популярность приобретут его идеи. О том, насколько современным и актуальным получился «Пайтон», и почему о нем кричат из всех утюгов, мы рассказали здесь.

      Во власти «Питона» сегодня три сферы — веб-разработка, автоматизация рабочих операций и процессов, а также машинное обучение и аналитика данных. В списке хард-скилов Python-автоматизаторов:

      • знания о тестировании — техники тест-дизайна, виды тестов и способы локализации багов;
      • методология разработки программного обеспечения и фреймворков — для понимания, как должны работать те или иные продукты;
      • паттерны проектирования автотестов — синтаксис языка, библиотеки, алгоритмы и структуры данных;
      • декларативный язык программирования SQL для работы с базами данных и софт для развертывания приложений Docker;
      • библиотеки для взаимодействия с объектами тестирования — например, фреймворк Selenium, с помощью которого проверяют веб-приложения;

      С последним пунктом списка (тем, что о «Селениуме»), ты уже встречался — в разделе про автоматизацию на Java. Этот фреймворк, как и другие тулзы QA-инженеров, универсален. Им пользуются и специалисты, владеющие «Питоном», и эксперты, применяющие в работе JavaScript. Даже непосредственный язык программирования для тестировщика — не более чем инструмент, и в выборе между «шарпами» и «Джавой» особой разницы нет.
          «Python-автоматизатор, занимается всем, что можно придумать и применить к слову «автоматизация». В первую очередь — автоматизирует тесты для проверки UI-интерфейсов и бэкенда с API. Во вторую — генерирует данные, собирает информацию о работе софта и выполняет рутину вроде поиска логов в Linux. Есть куча мелких задач, к которым можно приложить руку и сделать свой труд интереснее» — Евгеник Окулик, преподаватель курса автоматизированное тестирование на Python в TMS.
          Автоматизация на JavaScript

          JavaScript — это язык программирования, используемый веб-разработчиками для создания десктопных и веб-приложений. Мобильные и сетевые платформы, интернет-магазины, боты для мессенджеров и разнокалиберные порталы (от Groupon до eBay) — вот лишь малый список проектов, реализованных с помощью инструментов и возможностей JS.

          JS-автоматизаторы, как и другие автоматизаторы, пишут скрипты и сценарии для тестирования айти-продуктов. В числе их ежедневных задач:

          • автоматизация ручных тестов — на уровне UI и API;
          • выгрузка результатов тестирований — создание отчетов;
          • настройка CI/CD-процессов — прогоны тестов по расписаниям и триггерам;
          • инспекция кода — Code Review для обнаружения и исправления ошибок;
          • участие в Scrum-церемониях — стендапах, ретроспективах и митингах.

          QA-инженер, владеющий JavaScript и желающий справляться с обязанностями на качественном уровне, должен выучить:

          • синтаксис языка — типы данных, способы объявления переменных, контекст и функции;
          • основы объектно-ориентированного программирования — классы, наследования, модификаторы доступа;
          • правила составления тест-кейсов — с заведением отчетов о дефектах и анализом требований;
          • способы выполнения и автоматизации API-тестов — владение Postman и SoapUI, понимание Axios, Supertest, Superagent и Node Fetch;
          • правила обращения с браузерными DevTools — вкладки Console, Sources и Network;
          • паттерны автоматизации — инструменты вроде PageObject, PageFactory и Singleton;
          • синтаксис хотя бы одной библиотеки e2e-тестирования — WebdriverIO, Cypress или Playwright;
          • понимание теории реляционных баз — умение составлять SQL-запросы и обращаться с БД в принципе.

              «В плане автоматизации тестирования, JavaScript проще Java и C#, но сложнее Python. С «Пайтоном» его, кстати, роднит структура — оба языка считаются скриптовыми. Кроме того, Python и JS — это интерпретируемые языки, а не компилируемые, как Java и C# — с их помощью писать и отлаживать код немного легче», — Влад Селих, преподаватель курса автоматизированное тестирование на JavaScript в TMS.


              Автоматизация на C#

              Согласно индексу TIOBE, C# — пятый по популярности язык программирования в мире. Без «шарпов» не обходятся ни банки, ни диджитал-агентства, ни крупные IT-компании. Продукт, разработанный инженерами компании Microsoft, успел отметиться даже в геймдеве — скрипты на игровом движке Unity разрабатывают с использованием возможностей C# (Pathfinder: Kingmaker и Subnautica — яркие примеры звездных проектов, собранных на «шарпах» и «юнити»).

              QA-инженеру, желающему применять в работе инструменты «си-шарпа», придется выучить:

              • синтаксис языка и ООП — наследования, классы, объекты, полиморфизмы, конструкторы, методы и сеттинги;
              • библиотеки для взаимодействия с объектами тестирования — RestSharp для бэкенда, Selenium для веба;
              • тулзы для ведения тестовой документации и создания отчетов — Allure TestOps, Testlink или Testrail;
              • инструмент для логирования действий — гибкая и бесплатная платформа ведения журнала NLog;
              • системы CI/CD — Jenkins, CircleCI, Azure DevOps, для запуска тестов по расписаниям и триггерам;

                  «Автоматизаторы, владеющие языком C#, конечно же, востребованы. «Шарпы» — топовый язык, входящий в десятку лучших и продолжающий набирать обороты. Для него появляются новые тулзы (например, Selenium-подобная библиотека для сквозного веб-тестирования и автоматизации Playwright), существенно расширяющие возможности базовой экосистемы. Свою актуальность C#, в связке с написанными для него инструментами, не будет терять на протяжении многих лет», — Александр Тростянко, преподаватель курса автоматизированное тестирование на C# в TMS.

                  Язык автоматизации — это инструмент, выбор которого зависит от особенностей проекта. Если весь продукт написан с помощью C#, то и для прогона автотестов специалисты, скорее всего, прибегнут к «шарпам».

                  Начинающим QA-инженерам не стоит бояться компаний, использующих неизвестные им языки. Практически всегда ЯП для автоматизации выучивается на уровне базы — перейти с одного на другой можно за пару недель. Прочие инструменты у автоматизаторов, владеющих разными языками, совпадают — например, практически во всех проектах балом правит фреймворк Selenium.


                  Как стать специалистом в области автоматизированного или ручного тестирования в 2023 году

                  По данным интернет-издания devby.io, Junior QA Engineer/Tester (новичок, только что окончивший курсы), может претендовать на должность с зарплатой $700. У эксперта среднего уровня (QA Automation Engineer, соответственно) заработная плата увеличивается до $1 890. Зарплаты мануальных тестировщиков и автоматизаторов в Европе выглядят интереснее — на сайте Glassdoor опубликовано порядка 20 тыс. вакансий с зарплатой от $33 000 до $127 000 в год.

                  Освоить теорию и практику ручного тестирования и автоматизации можно в IT-школе TeachMeSkills, под руководством специалистов и действующих сотрудников международных компаний вроде iTechArt, Customertimes, EPAM, Kontur, ITS Partner, OrionSoft и WM Reply. Кстати, у каждого из наших преподавателей есть темные очки на тот случай, если на курс запишется такое солнышко

                      #Входи в айти вместе с TeachMeSkills. По промокоду "ТЕСТЫ0411" мы дарим тебе скидку в размере
                      100 BYN на любой из курсов по тестированию.


                      *бонус будет действовать только при первичном обращении и последующем заключении договора
                      Над материалом работал Михаил Агеев
                      Понравился материал? Поделись им с друзьями!

                      Стань востребованным IT специалистом

                      Наша цель — дать тебе знания и опыт, достаточные для трудоустройства в крупнейшие IT компании.