Продукт тестируют в несколько этапов. Сначала проводят модульное или юнит-тестирование. В этом случае проверяют работу отдельных функций. К примеру, разработчик написал код для функции «Добавить в избранное» в интернет-магазине и сразу проверяет, работает ли он корректно.
Следующий этап — интеграционное тестирование. Модули объединяют в группы и проверяют, как они друг с другом взаимодействуют. Например, получается ли добавить товар из раздела «Избранное» в корзину или удалить его.
Системное тестирование проводят после интеграционного. На этом этапе систему или приложение проверяют как единое целое и тестируют все компоненты в различных комбинациях. Цель системного тестирования — убедиться, что продукт соответствует техническим требованиям и работает без ошибок. Системное тестирование выполняют инженеры по тестированию (QA) без участия команды разработки — так получается сохранить объективность результатов.
Если системное тестирование проходит успешно, продукт проверяют на соответствие требованиям бизнеса и пользователей, а дальше — выпускают на рынок
Чтобы заниматься системным тестированием, глубокие знания в программировании не понадобятся, но нужно хорошо знать основы тестирования и разбираться в технической документации. Этому учат на курсе «Инженер по тестированию: от нуля до автоматизатора». Студенты начинают с базы — знакомятся с ролью QA, учатся писать тест-кейсы и баг-репорты. В процессе обучения они получают знания и навыки для финального проекта — тестирования веб- и мобильной версии, а также API приложения. Курс на этом не заканчивается — после обучения тестировщиков ждёт карьерный модуль. Выпускникам помогут составить резюме, изучить разные стратегии поиска работы и подготовиться к собеседованию.
Преимущества и недостатки
Преимущества
● Получается найти ошибки, которые невозможно выявить во время модульного или интеграционного тестирования.
● Не требуется опыт в программировании, как для юнит-тестов.
● Тестирование проводят в максимально близких к реальности условиях. Это позволяет найти большую часть ошибок, с которыми могут столкнуться пользователи.
● После тестирования система почти готова к запуску. Остаётся только проверить, что продукт соответствует всем требованиям клиента и пользователей.
Недостатки
● Может занять много времени, особенно если продукт большой. Например, приложение маркетплейса.
● Высокая стоимость.
В системном тестировании используют метод «чёрного ящика». В этом случае тестировщик опирается на документацию, но не знает, как работает код. Его задача — воссоздать условия и сценарии, близкие к реальности, и проверить, как система себя поведёт. Для этого он даже может выйти за пределы документации и проверить систему, опираясь на интуицию и опыт в похожих проектах.
«Чёрный ящик» даёт ответ на два вопроса:
● Что делает система? Тестировщик проверяет, делает ли система то, что от неё ждут. Например, приходит ли письмо пользователю после регистрации.
● Как работает система? Во время тестирования оценивают качественные характеристики системы: насколько она удобна, как быстро работает.
Какие виды системного тестирования могут проводить «по-чёрному», разобрали в таблице.
|
|
---|---|
Нагрузочное | Проверка работы системы в ситуациях, когда резко подскакивает количество пользователей. |
Восстановительное | Проверка способности системы к восстановлению после сбоев. |
Совместимости | Проверка работы системы на различных платформах и совместимость с другими системами. |
Производительности | Оценка работы системы при нормальных условиях и при различных уровнях нагрузки. |
Безопасности | Насколько система защищена от злоумышленников. |
Удобства использования | Насколько пользователю понятен интерфейс, может ли он ориентироваться в нём без подсказок. |
Конфигурации | Проверка работы системы с учётом разных параметров. |
Отказоустойчивости | Проверка работы системы в ситуациях, когда какие-то компоненты не работают или случился форс-мажор. |
Представим, что команде QA нужно протестировать приложение по доставке цветов. Разберём этапы системного тестирования на этом примере:
1. Планирование. Тестировщики вместе с бизнес-аналитиками и менеджерами проекта определяют цели системного тестирования для приложения. Они анализируют функциональные требования к приложению, определяют основные сценарии использования (например, оформление заказа, оплата, отслеживание статуса заказа) и разрабатывают план тестирования.
2. Подготовка. Тестировщики готовят тестовые сценарии и данные для проверки функциональности приложения. Например, они создают тестовые заказы с различными типами букетов, адресами доставки и способами оплаты.
На этом же этапе готовят тестовое окружение — это безопасная среда, которая имитирует реальные условия работы приложения. Например, для приложения с цветами понадобится веб-сервер, база данных для хранения информации о заказах, клиентах и продукции, компьютер или устройство (например, смартфон или планшет). В окружении без данных нет смысла, поэтому тестировщики генерируют информацию о цветах, адреса доставки, имена клиентов. Так получится проверить сценарии использования приложения почти как после релиза.
3. Выполнение. На этом этапе тестировщики запускают тестовые сценарии. Проверяют работу функциональности: добавление товаров в корзину, выбор даты и времени доставки, расчет стоимости заказа и процесс оформления заказа. Также они проверяют, что приложение корректно обрабатывает ошибки, например, неправильно введенные данные пользователя.
4. Анализ. Тестировщики оценивают прохождение тестовых сценариев, выявляют дефекты и проблемы с производительностью или стабильностью приложения. Документируют результаты тестирования и делятся выводами с командой разработки.
Какие инструменты выбрать — зависит от проекта и предпочтений специалиста. Разберём программы, которые чаще всего выбирают.
|
|
---|---|
Инструменты для анализа производительности и нагрузочного тестирования помогают выявить проблемы, которые могут возникнуть при работе приложения в реальных условиях. | Apache JMeter помогает создавать тестовые сценарии, которые моделируют нагрузку на веб-приложение или сервер. Он может генерировать большое количество запросов к приложению для оценки его производительности и стабильности при различных уровнях нагрузки. |
Инструменты для генерации тестовых данных | Mockaroo позволяет генерировать имена, адреса, электронные почты, числа, даты. Поддерживает генерацию данных в различных форматах CSV, JSON, SQL, XML — это дает возможность использовать сгенерированные данные в различных типах тестов или интегрировать их в другие системы. С помощью Mockaroo можно создавать настраиваемые схемы данных с заданными правилами и ограничениями.Так получается генерировать данные, соответствующие специфическим требованиям приложения или тестового сценария. |
Совет эксперта
Василий Беляков
Читать также: