Close
Software Test Studio logo

Software Test Studio

Назад Далее

Тестирование на основании детализации приложения (по уровню тестирования)

image

Тестирование классифицируют по очень большому количеству признаков. В классической литературе QA - будь то базовый курс Святослава Куликова или пособие Романа Савина - чётко прописана вся иерархия видов тестирования. Сегодня мы остановимся на типологии на основе детализации приложения.
Тестирование может проводиться на разных уровнях ПО с акцентом на области, которая покрывается тестированием. Согласно этому подходу продукт проверяют в ходе модульного, интеграционного и системного тестирования.

Если привести аналогию с велосипедом, то, например, сначала тестируется колесо (модульное тестирование), затем колесо и велосипед вместе - насколько они подходят друг к другу (интеграционное тестирование), а затем проверяется, можно ли на этом велосипеде прокатиться (системное тестирование).
Нередко к этим уровням прибавляютприёмочное тестирование, которое подразумевает проверку софта по определённому набору тест-кейсов до того времени, пока не будет достигнута нужная степень качества.

Модульное тестирование

При модульном тестировании (или Unit testing) внимание тестировщика сосредоточено на проверке отдельных, обычно небольших частей приложения, которые возможно исследовать отдельно от других. Это может быть часть кода, отдельная функция, метод, процедура, модуль или объект.
Обычно проверкой кода занимаются сами разработчики, а в поле зрения тестировщиков - проверка компонентов программы по методу чёрного ящика (модулей логина, аккаунта пользователя, корзины покупок и так далее).
Благодаря модульному характеру этого вида тестирования QA-специалист может проверять части проекта, не дожидаясь завершения других. Но это не гарантирует 100% нахождение всех багов в программе. Для улучшения качества продукта необходимо провести второй уровень тестирования - интеграцию модулей.

Интеграционное тестирование (integration testing)

На этом уровне тестирования QA Engineer фокусируется не на отдельном компоненте, а на взаимодействии между модулями, чтобы отыскать ошибки реализации и интерпретации. К сожалению, именно на стыке модулей появляется больше всего багов.
Для этого тестировщику очень важно знать, как между собой взаимодействуют все модули, владеть спецификой проекта. При интеграционном тестировании модули объединяются в подгруппы. Классический пример интеграции компонентов “Каталог” и “Корзина” в онлайн-магазине - проверка наличия добавленных товаров на странице “Корзины”. Об интеграционном тестировании стоит говорить и тогда, когда на почте проверяется подтверждение о регистрации на каком-либо сайте.

Системное тестирование (system testing, end-to-end, 2to2)

На этом этапе тестировщик проверяет всё приложение как единое целое, общую систему. Специалист может взаимодействовать с программой с точки зрения конечного пользователя, выстраивая компоненты в логичную цепочку. По ходу работы QA определяет, соответствует ли система установленным требованиям. На этом уровне также помимо функционального можно проводить и другие виды тестирования (тестирование безопасности, UI-testing, тестирование производительности, нагрузочное тестирование и так далее).
К системному тестированию стоит переходить, когда предыдущие два уровня тестирования, а также разработка ПО успешно завершены и создана соответствующая тестовая среда. QA используют два подхода к system testing: на базе требований, для которых прописываются тестовые случаи, и на основе случаев использования. Это фактически проверка продукта перед его выходом на рынок.

Приёмочное тестирование

После успешного завершения системного тестирования проходит контрольная проверка продукта на стороне конечного пользователя или заказчика. Приемочное тестирование проводит команда тестировщиков, представляющих интересы заказчика, либо специалисты компании-разработчика.
Цель такой “приёмки” - убедиться, что продукт выглядит и работает так, как было описано в требованиях. После приёмочного тестирования становится понятно, есть ли в ПО системные нарушения или другие дефекты, стоит ли отправлять его на доработку или принять проектную работу. Участие пользователей в приёмочном тестировании критически важно, чтобы получить отзывы рынка. Фаза этого тестирования проводится до того времени, пока заказчик не выносит определённое решение касательно проекта.

Тестирование на разных уровнях осуществляется в течение всего жизненного цикла ПО. Уровень тестирования выявляет то, что проверяют тесты: отдельный модуль, множество компонентов или систему. Организация тестирования на всех уровнях продукта - основа удачного создания и сдачи проекта.

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