Лично для меня эта тема очень интересна. Пару лет назад на конференции во Львове я даже выступал с докладом про оракулы. Так что когда я говорю про оракулы - я вспоминаю про Львов, а когда говорю про Львов - вспоминаю про оракулы. Так и живу :)
Вряд ли найдется тестировщик, который не сталкивался с оракулами. Если вы находили баг - вы имело с ними дело, если бы писали тест кейс - тоже. Это одна из вещей, которые мы используем каждый день, но не всегда знаем, как она называется.
Оракул - это эвристический механизм, который помогает нам определить проблему. Это первое определение, которое мы рассмотрим. Прилагательное "эвристический" указывает на то, что этот механизм, как и любая другая эвристика, подвержен ошибкам. То есть, он помогает, но не всегда. Зато его сравнительно легко использовать - еще одно свойство, характерное для эвристики.
Еще одно определение оракула - второе в этом сообщении - говорит о том, что это - способ генерации ожидаемого результата теста.
Эти два определения похожи, они оба связаны с определением результата теста и распознаванием правильного и неправильного поведения продукта. Но есть в них и принципиальное различие: первое используется в основном в контексте обнаружения проблем, второе - в контексте разработки тестов (я имею в виду придумывание тестов).
Существует две популярные классификации оракулов: FEW HICCUPPS Майкла Болтона и Джеймса Баха и таксономия оракулов Дуга Хоффмана (см. раздел Doug Hoffman’s Approach). Как мне кажется, первое определение оракулов удобнее и логичнее употреблять в контексте классификации Болтона и Баха, второе - в рамках классификации Хоффмана.
Если коротко, то FEW HICCUPPS - что-то вроде сборника универсальных типов оракулов для обнаружения проблем, а таксономия Хоффмана - сборник разных типов оракулов в помощь при тест дизайне (автор составлял ее с прицелом на автоматизацию).
Давайте рассмотрим 2 примера использования оракулов.
1. Представьте, что вы тестируете приложение по обмену мгновенными текстовыми сообщениями. Вы на автомате нажимаете Ctrl + Enter, чтобы отправить сообщение, но ничего не происходит. В спецификации об этом ни слова. Но что-то говорит вам о том, что тут есть проблема. Это - оракул, то есть механизм, с помощью которого вы обнаруживаете ошибку. В этом случае, используя классификацию FEW HICCUPPS, вы видите проблему из-за явного несоответствия поведения вашего продукта и сравнимых с ним продуктов (оракул несоответствия Comparable product). Возможно, отсутствие посылки сообщений по Ctrl + Enter является своеобразной фичей вашего продукта (тогда мы можем сказать, что оракул не сработал, ведь реальная ошибка не найдена). Но скорее всего это все-таки проблема. Похоже, что про реализацию этой фичи просто забыли.
2. Представьте, что вы автоматизируйте тест по проверке построения графика синуса в вашем математическом продукте. Как вы можете проверить правильность графика:
- Сравните его с графиком, сгенеренным предыдущей версией программы на тех же данных. Таким образом вы используете оракул регрессии из классификации Дуга Хоффмана. Он не всегда работает (например, когда в предыдущей версии программы был баг), но может вам пригодиться.
- Построите график в другой программе и сравните свой график с ним. Такой оракул называется оракулом образцовой программы в таксономии Хоффмана. Он очень похож на оракул соответствия сравнимому продукту в FEW HICCUPPS (Comparable product).
- Вы можете ограничиться проверкой ключевых точек: sin(0), sin(π/2), ... Это довольно легко сделать (по сравнению с другими вариантами), но гарантий правильности графика в других точках не дает. Этот метод проверки можно отнести к оракулу вычислений из таксономии Хоффмана (Calculation oracle).
- Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта). Запись доклада Сергея Атрощенкова на SQA days - 16.
- Confusion as an Oracle. Сообщение в блоге Майкла Болтона, любопытное рассуждение о том, как тестеры могут прислушиваться к себе для обнаружения проблем.
- The Cooking Detector.
- http://softwarequalitymethods.com/html/papers.html. Множество материалов Дуга Хоффмана по теме оракулов.
- Также смотрите ссылки на материалы в теле сообщения.
Комментариев нет:
Отправить комментарий