Business Cases
Iuliia Maianska's Blog | Leadership Consultant
    Share
QA

Техники тестирования

Какие техники Вы используете при тестровании продукта? Как часто Вы меняете приоритетность задач? Вам важнее полное тестирование по тест-кейсам или исследовательское тестирование? Вы измеряете качество продукта по количеству багов или по их отсутствию?

На практике для разных проектов требуется свой индивидуальный подход к тестированию ПО. Как для нарезки продуктов используются разные ножи, так и для проекта нужны свои подходы и инструменты, способствующие быстрому результату от команды тестировщиков.
 Я выделяю следующие техники тестирования:

​​ 1. Последовательность (шаг за шагом, по заранее согласованному сценарию). Актуально для web проектов с использованием функционального и тестирования верстки, а также для mobile проектов. Выполнять такое тестирование может начинающий тестировщик, выполняя тест-кейсы, а также  ТОП-менеджмент, проверяя повторно одну и ту же интересующую функцию.

​​ 2. Распределение. Техника для больших команд, когда за минимальные сроки необходимо покрыть полное тестирование. Актуально для mobile & game проектов. К примеру, mobile функциональное тестирование конкретного блока/функции на большом количестве устройств (один тестировщик отвечает за одну функцию, а другой – за следующую). В даном случае могут появиться дополнительные баги только по причине несоответствия ПО/ОС мобильного устройства, несовместимости версий или отсутствия поддержки ПО для конкретного вида устройства (планшет/телефон/аксессуары/консоли и т.д.). Пример для game проекта: тестирование локализации, когда необходимо покрыть тестами более чем 10 языков. Можно распределить задачу по тестированию следующими подходами- 1 уровень – 1 тестер – все языки- 1 локация/страница меню – 1 тестер – все языкиВ обеих случаях иногда потребуется помощь коллег :), которые могут сделать скриншоты конкретной локации при прохождении игры и предоставить их ответственному (в случае, если тестируется игра на нескольких платформах/большом количестве устройств).

​​  3. Синхронизация. Техника, которая используется при тестировании нового функционала/модуля/блока, и требуется протестировать только часть ПО. Техника схожая с регрессионным тестированием и отвечает на вопрос: “Не поломалось ли что-то после последнего обновления?”. Актуально для hot fixes, доработок, модульного тестирования, внедрения поддержки новой версии ПО мобильного устройства ( например, iOS 9 -> iOS 10).

​​ 4. Ad-hoc (мы не знаем, что найдем при тестировании).  Актуальна для нового ПО, стартапов, замены команды разработчиков и/или QA команды. Тестируется зачастую опытными тестировщиками, которые используют свой опыт и аналитические способности, чтобы найти что-то новое, используя доступные средства (зачастую такие тестировщики могут нечаянно взломать базу данных или поломать ПО).

​​ 5. Валидация. Незаменимая техника для web проектов. Проверяются все возможные и невозможные случаи, используются знания системного администрирования, баз данных, структуры, конкретного используемого ПО (например, конструкторов Joomla, Drupal, WordPress, которые сами по себе имеют ошибки).

​​ 6. Интеграция. Актуальна для проектов социальных сетей, когда необходимо внедрить/распространить игру/сайт (например, используя API) и получать статистику посещений с разных ресурсов.

​​ 7. Дубль. Отличная техника для проектов, которые тестированы-перетестированы, а заказчик хочет идеальный продукт. Пример с ножами: Вы режете сыр специальным ножом для плавленого сыра, но решили попробовать его разрезать ножом для хлеба. Такой же подход можно использовать и в тестировании: Вы можете тестировать одну и ту же функцию разными способами, используя разное ПО (FireBug, LogCat, network settings, Android SDK…).

Дорогие читатели! Если у Вас есть дополнения или критика по теме – буду рада ознакомиться с ними в комментариях или в письменном виде.