Upload
sqalab
View
1.062
Download
7
Embed Size (px)
DESCRIPTION
Доклад Романа Шейко на конференции SQADays-14, Львов 8-9 ноября 2013
Citation preview
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Роман Шейко
Оракулы в тестировании
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
2
Обо мне
Роман Шейко• В тестировании с 2006 года (Motorola, General
Satellite, Acronis, Luxoft)• Веду блог www.33testers.blogspot.com• Познакомился с оракулами в рамках курса Black Box
Software Testing (Foundation)• Проводил тренинги по их использованию• Изучал оракулы на практике в рамках Weekend
Testing
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
3
Цели доклада
• Осветить тему оракулов в тестировании
• Показать их использование на примерах
• Мотивировать к дальнейшему изучению и использованию оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
4
План доклада
1. Что такое оракулы в тестировании
2. Использование оракулов
3. Подведение итогов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
5
1. Что такое оракул?
Оракул – механизм, который помогает нам определить результат выполнения теста.
Оракул
К/Ф «Матрица»Другие определения:• Программа-эталон, с которой мы сравниваем нашу программу• Метод генерации ожидаемого результата• Метод сравнения фактического результата с ожидаемым
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
6
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=».
Оракула в тесте нет. Нужен ли он?
2 2+
=
?
Приложение - калькулятор
* Умеет только складывать
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
7
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=»
4. Проверьте, что сумма равна 4.
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
8
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое слагаемое»
2. Введите 2 в поле «Второе слагаемое»
3. Нажмите «=»
4. Проверьте, что сумма равна 4
1-й вариант 2-й вариантПроверить сложение
1-3. То же самое.
4. Проверьте, что сумма равна 4
5. Проверьте, что время выполнения операции меньше минуты
+
Оракул не помог обнаружить проблему с быстродействием
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
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: [email protected]
Прогресс доклада
10
Увеличение оракула
Оракул 3-го вариантатеста
Оракул 2-го вариантатеста
Оракул 1-го вариантатеста
Выводы:
1. Чем достовернее оракул, тем, как правило, он больше и сложнее
2. Автоматизация требует повышенного внимания к оракулам
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
11
Полные и частичные оракулы
• Полный оракул – механизм, который на 100% достоверно может определить результат теста
• Частичный оракул – механизм, который не может с полной достоверностью определить результат теста, но требует меньше ресурсов для использования
Elaine Weyuker, “On testing nontestable” (1980)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
12
Ошибки использования оракулов
1. Промах – когда оракул не помог обнаружить проблему, но она есть
2. Ложная тревога – когда оракул обнаружил проблему, но на самом деле ее нет
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
13
2. Использование оракулов
Ваши собственные оракулы Оракулы соответствия Джеймса
Баха и Майкла Болтона Оракулы Дуга Хоффмана Эмоции в качестве оракулов …
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
14
Классификации оракуловДжеймс Бах Майкл Болтон Дуг Хоффман
1. FEW HICCUPPS 2. Таксономия оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
15
Классификация Баха и Болтона (FEW HICCUPPS)
• Основана на наблюдениях авторов за тем, как тестировщики обнаруживают проблемы
• Классификацию часто называют оракулами соответствия
• Она также известна как FEW HICCUPPS
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
16
Классификация Баха и Болтона (Оракулы соответствия)
FEW HICCUPPSОракул Описание
History Соответствие продукта предыдущим версиям
Image Соответствие имиджу компании
Comparable products Соответствие сравнимым продуктам
Claims Соответствие требованиям (обещаниям)
User’s Expectations Соответствие ожиданиям пользователей
Product Соответствие другим частям продукта
Purpose Соответствие назначению продукта
Statutes and standards Соответствие уставам и стандартам
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
17
Классификация Баха и Болтона (Оракулы соответствия)
FEW HICCUPPSОракул Описание
Familiarity Несоответствие схожим проблемам
Explainability Соответствие поведению, которое можно объяснить
World Соответствие представлениям о мире
FEW HICCUPPS СОМ ПИТОНИУС
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
18
Пример использования FEW HICCUPPS:Просмотр расписания поездов rzd.ru
Пустые результаты поиска поездов:«Дата отправления находится за пределами периода предварительной продажи»
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
19
Пример использования FEW HICCUPPS:Вход на сайт при оформлении заказа
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
1. После регистрации происходит переход на начальную страницу
2. Но после входа под известным пользователем продолжается оформление заказа
Выборпоезда и вагона
Вход на сайт
Оформление заказа
Начальная страница
Поиск рейсов
Активация
Вход под существующим
login
Регистрация
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
20
Пример использования FEW HICCUPS: О чем мы не поговорили?
Памятка оракулов:•F (Схожесть)•E (Объяснимость)•W (Мир)
•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
• Мы рассмотрели не все оракулы соответствия на примере
• Попробуйте применить остальные оракулы FEW HICCUPPS в своей работе
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
21
Классификация Дуга Хоффмана
• Эта классификация оракулов создавалась в основном для автоматизации тестирования
• Ее называют Таксономией оракулов Хоффмана
• Хоффман предположил, что полных оракулов не существует, но в то же время есть множество полезных частичных оракулов
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
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: [email protected]
Прогресс доклада
23
Классификация Дуга Хоффмана(Таксономия оракулов)
Оракул Описание
Calculation oracle Оракул вычислений
Inverse oracle Оракул инверсии
Reference program Оракул образцовой программы
И много много других.. См. материалы в конце доклада
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
24
Пример: разработка автотестов для функции суммирования в таблицах Google Docs
Памятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
25
Пример: разработка автотестов для функции построения диаграмм в таблицах Google
DocsПамятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
26
Пример использования таксономии оракулов: О чем мы не поговорили?
• Мы рассмотрели не все оракулы из таксономии
• Попробуйте остальные оракулы из таксономии оракулов Хоффмана
Памятка оракулов:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
27
Сравнение классификаций
Области применения
Сильные стороны Слабые стороны
FEW HICCUPPS
• Заведение убедительных баг репортов
• Тест дизайн
• Мнемоника• Универсальность
Не совсем подходит для разработки автотестов
Таксономия оракулов
• Тест дизайн• Разработка
автотестов
• Оракулы хорошо программируемы
• Оракулы конкретны
Описание плохо структурировано (ИМХО)
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
28
Пересечения двух классификаций
Оракулы соответствия:•F (Схожесть)•E (Объяснимость)•W (Мир)•H (История)•I (Имидж)•С (Требования)•С (Сравнимые продукты)•U (Ожидания пользователей)•P (Назначение)•P (Продукт)•S (Уставы и стандарты)
Таксономия Хоффмана:•Оракул ограничений•Оракул регрессии•Оракул самопроверяемых данных•Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия)•Оракул вычислений•Оракул инверсии•Оракул образцовой программы
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
29
Другие идеи использования оракулов
• Эмоции могут быть оракулом для тестировщика (Майкл Болтон)
• Эмоции для тестировщика – как датчик дыма, который сигнализирует о том, что есть проблема
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
30
3. Summary
1. Оракул – механизм, который помогает нам определять результат теста
2. 2 наиболее популярные классификации оракулов – оракулы соответсвия (FEW HICCUPPS) и таксономия оракулов Хоффмана
3. Обе классификации помогают нам обнаруживать ошибки и разрабатывать тесты
4. FEW HICCUPPS успешно применяется для заведения убедительных баг репортов
5. Таксономия оракулов Хоффмана хорошо подходит для автоматизации
6. Существует множество идей использования оракулов в тестировании. Например, в качестве оракула тестировщик может использовать свои эмоции
Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]
Прогресс доклада
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: [email protected]
Прогресс доклада
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