Инна Смирнова Рексофт Превосходный анализ, но я думал, вы копнете поглубже... Шерлок, здесь мертвая женщина! 1. На основе всех фактов и улик строится полная картина преступления. 2. Отталкиваясь от полученной картины преступления, разыскивается единственно соответствующий ей обвиняемый Cбор информации о баге: Отклонение от ожидаемого результата Анализ зависимостей Окружение Симптомы Серверные логи Firebug и другие инструменты Способы воспроизведения Продолжение варианта использования "По одной капле воды человек, умеющий мыслить логически, сможет сделать вывод о существовании Атлантического океана или Ниагарского водопада, даже если он не видел ни того, ни другого. Всякая жизнь - огромная цепь причин и следствий, и природу ее можно познать по одному звену." "В искусстве раскрытия преступлений первостепенное значение имеет способность выделить из огромного количества фактов существенные и отбросить случайные. Иначе ваша энергия и внимание непременно распылятся вместо того, чтобы сосредоточиться на главном." "Раскрыть это дело было трудно потому, что скопилось слишком много улик. Важные улики погребены под кучей второстепенных. Из всех имеющихся фактов надо было отобрать те, которые имели отношение к преступлению, и составить из них картину подлинных событий.". Как мы можем это применить в тестировании. Генерируем гипотезы Сортируем их по степени вероятности Придумываем тест для подтверждения гипотезы Придумываем тест для опровержения гипотезы При необходимости, возвращаемся к шагу 1. [A или B или C] + [В] => не A, не C [ A или B или C ] + [не A, не C] => B По запросу «Иванов Иван» система не выводит Иванова Ивана 1) поиск ищет Иванова не там 2) поиск регистрозависим 3) поиск перепутал фамилию и отчество. При этом: 1) Поиск ищет Иванова не там – неверно, т.к. Сидорова он нашел 2) Поиск регистрозависим – неверно. [если A, то C] + [если B, то C] + [A или B] => C [если A, то B] + [если C, то D]+ [A или C] => B или D [если A, то B] + [если A, то C] + [не B или не C] => не A [если A, то B] + [если C, то D] + [не B или не D] => не A или не C «Иногда искусство логически мыслить должно быть использовано для тщательного анализа и отбора уже известных фактов, а не для поиска новых» «Отбросить все, что не могло иметь места, и оставить один-единственный факт, который и есть истина» «Гипотеза, которая объясняет все без исключения факты, это больше, чем просто предположение.» Максимальная информация о баге Логи, дампы, …. Похожие проблемы “Это ошибка - строить дедукцию до того, как получены достаточные данные. Незаметно для самого себя начинаешь их подгонять под свою схему.” ! некоторые баги так и не воспроизводятся ! иногда лучше спросить у программиста ! если вопроизведение бага занимает более получаса – лучше спросить у ПМ Всё это не будет иметь никакого смысла, если не оформлено в хороший багрепорт! Суть метода – в установлении прочных ассоциативных связей. Берем за основу известное нам до мельчайших деталей помещение «Раскладываем» там воспоминания “Мне представляется, что человеческий мозг похож на маленький пустой чердак, который вы можете обставить, как хотите. Дурак натащит туда всякой рухляди, какая попадется под руку, и полезные, нужные вещи уже некуда будет всунуть, или в лучшем случае до них среди всей этой завали и не докопаешься. А человек толковый тщательно отбирает то, что он поместит в свой мозговой чердак” - Совершенно верно, - ответил Холмс, закуривая папиросу и вытягиваясь в кресле. - Вы смотрите, но вы не наблюдаете, а это большая разница. Например, вы часто видели ступеньки, ведущие из прихожей в эту комнату? - Часто. - Как часто? - Ну, несколько сот раз! - Отлично. Сколько же там ступенек? - Сколько? Не обратил внимания. - Вот-вот, не обратили внимания. А между тем вы видели! В этом вся суть. Ну, а я знаю, что ступенек семнадцать, потому что я и видел, и наблюдал. Инна Смирнова Старший инженер по тестированию Рексофт Тел.: +7 473 233 07 01 e-mail: smirnova@reksoft.ru