Post on 11-Nov-2014
description
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Роман Шейко
Оракулы в тестировании
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
2
Обо мне
Роман Шейко• В тестировании с 2006 года (Motorola, General
Satellite, Acronis, Luxoft)• Веду блог www.33testers.blogspot.com• Познакомился с оракулами в рамках курса Black Box
Software Testing (Foundation)• Проводил тренинги по их использованию• Изучал оракулы на практике в рамках Weekend
Testing
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
3
Цели доклада
• Осветить тему оракулов в тестировании
• Показать их использование на примерах
• Мотивировать к дальнейшему изучению и использованию оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
4
План доклада
1. Что такое оракулы в тестировании
2. Использование оракулов
3. Подведение итогов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
5
1. Что такое оракул?
Оракул – механизм, который помогает нам определить результат выполнения теста.
Оракул
К/Ф «Матрица»Другие определения:• Программа-эталон, с которой мы сравниваем нашу программу• Метод генерации ожидаемого результата• Метод сравнения фактического результата с ожидаемым
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
6
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=».
Оракула в тесте нет. Нужен ли он?
2 2+
=
?
Приложение - калькулятор
* Умеет только складывать
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
7
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=»
4. Проверьте, что сумма равна 4.
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
8
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=»
4. Проверьте, что сумма равна 4
1-й вариант 2-й вариантПроверить сложение
1-3. То же самое.
4. Проверьте, что сумма равна 4
5. Проверьте, что время выполнения операции меньше минуты
+
Оракул не помог обнаружить проблему с быстродействием
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
9
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=»
4. Проверьте, что сумма равна 4
Проверить сложение
1-3. То же самое.
4. Проверьте, что сумма равна 4
5. Проверьте, что время выполнения операции меньше минуты
1-й вариант 2-й вариантПроверить сложение
1-3. То же самое.
4. Проверьте, что сумма равна 4
5. Проверьте, что время выполнения операции меньше минуты
6. Проверьте освобождение памяти
3-й вариант
+(Оракул не помог обнаружить проблему с быстродействием)
(Оракул не помог обнаружить проблему с освобождением памяти)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
10
Увеличение оракула
Оракул 3-го вариантатеста
Оракул 2-го вариантатеста
Оракул 1-го вариантатеста
Выводы:
1. Чем достовернее оракул, тем, как правило, он больше и сложнее
2. Автоматизация требует повышенного внимания к оракулам
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
11
Полные и частичные оракулы
• Полный оракул – механизм, который на 100% достоверно может определить результат теста
• Частичный оракул – механизм, который не может с полной достоверностью определить результат теста, но требует меньше ресурсов для использования
Elaine Weyuker, “On testing nontestable” (1980)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
12
Ошибки использования оракулов
1. Промах – когда оракул не помог обнаружить проблему, но она есть
2. Ложная тревога – когда оракул обнаружил проблему, но на самом деле ее нет
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
13
2. Использование оракулов
Ваши собственные оракулы Оракулы соответствия Джеймса
Баха и Майкла Болтона Оракулы Дуга Хоффмана Эмоции в качестве оракулов …
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
14
Классификации оракуловДжеймс Бах Майкл Болтон Дуг Хоффман
1. FEW HICCUPPS 2. Таксономия оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
15
Классификация Баха и Болтона (FEW HICCUPPS)
• Основана на наблюдениях авторов за тем, как тестировщики обнаруживают проблемы
• Классификацию часто называют оракулами соответствия
• Она также известна как FEW HICCUPPS
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
16
Классификация Баха и Болтона (Оракулы соответствия)
FEW HICCUPPSОракул Описание
History Соответствие продукта предыдущим версиям
Image Соответствие имиджу компании
Comparable products Соответствие сравнимым продуктам
Claims Соответствие требованиям (обещаниям)
User’s Expectations Соответствие ожиданиям пользователей
Product Соответствие другим частям продукта
Purpose Соответствие назначению продукта
Statutes and standards Соответствие уставам и стандартам
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
17
Классификация Баха и Болтона (Оракулы соответствия)
FEW HICCUPPSОракул Описание
Familiarity Несоответствие схожим проблемам
Explainability Соответствие поведению, которое можно объяснить
World Соответствие представлениям о мире
FEW HICCUPPS СОМ ПИТОНИУС
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
18
Пример использования FEW HICCUPPS:Просмотр расписания поездов rzd.ru
Пустые результаты поиска поездов:«Дата отправления находится за пределами периода предварительной продажи»
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
19
Пример использования FEW HICCUPPS:Вход на сайт при оформлении заказа
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
1. После регистрации происходит переход на начальную страницу
2. Но после входа под известным пользователем продолжается оформление заказа
Выборпоезда и вагона
Вход на сайт
Оформление заказа
Начальная страница
Поиск рейсов
Активация
Вход под существующим
login
Регистрация
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
20
Пример использования FEW HICCUPS: О чем мы не поговорили?
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
• Мы рассмотрели не все оракулы соответствия на примере
• Попробуйте применить остальные оракулы FEW HICCUPPS в своей работе
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
21
Классификация Дуга Хоффмана
• Эта классификация оракулов создавалась в основном для автоматизации тестирования
• Ее называют Таксономией оракулов Хоффмана
• Хоффман предположил, что полных оракулов не существует, но в то же время есть множество полезных частичных оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
22
Классификация Дуга Хоффмана(Таксономия оракулов)
Оракул Описание
Constraint oracle Оракул ограничений
Regression oracle Оракул регрессии
Self-verifying data oracle Оракул самопроверяемых данных
Physical model oracle Оракул физической модели
Business model oracle Оракул бизнес модели
Statistical model oracle Оракул статистической модели
State model oracle Оракул модели состояний
Interaction model oracle Оракул модели взаимодействия
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
23
Классификация Дуга Хоффмана(Таксономия оракулов)
Оракул Описание
Calculation oracle Оракул вычислений
Inverse oracle Оракул инверсии
Reference program Оракул образцовой программы
И много много других.. См. материалы в конце доклада
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
24
Пример: разработка автотестов для функции суммирования в таблицах Google Docs
Памятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
25
Пример: разработка автотестов для функции построения диаграмм в таблицах Google
DocsПамятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
26
Пример использования таксономии оракулов: О чем мы не поговорили?
• Мы рассмотрели не все оракулы из таксономии
• Попробуйте остальные оракулы из таксономии оракулов Хоффмана
Памятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
27
Сравнение классификаций
Области применения
Сильные стороны Слабые стороны
FEW HICCUPPS
• Заведение убедительных баг репортов
• Тест дизайн
• Мнемоника• Универсальность
Не совсем подходит для разработки автотестов
Таксономия оракулов
• Тест дизайн• Разработка
автотестов
• Оракулы хорошо программируемы
• Оракулы конкретны
Описание плохо структурировано (ИМХО)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
28
Пересечения двух классификаций
Оракулы соответствия:•F (Схожесть)•E (Объяснимость)•W (Мир)•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
Таксономия Хоффмана:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
29
Другие идеи использования оракулов
• Эмоции могут быть оракулом для тестировщика (Майкл Болтон)
• Эмоции для тестировщика – как датчик дыма, который сигнализирует о том, что есть проблема
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
30
3. Summary
1. Оракул – механизм, который помогает нам определять результат теста
2. 2 наиболее популярные классификации оракулов – оракулы соответсвия (FEW HICCUPPS) и таксономия оракулов Хоффмана
3. Обе классификации помогают нам обнаруживать ошибки и разрабатывать тесты
4. FEW HICCUPPS успешно применяется для заведения убедительных баг репортов
5. Таксономия оракулов Хоффмана хорошо подходит для автоматизации
6. Существует множество идей использования оракулов в тестировании. Например, в качестве оракула тестировщик может использовать свои эмоции
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
31
Материалы
Материалы для первого знакомства с оракулами:
• Cтатья Майкла Болтона про оракулы соответствия: http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf
• Cтатьи про FEW HICCUPPS:– http://www.developsense.com/blog/2012/07/few-hiccupps/– http://www.testingeducation.org/BBST/foundations/Kelly_UsingTestOracles.pdf– http://www.associationforsoftwaretesting.org/2012/06/12/observation-inference-orac
le/
• Cтатья Дуга Хоффмана об оракулах-эвристиках: http://www.softwarequalitymethods.com/Papers/STQE%20Heuristic.pdf
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
32
Материалы
Материалы для более глубокого изучения:
• Статьи Майкла Болтона об эмоциях в качестве оракула:– http://www.developsense.com/blog/2011/09/the-cooking-detector/– http://www.developsense.com/blog/2011/10/confusion-as-an-oracle/
• Статья Кема Канера о проблеме оракулов: http://kaner.com/?p=190
• Другие статьи Майкла Болтона по оракулам: http://www.developsense.com/blog/category/oracles/
• Множество материалов Дуга Хоффмана о таксономии оракулов: http://softwarequalitymethods.com/html/papers.html#taxonomy
• Статья Элейн Вейюкер о тестировании нетестируемого: http://www.testingeducation.org/BBST/foundations/Weyuker_ontestingnontestable.pdf
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: r.sheyko@gmail.com
Прогресс доклада
33
Вопросы?