33
Твиттер: @Rsheyko Блог: 33testers.blogspot.c om Роман Шейко Оракулы в тестировании

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

  • Upload
    sqalab

  • View
    1.062

  • Download
    7

Embed Size (px)

DESCRIPTION

Доклад Романа Шейко на конференции SQADays-14, Львов 8-9 ноября 2013

Citation preview

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Роман Шейко

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

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

Твиттер: @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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

3

Цели доклада

• Осветить тему оракулов в тестировании

• Показать их использование на примерах

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

4

План доклада

1. Что такое оракулы в тестировании

2. Использование оракулов

3. Подведение итогов

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

5

1. Что такое оракул?

Оракул – механизм, который помогает нам определить результат выполнения теста.

Оракул

К/Ф «Матрица»Другие определения:• Программа-эталон, с которой мы сравниваем нашу программу• Метод генерации ожидаемого результата• Метод сравнения фактического результата с ожидаемым

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

6

Пример: тест калькулятора

Проверить сложение

1. Введите 2 в поле «Первое слагаемое»

2. Введите 2 в поле «Второе слагаемое»

3. Нажмите «=».

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

2 2+

=

?

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

7

Пример: тест калькулятора

Проверить сложение

1. Введите 2 в поле «Первое слагаемое»

2. Введите 2 в поле «Второе слагаемое»

3. Нажмите «=»

4. Проверьте, что сумма равна 4.

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

8

Пример: тест калькулятора

Проверить сложение

1. Введите 2 в поле «Первое слагаемое»

2. Введите 2 в поле «Второе слагаемое»

3. Нажмите «=»

4. Проверьте, что сумма равна 4

1-й вариант 2-й вариантПроверить сложение

1-3. То же самое.

4. Проверьте, что сумма равна 4

5. Проверьте, что время выполнения операции меньше минуты

+

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

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

Твиттер: @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-й вариант

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

10

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

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

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

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

Выводы:

1. Чем достовернее оракул, тем, как правило, он больше и сложнее

2. Автоматизация требует повышенного внимания к оракулам

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

11

Полные и частичные оракулы

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

• Частичный оракул – механизм, который не может с полной достоверностью определить результат теста, но требует меньше ресурсов для использования

Elaine Weyuker, “On testing nontestable” (1980)

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

12

Ошибки использования оракулов

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

13

2. Использование оракулов

Ваши собственные оракулы Оракулы соответствия Джеймса

Баха и Майкла Болтона Оракулы Дуга Хоффмана Эмоции в качестве оракулов …

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

14

Классификации оракуловДжеймс Бах Майкл Болтон Дуг Хоффман

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

15

Классификация Баха и Болтона (FEW HICCUPPS)

• Основана на наблюдениях авторов за тем, как тестировщики обнаруживают проблемы

• Классификацию часто называют оракулами соответствия

• Она также известна как FEW HICCUPPS

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

16

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

FEW HICCUPPSОракул Описание

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

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

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

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

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

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

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

17

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

FEW HICCUPPSОракул Описание

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

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

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

FEW HICCUPPS СОМ ПИТОНИУС

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

18

Пример использования FEW HICCUPPS:Просмотр расписания поездов rzd.ru

Пустые результаты поиска поездов:«Дата отправления находится за пределами периода предварительной продажи»

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

19

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

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

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

1. После регистрации происходит переход на начальную страницу

2. Но после входа под известным пользователем продолжается оформление заказа

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

Вход на сайт

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

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

Поиск рейсов

Активация

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

login

Регистрация

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

20

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

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

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

• Мы рассмотрели не все оракулы соответствия на примере

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

21

Классификация Дуга Хоффмана

• Эта классификация оракулов создавалась в основном для автоматизации тестирования

• Ее называют Таксономией оракулов Хоффмана

• Хоффман предположил, что полных оракулов не существует, но в то же время есть множество полезных частичных оракулов

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

Твиттер: @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 Оракул модели взаимодействия

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

23

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

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

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

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

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

24

Пример: разработка автотестов для функции суммирования в таблицах Google Docs

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

25

Пример: разработка автотестов для функции построения диаграмм в таблицах Google

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

26

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

• Мы рассмотрели не все оракулы из таксономии

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

27

Сравнение классификаций

Области применения

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

FEW HICCUPPS

• Заведение убедительных баг репортов

• Тест дизайн

• Мнемоника• Универсальность

Не совсем подходит для разработки автотестов

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

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

автотестов

• Оракулы хорошо программируемы

• Оракулы конкретны

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

28

Пересечения двух классификаций

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

29

Другие идеи использования оракулов

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

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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

30

3. Summary

1. Оракул – механизм, который помогает нам определять результат теста

2. 2 наиболее популярные классификации оракулов – оракулы соответсвия (FEW HICCUPPS) и таксономия оракулов Хоффмана

3. Обе классификации помогают нам обнаруживать ошибки и разрабатывать тесты

4. FEW HICCUPPS успешно применяется для заведения убедительных баг репортов

5. Таксономия оракулов Хоффмана хорошо подходит для автоматизации

6. Существует множество идей использования оракулов в тестировании. Например, в качестве оракула тестировщик может использовать свои эмоции

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

Твиттер: @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

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

Твиттер: @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

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

Твиттер: @RsheykoБлог: 33testers.blogspot.comE-mail: [email protected]

Прогресс доклада

33

Вопросы?