QA и тестирование
Что такое тестирование программного обеспечения?
Тестирование программного обеспечения (software testing, тестирование ПО) — это проверка того, что программа работает так, как задумано: соответствует требованиям, правильно реагирует на неожиданные данные и не ломается там, где раньше работала. Цель — найти ошибки раньше, чем их найдёт пользователь.
Виды тестирования делят по нескольким признакам. По объекту: функциональное (что делает программа) и нефункциональное (нагрузка, безопасность, удобство). По уровню: модульное, интеграционное, системное, приёмочное. По способу выполнения: ручное и автоматизированное.
Полностью протестировать программу невозможно: комбинаций входных данных бесконечно много. Поэтому работа тестировщика — это выбор: техники тест-дизайна помогают покрыть больше всего рисков ограниченным количеством проверок.
Где применяется
Тестирование происходит на всех уровнях одновременно. Разработчик покрывает логику модульными тестами, автоматизатор проверяет связи между сервисами и ключевые сценарии пользователей, а ручной тестировщик исследует новую функцию и ситуации, которые сложно предусмотреть заранее.
Отдельные виды проверок добавляют по необходимости: нагрузочное тестирование перед распродажей, тестирование безопасности для платёжных сервисов, проверку доступности для государственных порталов, совместимость с разными браузерами и устройствами для массовых продуктов.
Пример
Форма заказа работает, пока в неё вводят ожидаемые данные. Тестировщик пробует пустое имя, телефон с буквами, отрицательную сумму и двойное нажатие кнопки — и находит сценарий, при котором заказ создаётся дважды, а деньги списываются один раз.
Частые вопросы
Какие виды тестирования существуют?
По уровню — модульное, интеграционное, системное, приёмочное. По способу — ручное и автоматизированное. По цели — функциональное, нагрузочное, тестирование безопасности, удобства и совместимости. Набор выбирают под продукт: платёжному сервису и внутреннему справочнику нужны разные проверки.
Можно ли протестировать программу полностью?
Нет, и это базовый принцип профессии. Количество возможных комбинаций данных и сценариев практически бесконечно. Поэтому задача не «проверить всё», а правильно выбрать проверки: там, где ошибка наиболее вероятна и где её последствия для бизнеса серьёзнее всего.
Чем баг отличается от дефекта и ошибки?
В строгой терминологии ошибка — это действие человека, дефект — её след в коде или документации, а отказ — видимое неправильное поведение системы. В ежедневной работе «баг» используют как общее слово для дефекта, и это вполне нормально.
Когда нужно начинать тестирование?
Как можно раньше — лучше всего с требований, ещё до написания кода. Ошибку в требованиях исправляют изменением формулировки. Та же ошибка после релиза стоит в разы дороже: переделка, повторное тестирование и испорченное впечатление пользователей.
Обучение тестированию в OWU
Освойте профессию QA-инженера на практических курсах с менторами и реальными проектами.
Выбрать курс