OpenQuality.ru

Качество программного обеспечения

Качество программного обеспечения: в главных ролях

Лента  Радар  Блог  Опыт  
Разум  Видео  Заметки  Эпизоды


Интуиция в тестировании программного обеспечения

Добрый день.

“Это волчанка!”, – победоносно воскликнул Хаус, и, прихрамывая, направился к своему мотоциклу. Кадди застыла в восхищении, а мудрый Вилсон ничем не выдал своих эмоций. Хаус не первый раз совершал чудо, и его друг уже успел к этому привыкнуть. В шестом чувстве Хауса у нас нет никаких сомнений. Обратимся к вопросу, ответ на который не столь очевиден: каким образом интуиция сможет помочь в тестировании программного обеспечения?

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

a) возможность предугадать уязвимости в программном продукте без прогона тестовых сценариев;
б) обратная задача – способность понять причины возникновения бага, если “такого не может быть, потому что не может быть никогда”.

Фантастика? Соблазн велик: и в случае предрелизной спешки, и при эскалациях, возникающих у службы технической поддержки продукта. “Здесь все чисто, можно выпускать”. Или “при сотне одновременных подключений сервис накроется медным тазом”. Или “ошибка проявится, если на машине установлен такой же антивирус, как у заказчика”. Когда и где нас сможет выручить интуиция?

Прежде всего, очевидно, что интуитивные озарения имеют какую-то основу, источник. Какой? Возможны два основных подхода:

1. Интуиция нам дана свыше. Существует информационное поле, эфир, в неясной дымке которого витают нужные ответы и решения. Нужно научиться добывать эти знания из эфира:

a) черпать их силами своих мыслительных способностей (и автоматизировать процесс, как без этого).
б) выискивать Избранных, наделенных даром ясновидения (и записывать их откровения).

2. Возможности интуиции – в наших руках. Шестое чувство базируется на первых пяти и нашем опыте.

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

Что общего у Грегори Хауса и удачливого рыболова? У разбогатевшего игрока на бирже и проныры-папарацци? У грибника с полным лукошком? Везение? Стечение обстоятельств? Безусловно, это очень важно. А что еще? Знания и опыт. У Хауса двадцать лет практики и две степени в медицине. Рыбак и грибник знают “местo и время”. Игроку на бирже знакомы все повадки “быков” и “медведей”, а папарацци выучил привычки своих жертв. Знания – специфические. Грибник не распознает болезнь Гиппеля-Линдау, а папарацци не отличит “быка” от “медведя”-оборотня. Кесарю кесарево. Интуиция – квинтэссенция нашего опыта. Тестирование приложений в полной мере подтверждает это утверждение.

Сможет ли доктор Хаус предугадать, что фантомные баги вызваны сбоем в garbage collection, а замедление работы приложения объясняется достижением максимально возможного количества открытых файлов? Да, если знает о garbage collection и ulimit. Нет, если не знает. Интуиция поможет, если мозг хранит кванты знаний, которые способны подсказать ответ. Механизмы работы мозга остаются загадкой, но очевидно, что баг операции чтения в MySQL сможет подтолкнуть к размышлениям при работе с другими базами данных. Если любимая сетевая игра не работает с включенным UAC в Vista, то интуиция подскажет проверить права доступа в своем приложении.

Интуиция срабатывает, когда мозг усиленно трудится над задачей – пусть даже в фоновом режиме. Яблоко помогло Ньютону в период размышлений о гравитации. Периодическую систему химических элементов Менделеев увидел во сне, но вот что он заметил: “Я над ней, может быть, двадцать лет думал, а вы думаете: сидел и вдруг… готово“. То же самое в тестировании. Чем глубже вникаешь в архитектуру продукта и его окружение, тем более серьезные догадки преподносит интуиция.

Можно ли доверять интуиции при тестировании ПО? И да, и нет:

Нет – потому что любую догадку необходимо подтвердить. Особенно из разряда “уже сто раз проверяли, все чисто”. Мы люди, нам свойственно ошибаться. На наше мышление влияет множество факторов, и в том числе эмоции. Гонцы из подсознания могут оказаться троянскими конями, а интуиция – сыграть в угоду слабоволию, страхам и надеждам.

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

Интуиция – это дар, который в нашей власти. Это награда за опыт и знания, накопленные на тернистом пути тестировщика.

Отправить в Twitter, Facebook, FriendFeed, ВКонтакте | Опубликовано 08.02.2009 в рубрике "Подходы"

Комментарии (2)

  1. Pingback : Тестирование | Cat`s shepherd | February 3, 2010

    […] http://blog.openquality.ru/intuition-in-software-testing/ […]


  2. Pingback : OpenQuality.ru | Качество программного обеспечения | May 8, 2012

    […] нужная деятельность, о чем мы говорили не раз и не два (три, четыре, пять). Ведущие эксперты отрасли подчеркивают […]



Добавить комментарий

Пожалуйста, исправьте результат: дважды два равно



КРАТКОЕ СОДЕРЖАНИЕ

Что такое качество программного обеспечения и как его улучшить: теория и практика, задачи и решения, подводные камни и обходные пути.


ПУТЕВОДИТЕЛЬ

Список всех статей с краткой аннотацией и разбивкой по рубрикам. Открыть карту.

ПОДПИСКА

Доступ к самым интересным материалам по электропочте и RSS. Подробности.

ИЩЕЙКА