Алекс Смит: Тестирование ПО с Нуля до Специалиста
January 26

3.1 Основные принципы тестирования

7 принципов тестирования

Принцип 1 — Тестирование демонстрирует наличие дефектов

Тестирование только снижает вероятность наличия дефектов, которые находятся в программном продукте, но не гарантирует их отсутствия. Если в результате тестирования вы не нашли баги, это не значит, что их нет.

Принцип 2 — Исчерпывающее тестирование невозможно

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

Принцип 3 — Раннее тестирование

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

Принцип 4 — Скопление дефектов

Большая часть дефектов находится в ограниченном количестве модулей. Так называемый принцип 80% на 20%. 80% дефектов находится в 20% функционала продукта и наоборот. Необходимо предусмотреть, каким функционалом будет пользоваться наш конечный пользователь продукта и уделить ему больше внимания, а также предусмотреть проблематичные участки, например которые требуют ввода данных в поля и где есть логика зависимости заполнения полей. Особенно это важно в финансовых продуктах, к примеру в банковском софте.

Принцип 5 — Парадокс пестицида

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

Принцип 6 — Тестирование зависит от контекста

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

Принцип 7 — Заблуждение об отсутствии ошибок

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