SlideShare a Scribd company logo
1 of 33
Оракулы в
тестировании
Роман Шейко

Твиттер: @Rsheyko
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com
Обо мне
Роман Шейко
• В тестировании с 2006 года (Motorola, General
Satellite, Acronis, Luxoft)
• Веду блог www.33testers.blogspot.com
• Познакомился с оракулами в рамках курса Black Box
Software Testing (Foundation)
• Проводил тренинги по их использованию
• Изучал оракулы на практике в рамках Weekend
Testing
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

2
Цели доклада
• Осветить тему оракулов в
тестировании
• Показать их использование на
примерах
• Мотивировать к дальнейшему
изучению и использованию оракулов

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

3
План доклада
1. Что такое оракулы в тестировании
2. Использование оракулов
3. Подведение итогов

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

4
1. Что такое оракул?
Оракул
Оракул – механизм,
который помогает нам
определить результат
выполнения теста.
К/Ф «Матрица»
Другие определения:
• Программа-эталон, с которой мы сравниваем нашу программу
• Метод генерации ожидаемого результата
• Метод сравнения фактического результата с ожидаемым
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

5
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле «Первое
слагаемое»
2. Введите 2 в поле «Второе
слагаемое»
3. Нажмите «=».

Приложение - калькулятор

Оракула в тесте нет. Нужен ли он?

2

+

2

=
?
* Умеет только
складывать

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

6
Пример: тест калькулятора
Проверить сложение
1. Введите 2 в поле
«Первое
слагаемое»
2. Введите 2 в поле
«Второе
слагаемое»
3. Нажмите «=»
4. Проверьте, что
сумма равна 4.

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

7
Пример: тест калькулятора
1-й вариант
Проверить сложение
1. Введите 2 в поле
«Первое
слагаемое»
2. Введите 2 в поле
«Второе
слагаемое»
+
3. Нажмите «=»
4. Проверьте, что
сумма равна 4

2-й вариант
Проверить сложение
1-3. То же самое.
4. Проверьте, что
сумма равна 4
5. Проверьте, что
время
выполнения
операции
меньше минуты

Оракул не помог обнаружить
проблему с быстродействием

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

8
Пример: тест калькулятора
1-й вариант
Проверить сложение
1. Введите 2 в поле
«Первое
слагаемое»
2. Введите 2 в поле
«Второе
слагаемое»
3. Нажмите «=»
4. Проверьте, что
сумма равна 4
(Оракул не помог
обнаружить проблему с
быстродействием)

2-й вариант
Проверить сложение
1-3. То же самое.
4. Проверьте, что
сумма равна 4
5. Проверьте, что
время
выполнения
операции
меньше минуты

+
(Оракул не помог
обнаружить проблему с
освобождением памяти)

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

3-й вариант
Проверить сложение
1-3. То же самое.
4. Проверьте, что
сумма равна 4
5. Проверьте, что
время
выполнения
операции
меньше минуты
6. Проверьте
освобождение
памяти

9
Увеличение оракула

Оракул 1-го варианта
теста

Оракул 2-го варианта
теста

Оракул 3-го варианта
теста

Выводы:
1. Чем достовернее оракул, тем, как правило, он больше и сложнее
2. Автоматизация требует повышенного внимания к оракулам
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

10
Полные и частичные оракулы
• Полный оракул – механизм, который на
100% достоверно может определить
результат теста

• Частичный оракул – механизм, который
не может с полной достоверностью
определить результат теста, но требует
меньше ресурсов для использования
Elaine Weyuker, “On testing nontestable” (1980)
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

11
Ошибки использования оракулов
1. Промах – когда оракул не помог
обнаружить проблему, но она есть

2. Ложная тревога – когда оракул
обнаружил проблему, но на самом
деле ее нет

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

12
2. Использование оракулов
 Ваши собственные оракулы
 Оракулы соответствия Джеймса Баха
и Майкла Болтона
 Оракулы Дуга Хоффмана
 Эмоции в качестве оракулов
 …
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

13
Классификации оракулов
Джеймс Бах

Майкл Болтон

1. FEW HICCUPPS

Дуг Хоффман

2. Таксономия
оракулов

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

14
Классификация Баха и Болтона
(FEW HICCUPPS)
• Основана на наблюдениях авторов за
тем, как тестировщики обнаруживают
проблемы
• Классификацию часто называют
оракулами соответствия
• Она также известна как FEW HICCUPPS

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

15
Классификация Баха и Болтона
(Оракулы соответствия)
FEW HICCUPPS
Оракул

Описание

History

Соответствие продукта предыдущим версиям

Image

Соответствие имиджу компании

Comparable products

Соответствие сравнимым продуктам

Claims

Соответствие требованиям (обещаниям)

User’s Expectations

Соответствие ожиданиям пользователей

Product

Соответствие другим частям продукта

Purpose

Соответствие назначению продукта

Statutes and standards

Соответствие уставам и стандартам

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

16
Классификация Баха и Болтона
(Оракулы соответствия)
FEW HICCUPPS
Оракул

Описание

Familiarity

Несоответствие схожим проблемам

Explainability

Соответствие поведению, которое можно объяснить

World

Соответствие представлениям о мире

FEW HICCUPPS

СОМ ПИТОНИУС

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com



17
Пример использования FEW HICCUPPS:
Просмотр расписания поездов rzd.ru
Памятка оракулов:
•F (Схожесть)
•E (Объяснимость)
•W (Мир)

Пустые результаты поиска поездов:
«Дата отправления находится за пределами
периода предварительной продажи»
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

•H (История)
•I (Имидж)
•С (Требования)
•С (Сравнимые
продукты)
•U (Ожидания
пользователей)
•P (Назначение)
•P (Продукт)
•S (Уставы и
стандарты)

18
Пример использования FEW HICCUPPS:
Вход на сайт при оформлении заказа

Поиск
рейсов

Выбор
поезда и
вагона

Вход
на сайт

Вход под
существующим
login

Регистрация
Начальная
страница

Активация

Оформление
заказа

1. После регистрации происходит переход
на начальную страницу
2. Но после входа под известным
пользователем продолжается
оформление заказа
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

Памятка оракулов:
•F (Схожесть)
•E (Объяснимость)
•W (Мир)

•H (История)
•I (Имидж)
•С (Требования)
•С (Сравнимые
продукты)
•U (Ожидания
пользователей)
•P (Назначение)
•P (Продукт)
•S (Уставы и
стандарты)

19
Пример использования FEW HICCUPS:
О чем мы не поговорили?

• Мы рассмотрели не все оракулы
соответствия на примере
• Попробуйте применить
остальные оракулы FEW
HICCUPPS в своей работе

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

Памятка оракулов:
•F (Схожесть)
•E (Объяснимость)
•W (Мир)

•H (История)
•I (Имидж)
•С (Требования)
•С (Сравнимые
продукты)
•U (Ожидания
пользователей)
•P (Назначение)
•P (Продукт)
•S (Уставы и
стандарты)

20
Классификация Дуга Хоффмана
• Эта классификация оракулов создавалась
в основном для автоматизации
тестирования
• Ее называют Таксономией оракулов
Хоффмана
• Хоффман предположил, что полных
оракулов не существует, но в то же время
есть множество полезных частичных
оракулов
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

21
Классификация Дуга Хоффмана
(Таксономия оракулов)
Оракул

Описание

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.com
E-mail: r.sheyko@gmail.com

22
Классификация Дуга Хоффмана
(Таксономия оракулов)
Оракул

Описание

Calculation oracle

Оракул вычислений

Inverse oracle

Оракул инверсии

Reference program

Оракул образцовой программы

И много много других..

См. материалы в конце доклада

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

23
Пример: разработка автотестов для функции
суммирования в таблицах Google Docs
Памятка оракулов:
•Оракул ограничений
•Оракул регрессии
•Оракул самопроверяемых
данных
•Оракулы моделей
(физической, бизнес,
статистической, состояний,
взаимодействия)
•Оракул вычислений
•Оракул инверсии
•Оракул образцовой
программы

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

24
Пример: разработка автотестов для функции
построения диаграмм в таблицах Google Docs
Памятка оракулов:
•Оракул ограничений
•Оракул регрессии
•Оракул самопроверяемых
данных
•Оракулы моделей
(физической, бизнес,
статистической, состояний,
взаимодействия)
•Оракул вычислений
•Оракул инверсии
•Оракул образцовой
программы

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

25
Пример использования таксономии оракулов:
О чем мы не поговорили?

• Мы рассмотрели не все
оракулы из таксономии
• Попробуйте остальные
оракулы из таксономии
оракулов Хоффмана

Памятка оракулов:
•Оракул ограничений
•Оракул регрессии
•Оракул самопроверяемых
данных
•Оракулы моделей
(физической, бизнес,
статистической, состояний,
взаимодействия)
•Оракул вычислений
•Оракул инверсии
•Оракул образцовой
программы

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

26
Сравнение классификаций
Области
применения

Сильные стороны

Слабые
стороны

FEW
HICCUPPS

• Заведение
• Мнемоника
Не совсем
убедительных • Универсальность подходит для
баг репортов
разработки
• Тест дизайн
автотестов

Таксономия
оракулов

• Тест дизайн
• Разработка
автотестов

• Оракулы хорошо Описание плохо
программируемы структурировано
(ИМХО)
• Оракулы
конкретны

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

27
Пересечения двух классификаций
Оракулы соответствия:

Таксономия Хоффмана:

•F (Схожесть)
•E (Объяснимость)
•W (Мир)
•H (История)
•I (Имидж)
•С (Требования)
•С (Сравнимые продукты)
•U (Ожидания
пользователей)
•P (Назначение)
•P (Продукт)
•S (Уставы и стандарты)

•Оракул ограничений
•Оракул регрессии
•Оракул самопроверяемых
данных
•Оракулы моделей
(физической, бизнес,
статистической, состояний,
взаимодействия)
•Оракул вычислений
•Оракул инверсии
•Оракул образцовой
программы

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

28
Другие идеи использования
оракулов
• Эмоции могут быть оракулом для
тестировщика (Майкл Болтон)
• Эмоции для тестировщика – как датчик
дыма, который сигнализирует о том, что
есть проблема


Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

29
3. Summary
1.
2.
3.
4.

5.
6.

Оракул – механизм, который помогает нам определять
результат теста
2 наиболее популярные классификации оракулов – оракулы
соответсвия (FEW HICCUPPS) и таксономия оракулов
Хоффмана
Обе классификации помогают нам обнаруживать ошибки и
разрабатывать тесты
FEW HICCUPPS успешно применяется для заведения
убедительных баг репортов
Таксономия оракулов Хоффмана хорошо подходит для
автоматизации
Существует множество идей использования оракулов в
тестировании. Например, в качестве оракула тестировщик
может использовать свои эмоции
Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

30
Материалы
Материалы для первого знакомства с оракулами:

• 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-inferenceoracle/

• Cтатья Дуга Хоффмана об оракулах-эвристиках:
http://www.softwarequalitymethods.com/Papers/STQE%20Heuristic.pdf

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

31
Материалы
Материалы для более глубокого изучения:
•

•
•

Статьи Майкла Болтона об эмоциях в качестве оракула:
– 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_ontestingnontestab
le.pdf

Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

32
Вопросы?


Твиттер: @Rsheyko
Прогресс доклада
Блог: 33testers.blogspot.com
E-mail: r.sheyko@gmail.com

33

More Related Content

Viewers also liked

Ментальные ловушки в тестировании
Ментальные ловушки в тестированииМентальные ловушки в тестировании
Ментальные ловушки в тестированииSQALab
 
Управление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияУправление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияSQALab
 
Построение процессов тестирования на новом проекте: как выбрать правильный путь
Построение процессов тестирования на новом проекте: как выбрать правильный путьПостроение процессов тестирования на новом проекте: как выбрать правильный путь
Построение процессов тестирования на новом проекте: как выбрать правильный путьSQALab
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test processQA Guards
 
Фреймворк компетенций APM или как понять возможности Вашей команды тестирования
Фреймворк компетенций APM или как понять возможности Вашей команды тестированияФреймворк компетенций APM или как понять возможности Вашей команды тестирования
Фреймворк компетенций APM или как понять возможности Вашей команды тестированияSQALab
 
Тестировщик на территории заказчика
Тестировщик на территории заказчика Тестировщик на территории заказчика
Тестировщик на территории заказчика SQALab
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийSQALab
 
Рефакторинг - на позитиве
Рефакторинг - на позитивеРефакторинг - на позитиве
Рефакторинг - на позитивеSQALab
 
Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?SQALab
 
Команды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатииКоманды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатииSQALab
 
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...SQALab
 
The evolution of QA at JUST EAT
The evolution of QA at JUST EATThe evolution of QA at JUST EAT
The evolution of QA at JUST EATSQALab
 
How software that runs Wikipedia is tested
How software that runs Wikipedia is tested How software that runs Wikipedia is tested
How software that runs Wikipedia is tested SQALab
 
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджераРабота с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджераSQALab
 
Passionate Partnering, for Testers
Passionate Partnering, for TestersPassionate Partnering, for Testers
Passionate Partnering, for TestersSQALab
 
Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика SQALab
 
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...SQALab
 
Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе SQALab
 
От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...SQALab
 
Reversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeReversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeSQALab
 

Viewers also liked (20)

Ментальные ловушки в тестировании
Ментальные ловушки в тестированииМентальные ловушки в тестировании
Ментальные ловушки в тестировании
 
Управление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестированияУправление конфигурациями и артефакты тестирования
Управление конфигурациями и артефакты тестирования
 
Построение процессов тестирования на новом проекте: как выбрать правильный путь
Построение процессов тестирования на новом проекте: как выбрать правильный путьПостроение процессов тестирования на новом проекте: как выбрать правильный путь
Построение процессов тестирования на новом проекте: как выбрать правильный путь
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test process
 
Фреймворк компетенций APM или как понять возможности Вашей команды тестирования
Фреймворк компетенций APM или как понять возможности Вашей команды тестированияФреймворк компетенций APM или как понять возможности Вашей команды тестирования
Фреймворк компетенций APM или как понять возможности Вашей команды тестирования
 
Тестировщик на территории заказчика
Тестировщик на территории заказчика Тестировщик на территории заказчика
Тестировщик на территории заказчика
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложений
 
Рефакторинг - на позитиве
Рефакторинг - на позитивеРефакторинг - на позитиве
Рефакторинг - на позитиве
 
Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?Why I do not like to be a tester in Agile project?
Why I do not like to be a tester in Agile project?
 
Команды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатииКоманды из разных стран - секреты успешного тестирования и дипломатии
Команды из разных стран - секреты успешного тестирования и дипломатии
 
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
How to manoeuvre as test/QA responsible in agile teams to get the "right" pro...
 
The evolution of QA at JUST EAT
The evolution of QA at JUST EATThe evolution of QA at JUST EAT
The evolution of QA at JUST EAT
 
How software that runs Wikipedia is tested
How software that runs Wikipedia is tested How software that runs Wikipedia is tested
How software that runs Wikipedia is tested
 
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджераРабота с подчиненными. 4 скрытых типовых проблем поведения менеджера
Работа с подчиненными. 4 скрытых типовых проблем поведения менеджера
 
Passionate Partnering, for Testers
Passionate Partnering, for TestersPassionate Partnering, for Testers
Passionate Partnering, for Testers
 
Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика Тестирование крупных проектов командой из одного тестировщика
Тестирование крупных проектов командой из одного тестировщика
 
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
Excel всё подскажет или "Вот сколько времени понадобится на тестирование" (ма...
 
Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе Приключение тестировщика на фрилансе
Приключение тестировщика на фрилансе
 
От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...От архитектуры приложения до приемочных автоматических тестов, или тестирован...
От архитектуры приложения до приемочных автоматических тестов, или тестирован...
 
Reversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy CodeReversed Test Pyramid - Testing and dealing with Legacy Code
Reversed Test Pyramid - Testing and dealing with Legacy Code
 

Similar to Оракулы в тестировании

КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumSQALab
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексейsolit
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Paul Stashevsky
 
Автоматизация тестирования программного обеспечения
Автоматизация тестирования программного обеспеченияАвтоматизация тестирования программного обеспечения
Автоматизация тестирования программного обеспеченияClub QA Kostroma
 
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий СтрелюкSQALab
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияzheldak
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...QA Club Minsk
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"EPAM Systems
 
Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...Igor Khrol
 
тестирование
тестированиетестирование
тестированиеYandex
 
Марина Широчкина: Тестирование
Марина Широчкина: ТестированиеМарина Широчкина: Тестирование
Марина Широчкина: ТестированиеYandex
 

Similar to Оракулы в тестировании (20)

КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
 
Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)Разработка и сопровождении авто-тестов (Selenium)
Разработка и сопровождении авто-тестов (Selenium)
 
Тест-дизайн "в цикле"
Тест-дизайн "в цикле"Тест-дизайн "в цикле"
Тест-дизайн "в цикле"
 
Автоматизация тестирования программного обеспечения
Автоматизация тестирования программного обеспеченияАвтоматизация тестирования программного обеспечения
Автоматизация тестирования программного обеспечения
 
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 4: Обеспечение Качества Программного Обеспечения
 
Unit tests
Unit testsUnit tests
Unit tests
 
Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий Стрелюк
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
Брич Наталья - Невыносимая переносимость кроссплатформенных приложений на при...
 
Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"Антон Золотарев, Екатерина Невельская "По следам SQA days"
Антон Золотарев, Екатерина Невельская "По следам SQA days"
 
Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...
 
тестирование
тестированиетестирование
тестирование
 
Марина Широчкина: Тестирование
Марина Широчкина: ТестированиеМарина Широчкина: Тестирование
Марина Широчкина: Тестирование
 

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 или как тест-менеджеру перекроить внут...
 

Оракулы в тестировании

  • 1. Оракулы в тестировании Роман Шейко Твиттер: @Rsheyko Блог: 33testers.blogspot.com E-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.com E-mail: r.sheyko@gmail.com 2
  • 3. Цели доклада • Осветить тему оракулов в тестировании • Показать их использование на примерах • Мотивировать к дальнейшему изучению и использованию оракулов Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 3
  • 4. План доклада 1. Что такое оракулы в тестировании 2. Использование оракулов 3. Подведение итогов Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 4
  • 5. 1. Что такое оракул? Оракул Оракул – механизм, который помогает нам определить результат выполнения теста. К/Ф «Матрица» Другие определения: • Программа-эталон, с которой мы сравниваем нашу программу • Метод генерации ожидаемого результата • Метод сравнения фактического результата с ожидаемым Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 5
  • 6. Пример: тест калькулятора Проверить сложение 1. Введите 2 в поле «Первое слагаемое» 2. Введите 2 в поле «Второе слагаемое» 3. Нажмите «=». Приложение - калькулятор Оракула в тесте нет. Нужен ли он? 2 + 2 = ? * Умеет только складывать Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 6
  • 7. Пример: тест калькулятора Проверить сложение 1. Введите 2 в поле «Первое слагаемое» 2. Введите 2 в поле «Второе слагаемое» 3. Нажмите «=» 4. Проверьте, что сумма равна 4. Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 7
  • 8. Пример: тест калькулятора 1-й вариант Проверить сложение 1. Введите 2 в поле «Первое слагаемое» 2. Введите 2 в поле «Второе слагаемое» + 3. Нажмите «=» 4. Проверьте, что сумма равна 4 2-й вариант Проверить сложение 1-3. То же самое. 4. Проверьте, что сумма равна 4 5. Проверьте, что время выполнения операции меньше минуты Оракул не помог обнаружить проблему с быстродействием Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 8
  • 9. Пример: тест калькулятора 1-й вариант Проверить сложение 1. Введите 2 в поле «Первое слагаемое» 2. Введите 2 в поле «Второе слагаемое» 3. Нажмите «=» 4. Проверьте, что сумма равна 4 (Оракул не помог обнаружить проблему с быстродействием) 2-й вариант Проверить сложение 1-3. То же самое. 4. Проверьте, что сумма равна 4 5. Проверьте, что время выполнения операции меньше минуты + (Оракул не помог обнаружить проблему с освобождением памяти) Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 3-й вариант Проверить сложение 1-3. То же самое. 4. Проверьте, что сумма равна 4 5. Проверьте, что время выполнения операции меньше минуты 6. Проверьте освобождение памяти 9
  • 10. Увеличение оракула Оракул 1-го варианта теста Оракул 2-го варианта теста Оракул 3-го варианта теста Выводы: 1. Чем достовернее оракул, тем, как правило, он больше и сложнее 2. Автоматизация требует повышенного внимания к оракулам Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 10
  • 11. Полные и частичные оракулы • Полный оракул – механизм, который на 100% достоверно может определить результат теста • Частичный оракул – механизм, который не может с полной достоверностью определить результат теста, но требует меньше ресурсов для использования Elaine Weyuker, “On testing nontestable” (1980) Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 11
  • 12. Ошибки использования оракулов 1. Промах – когда оракул не помог обнаружить проблему, но она есть 2. Ложная тревога – когда оракул обнаружил проблему, но на самом деле ее нет Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 12
  • 13. 2. Использование оракулов  Ваши собственные оракулы  Оракулы соответствия Джеймса Баха и Майкла Болтона  Оракулы Дуга Хоффмана  Эмоции в качестве оракулов  … Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 13
  • 14. Классификации оракулов Джеймс Бах Майкл Болтон 1. FEW HICCUPPS Дуг Хоффман 2. Таксономия оракулов Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 14
  • 15. Классификация Баха и Болтона (FEW HICCUPPS) • Основана на наблюдениях авторов за тем, как тестировщики обнаруживают проблемы • Классификацию часто называют оракулами соответствия • Она также известна как FEW HICCUPPS Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 15
  • 16. Классификация Баха и Болтона (Оракулы соответствия) FEW HICCUPPS Оракул Описание History Соответствие продукта предыдущим версиям Image Соответствие имиджу компании Comparable products Соответствие сравнимым продуктам Claims Соответствие требованиям (обещаниям) User’s Expectations Соответствие ожиданиям пользователей Product Соответствие другим частям продукта Purpose Соответствие назначению продукта Statutes and standards Соответствие уставам и стандартам Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 16
  • 17. Классификация Баха и Болтона (Оракулы соответствия) FEW HICCUPPS Оракул Описание Familiarity Несоответствие схожим проблемам Explainability Соответствие поведению, которое можно объяснить World Соответствие представлениям о мире FEW HICCUPPS СОМ ПИТОНИУС Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com  17
  • 18. Пример использования FEW HICCUPPS: Просмотр расписания поездов rzd.ru Памятка оракулов: •F (Схожесть) •E (Объяснимость) •W (Мир) Пустые результаты поиска поездов: «Дата отправления находится за пределами периода предварительной продажи» Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com •H (История) •I (Имидж) •С (Требования) •С (Сравнимые продукты) •U (Ожидания пользователей) •P (Назначение) •P (Продукт) •S (Уставы и стандарты) 18
  • 19. Пример использования FEW HICCUPPS: Вход на сайт при оформлении заказа Поиск рейсов Выбор поезда и вагона Вход на сайт Вход под существующим login Регистрация Начальная страница Активация Оформление заказа 1. После регистрации происходит переход на начальную страницу 2. Но после входа под известным пользователем продолжается оформление заказа Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com Памятка оракулов: •F (Схожесть) •E (Объяснимость) •W (Мир) •H (История) •I (Имидж) •С (Требования) •С (Сравнимые продукты) •U (Ожидания пользователей) •P (Назначение) •P (Продукт) •S (Уставы и стандарты) 19
  • 20. Пример использования FEW HICCUPS: О чем мы не поговорили? • Мы рассмотрели не все оракулы соответствия на примере • Попробуйте применить остальные оракулы FEW HICCUPPS в своей работе Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com Памятка оракулов: •F (Схожесть) •E (Объяснимость) •W (Мир) •H (История) •I (Имидж) •С (Требования) •С (Сравнимые продукты) •U (Ожидания пользователей) •P (Назначение) •P (Продукт) •S (Уставы и стандарты) 20
  • 21. Классификация Дуга Хоффмана • Эта классификация оракулов создавалась в основном для автоматизации тестирования • Ее называют Таксономией оракулов Хоффмана • Хоффман предположил, что полных оракулов не существует, но в то же время есть множество полезных частичных оракулов Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 21
  • 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.com E-mail: r.sheyko@gmail.com 22
  • 23. Классификация Дуга Хоффмана (Таксономия оракулов) Оракул Описание Calculation oracle Оракул вычислений Inverse oracle Оракул инверсии Reference program Оракул образцовой программы И много много других.. См. материалы в конце доклада Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 23
  • 24. Пример: разработка автотестов для функции суммирования в таблицах Google Docs Памятка оракулов: •Оракул ограничений •Оракул регрессии •Оракул самопроверяемых данных •Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия) •Оракул вычислений •Оракул инверсии •Оракул образцовой программы Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 24
  • 25. Пример: разработка автотестов для функции построения диаграмм в таблицах Google Docs Памятка оракулов: •Оракул ограничений •Оракул регрессии •Оракул самопроверяемых данных •Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия) •Оракул вычислений •Оракул инверсии •Оракул образцовой программы Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 25
  • 26. Пример использования таксономии оракулов: О чем мы не поговорили? • Мы рассмотрели не все оракулы из таксономии • Попробуйте остальные оракулы из таксономии оракулов Хоффмана Памятка оракулов: •Оракул ограничений •Оракул регрессии •Оракул самопроверяемых данных •Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия) •Оракул вычислений •Оракул инверсии •Оракул образцовой программы Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 26
  • 27. Сравнение классификаций Области применения Сильные стороны Слабые стороны FEW HICCUPPS • Заведение • Мнемоника Не совсем убедительных • Универсальность подходит для баг репортов разработки • Тест дизайн автотестов Таксономия оракулов • Тест дизайн • Разработка автотестов • Оракулы хорошо Описание плохо программируемы структурировано (ИМХО) • Оракулы конкретны Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 27
  • 28. Пересечения двух классификаций Оракулы соответствия: Таксономия Хоффмана: •F (Схожесть) •E (Объяснимость) •W (Мир) •H (История) •I (Имидж) •С (Требования) •С (Сравнимые продукты) •U (Ожидания пользователей) •P (Назначение) •P (Продукт) •S (Уставы и стандарты) •Оракул ограничений •Оракул регрессии •Оракул самопроверяемых данных •Оракулы моделей (физической, бизнес, статистической, состояний, взаимодействия) •Оракул вычислений •Оракул инверсии •Оракул образцовой программы Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 28
  • 29. Другие идеи использования оракулов • Эмоции могут быть оракулом для тестировщика (Майкл Болтон) • Эмоции для тестировщика – как датчик дыма, который сигнализирует о том, что есть проблема  Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 29
  • 30. 3. Summary 1. 2. 3. 4. 5. 6. Оракул – механизм, который помогает нам определять результат теста 2 наиболее популярные классификации оракулов – оракулы соответсвия (FEW HICCUPPS) и таксономия оракулов Хоффмана Обе классификации помогают нам обнаруживать ошибки и разрабатывать тесты FEW HICCUPPS успешно применяется для заведения убедительных баг репортов Таксономия оракулов Хоффмана хорошо подходит для автоматизации Существует множество идей использования оракулов в тестировании. Например, в качестве оракула тестировщик может использовать свои эмоции Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 30
  • 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-inferenceoracle/ • Cтатья Дуга Хоффмана об оракулах-эвристиках: http://www.softwarequalitymethods.com/Papers/STQE%20Heuristic.pdf Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 31
  • 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_ontestingnontestab le.pdf Твиттер: @Rsheyko Прогресс доклада Блог: 33testers.blogspot.com E-mail: r.sheyko@gmail.com 32