Баннер мобильный (3) Пройти тест

Что такое тестирование ПО, зачем оно нужно и кто им занимается

Гид для тех, кто хочет стать тестировщиком, но не знает, с чего начать

Разбор

2 марта 2024

Поделиться

Скопировано
Что такое тестирование ПО, зачем оно нужно и кто им занимается

Содержание

    Профессия тестировщика считается самой доступной для входа в IT. Но так ли это? Чем на самом деле занимаются тестировщики? И что будет, если не проводить тестирование ПО? Рассказываем в этой статье.

    Что такое тестирование

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

    1. Составление ТЗ.
    2. Проектирование.
    3. Разработка.
    4. Тестирование продукта.
    5. Запуск и поддержка.

    Тестирование — это этап, на котором программу проверяют на ошибки: где она работает не так, как задумано. Это необходимо, чтобы вас неожиданно не выкинуло из корзины интернет-магазина во время покупок или игра не зависла на решающей схватке с «боссом».

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

    Для чего нужно тестирование ПО

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

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

    Как тестируют программное обеспечение

    Несмотря на то, что тестирование продукта — это этап перед самым запуском, работа тестировщика начинается уже на старте проекта, до разработки. Тестировщики составляют важные документы:

    • тест-план (test plan) — общий список работ для отдела тестирования;
    • чек-лист (check list) — список того, что именно нужно проверить;
    • тестовый сценарий (test case) — перечень шагов для проверки конкретных функций программы.

    Когда первая версия программы будет готова, начнется дымовое тестирование. На этом этапе важно понять, запускается ли программа, как она выполняет свои основные функции. Если тестировщики найдут баги — ПО вернут обратно на доработку. Если все работает как надо — продолжат тесты. 

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

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

    Мой рабочий день обычно выглядит так: по дороге на работу, если получается, слушаю курсы, уроки. Работа начинается в 9:15. Первым делом разгребаю обращения от сотрудников дирекции по работе с клиентами: повторно проверяю, воспроизводятся ли баги, записываю в Trello, если нужно, смотрю дополнительную информацию через запросы SQL. В 11 утра открывается биржа, до этого мне нужно проверить работоспособность инвестиционного приложения. Далее, если у разработчиков готова фича и нужно протестировать локально, то тестирую. Очень мотивирует то, что участвуешь в создании продукта, а исправленные баги повышают его качество.

    Ерлан Байдильдин
    тестировщик в Jusan Invest

    Типы и виды тестирования

    Большая часть ошибок появляется при написании кода. Но некоторые могут возникнуть еще при составлении техзадания. Поэтому код проверяют на всех этапах работы. Есть четыре уровня программного тестирования:

    • модульное тестирование — проводится в самом начале, это проверка отдельных кусочков кода;
    • интеграционное тестирование — проверка связей между готовыми элементами, а также сочетаемости программы с окружающей средой (оборудованием и ОС);
    • системное тестирование — проверяет, соответствует ли программа заявленным характеристикам;
    • приемочное тестирование — согласование продукта с клиентом. 

    Также выделяют разные виды тестирования:

    • статическое — проверка кода и документации без запуска приложения или программы;  
    • динамическое — с запуском ПО. Тестировщики оценивают, долго ли грузятся страницы, сколько оперативной памяти нужно для нормальной работы приложения;
    • функциональное — проверяет, справляется ли приложение с возложенными на него функциями и задачами;
    • нефункциональное — исследует совместимость и производительность компонентов приложения;
    • тестирование «черного ящика» (поведенческое тестирование) — когда тестировщик работает только с интерфейсной частью продукта и не видит его код;
    • тестирование «белого ящика» (структурное тестирование) — когда инженер видит код проекта.

    Принципы тестирования

    Главная задача тестировщика — помнить, что пользователи непредсказуемы и могут совершать действия, не предусмотренные программой. 

    Опытные тестировщики руководствуются в работе этими принципами.

    • Тестирование не гарантирует, что не будет ошибок, но снижает вероятность их возникновения.
    • Полного тестирования не существует. Проверить все физически невозможно. 
    • Тестирование нужно начать как можно раньше.
    • Большая часть ошибок допущена в одних и тех же модулях.
    • Если тестировать продукт по одному и тому же сценарию, то рано или поздно вы перестанете выявлять новые ошибки.
    • Способ и вид тестирования подбирается под конкретную задачу.
    • Отсутствие ошибок при проверке не означает, что продукт готов к запуску. Он все еще может быть неудобным или не закрывать потребности пользователей.

    Как стать тестировщиком

    Тестировщик — одна из самых востребованных профессий в IT. Согласно отчету Хабр.Карьеры, средняя зарплата тестировщиков в 2022 году составила 109 тысяч рублей. QA-лиды могут получать от 200 тысяч в месяц.

    Динамика зарплат айтишников по специализациям
    Статистика зарплат в IT в 2022 году. Источник

    Исследование Skillfactory показало, что работодатели ждут от тестировщиков следующих навыков.

    Языки программирования: Python — для автоматизации тестов, SQL, GraphQL, JSON — чтобы запрашивать нужные данные из базы, HTTP — чтобы искать ошибки в коде сайтов и веб-приложений.

    ПО для разработки: Git — для хранения версий кода, Pytest — для разработки автотестов, Selenium — для автоматизации тестирования веб-приложений, Postman — для тестирования бэкенда сайта, DevTools — чтобы проверять фронтенд сайта.

    Для управления данными: ORACLE, PostgreSQL, Grafana, REST API.

    ПО для управления проектами: Atlassian, Jira.

    Начать изучать тестирование можно самостоятельно, например на бесплатных курсах или на YouTube. Чтобы сократить путь в профессию и научиться необходимым навыкам на практике под руководством ментора из IT, можно пойти на платные курсы.

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

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии