пестицида
Впервые аналогию между тестированием программного обеспечения и обработкой полей пестицидами в сельскохозяйственной практике провел Борис Бейзер еще в 1990 году. Под парадоксом он имел в виду то, что постоянное использование одного и того же набора тест-кейсов для поиска дефектов приводит к тому, что он перестает обнаруживать баги так же, как использование одних и тех же пестицидов для борьбы с вредными насекомыми. Они попросту адаптируются к яду, и он постепенно перестает на них действовать. Красивая аналогия. Но почему это происходит в действительности? Прежде всего потому, что невозможно использовать все тест-кейсы: это противоречит одному из ранее изложенных принципов тестирования. Но даже простые приложения, например «Тетрис», требуют использования довольно большого количества тест-кейсов для проверки всех возможных сценариев и комбинаций данных. Кроме того, функциональность продукта изменяется со временем, и, внося изменения в один из элементов системы, мы не можем не изменить всю систему. А раз система меняется, то следует искать новые способы обнаружения дефектов в ней. Ну и, наконец, тестировщик должен модифицировать тест-кейсы, исходя из человеческой психологии. Причем не своей, а разработчика и конечного пользователя.
Виктор Гляненко, QA-директор Saber Interactive
Один из ярких примеров эффекта пестицида на практике я встретил в начале своего пути тестировщика. При работе над своим первым проектом – шутером – команда QA была поделена по игровым уровням, которые ежедневно проверялись с точки зрения прохождения. В какой-то момент уровень решил пройти коллега, который его не смотрел, и практически в самом начале нашел баг, который блокировал прохождение, так как его персонаж «застревал в геометрии» и не мог больше двигаться.
А произошло это потому, что ребята, которые регулярно проверяли уровень, проходили его практически с закрытыми глазами, знали, куда бежать, что активировать в игре, и эти маршруты для них изо дня в день были одинаковые. А для того, чтобы персонаж «застрял», нужно было всего-то сделать шаг в сторону.
6. Тестирование зависит от контекста
Разное по своей сути и назначению программное обеспечение требует разного подхода и методологии тестирования. Сузив этот принцип до тестирования видеоигр, можно утверждать, что не только тестовое окружение (то есть программно-аппаратная часть, необходимая для проведения тестовых активностей), но и методология будет отличаться в зависимости от жанра и типа игры.
7. Заблуждение об отсутствии ошибок
Даже если представить невозможную ситуацию, при которой были найдены и исправлены 100 % дефектов (мы помним, что такое невозможно в принципе!), не будет никаких гарантий того, что тестируемая нами видеоигра будет успешной у пользователей. Наша работа – обеспечить качество продукта, но привлекательность самого продукта мы обеспечить не в силах.
Ты скажешь: