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

2,468 views

Published on

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

  • Be the first to comment

  • Be the first to like this

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

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

×