Phone icon Связаться с нами

QA и тестирование

Что такое тестирование программного обеспечения?

Тестирование программного обеспечения (software testing, тестирование ПО) — это проверка того, что программа работает так, как задумано: соответствует требованиям, правильно реагирует на неожиданные данные и не ломается там, где раньше работала. Цель — найти ошибки раньше, чем их найдёт пользователь.

Виды тестирования делят по нескольким признакам. По объекту: функциональное (что делает программа) и нефункциональное (нагрузка, безопасность, удобство). По уровню: модульное, интеграционное, системное, приёмочное. По способу выполнения: ручное и автоматизированное.

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

Где применяется

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

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

Пример

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

Частые вопросы

Какие виды тестирования существуют?

По уровню — модульное, интеграционное, системное, приёмочное. По способу — ручное и автоматизированное. По цели — функциональное, нагрузочное, тестирование безопасности, удобства и совместимости. Набор выбирают под продукт: платёжному сервису и внутреннему справочнику нужны разные проверки.

Можно ли протестировать программу полностью?

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

Чем баг отличается от дефекта и ошибки?

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

Когда нужно начинать тестирование?

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

Обучение тестированию в OWU

Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.

Выбрать курс