SlideShare a Scribd company logo

Исследование багов: учимся у Шерлока Холмса!

SQALab
SQALab
SQALabSQALab

Доклад Инны Смирновой на SQA Days-15. 18-19 апреля, 2014, Москва. www.sqadays.com

Исследование багов: учимся у Шерлока Холмса!

1 of 22
Download to read offline
Инна Смирнова
Рексофт
Исследование багов: учимся у Шерлока Холмса!
Исследование багов: учимся у Шерлока Холмса!
Шерлок, здесь
мертвая
женщина!
Превосходный
анализ, но я думал,
вы копнете
поглубже...
1. На основе всех фактов и улик строится полная
картина преступления.
2. Отталкиваясь от полученной картины
преступления, разыскивается единственно
соответствующий ей обвиняемый
Cбор информации о баге:
 Отклонение от ожидаемого результата
 Анализ зависимостей
 Окружение
 Симптомы
 Серверные логи
 Firebug и другие инструменты
 Способы воспроизведения
 Продолжение варианта использования
"По одной капле воды человек, умеющий мыслить логически, сможет сделать
вывод о существовании Атлантического океана или Ниагарского водопада,
даже если он не видел ни того, ни другого. Всякая жизнь - огромная цепь
причин и следствий, и природу ее можно познать по одному звену."
Ad

Recommended

Таблицы принятия решений
Таблицы принятия решенийТаблицы принятия решений
Таблицы принятия решенийSQALab
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советыSQALab
 
Безопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеБезопасность сессий в веб-приложениях: практическое применение
Безопасность сессий в веб-приложениях: практическое применениеSQALab
 
Успешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаУспешный тестировщик. Путь профессионала
Успешный тестировщик. Путь профессионалаSQALab
 
Вадим Зубович - Sikuli Script - идеальный инструмент для обучения автоматизации
Вадим Зубович - Sikuli Script - идеальный инструмент для обучения автоматизацииВадим Зубович - Sikuli Script - идеальный инструмент для обучения автоматизации
Вадим Зубович - Sikuli Script - идеальный инструмент для обучения автоматизацииQA Club Minsk
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)Подход доктора Хауса в тестировании оптимизации запросов (5 серия)
Подход доктора Хауса в тестировании оптимизации запросов (5 серия)SQALab
 
Практически о виртуализации сервисов
Практически о виртуализации сервисовПрактически о виртуализации сервисов
Практически о виртуализации сервисовSQALab
 

More Related Content

Viewers also liked

Тест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьТест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьSQALab
 
Что мешает тестировщикам
Что мешает тестировщикамЧто мешает тестировщикам
Что мешает тестировщикамEugene Efimov
 
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?SQALab
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...SQALab
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...SQALab
 
Тестирование в опенсорс
Тестирование в опенсорсТестирование в опенсорс
Тестирование в опенсорсSQALab
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облакеSQALab
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаSQALab
 
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самSQALab
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаSQALab
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиSQALab
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисовSQALab
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджераSQALab
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестированииSQALab
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестированиеSQALab
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияSQALab
 

Viewers also liked (16)

Тест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писатьТест-дизайн: проще читать или проще писать
Тест-дизайн: проще читать или проще писать
 
Что мешает тестировщикам
Что мешает тестировщикамЧто мешает тестировщикам
Что мешает тестировщикам
 
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?Как общаться с коллегами удалённо, чтобы не было мучительно больно?
Как общаться с коллегами удалённо, чтобы не было мучительно больно?
 
Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...Практические аспекты организации процесса тестирования в государственных учре...
Практические аспекты организации процесса тестирования в государственных учре...
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
 
Тестирование в опенсорс
Тестирование в опенсорсТестирование в опенсорс
Тестирование в опенсорс
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облаке
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного цикла
 
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это самИнструменты тестирования, или хочешь сделать хорошо - сделай это сам
Инструменты тестирования, или хочешь сделать хорошо - сделай это сам
 
VIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллектаVIQA - Тестирование UI с помощью Виртуального интеллекта
VIQA - Тестирование UI с помощью Виртуального интеллекта
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщиками
 
Особенности тестирования облачных сервисов
Особенности тестирования облачных сервисовОсобенности тестирования облачных сервисов
Особенности тестирования облачных сервисов
 
Миссия тест-менеджера
Миссия тест-менеджераМиссия тест-менеджера
Миссия тест-менеджера
 
Организация времени в тестировании
Организация времени в тестированииОрганизация времени в тестировании
Организация времени в тестировании
 
Первоклассное тестирование
Первоклассное тестированиеПервоклассное тестирование
Первоклассное тестирование
 
Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Исследование багов: учимся у Шерлока Холмса!

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