среда, февраля 06, 2013

Несколько фактов после посещения онлайн воркшопа Джеймса Баха


Термин «Сценарное тестирование» придумал Джеймс Бах

«Сценарное тестирование» – тестирование, проводимое при жестком следовании задокументированным сценариям.  Это когда вы открываете огромный эксель документ (сейчас уже гугл-докс) и начинаете ставить пассы/фэйлы не смотря по сторонам, только в документ и на приложение (если это описано в документе).

Как не парадоксально, но именно этот термин придумал Джеймс Бах. Но, все только ради того, чтобы объяснить преимущества исследовательского тестирования. 

Реальное тестирование – всегда мануальное и всегда автоматизированное

Просто глупо прятаться за гору того, что мы называем авто-тестами. Что нам говорит то, что у нас прошло 100 000 авто-тестов? Это говорит о том, что наше приложение написано качественно? Это говорит о том, что не существует таких сценариев использования, о которых никто не подумал? Это говорит о том, что не существует таких багов, которые находятся значительно глубже, чем поехавший текст на главной странице? Нет, для того чтобы найти такие баги – необходим интеллект. А машины таким интеллектом в  данный момент не владеют. Именно поэтому, следует говорить не «автоматизация тестирования», а автоматизация проверок.

Это не значит, что автоматизация – это плохо и ее нельзя использовать, потому что она не умеет думать. Автоматизация проверок – это инструмент, который помогает нам сэкономить время. Убедиться в том, что тот функционал, который работал раньше – работает и сейчас. Ну, а в умелых руках тестировщика – этот и другие инструменты поможет сэкономить самый важный и невосполнимый ресурс человеческой жизни – время.

Как не странно, ручное тестирование –это когда мы работаем головой. А инструменты – просто помогают в этом, помогают не пропустить ошибку.

Кто еще не пользуется Fiddler’ом? SQL-профайлерами? Не  следит за ресурсами, потребляемыми приложением? Не запускает небольшие программки, которые отслеживают в логах приложения слова "error" и "fail", оповещая при их нахождении, или не запускает приложение в режиме отладки, при этом настроив отладчик на перехват всех исключительных ситуаций? Я надеюсь вы не отключаете назойливые окна, оповещающие о JavaScript ошибках, тестируя приложение в Internet Explorer, вы же ведь следите за консолью браузера?

Мы обдумываем наши сценарии. Мы думаем, что нам нужно сделать  сейчас. А инструменты – следят за тем, чтобы мы не отвлекались и чтобы не пропустили баг в недрах системы, который может быть не заметен или подавлен со стороны пользовательского интерфейса.

Реальное тестирование – всегда сценарное и всегда исследовательское

Казалось бы, сценарное тестирование и исследовательское тестирование – это диаметрально противоположные понятия. Как же реальное тестирование может быть и тем и тем?

Если взять самое чистое сценарное тестирование в вакууме – то это движение по проложенной колее. При этом – шаг влево, шаг вправо – расстрел. В ходе «чистого сценарного тестирования» – вы не должны думать, а лишь выполнять.

Идеальное исследовательское тестирование («фристайл») – это тестирование неограниченное никакими рамками, структурой и отчетностью. Представьте себе, что вы попали в незнакомое место, без карты, не зная языка той страны и при этом, вы страдаете склером и амнезией...
Это и есть идеальное исследовательское тестирование.



Но, реальное тестирование всегда содержит элементы сценария:

  • Ограничение по исследованию конкретной функциональности
  • Некоторой идеей
  • Возможными  рисками 

Нам не говорят: «Иди и протестируй, чтобы ВСЁ работало». В ответ можно ответить лишь то, что «ВСЁ не работает». Нам говорят: «Иди и протестируй (исследую) конкретную функциональность». Это задает рамки нашей работы.
Рамки тестирования могут быть следующими:

  • Оракулы и Эвристики 
  • Миссия
  • Структура продукта
  • Код приложения и его архитектура
  • Активности разработчиков 
  • Временные ограничения
  • Навыки, талант, желание и интерес самого тестировщика
  • Существующие баги в баг-трекере 


Как регулятор громкости – вы можете увеличить или уменьшить долю исследовательского тестирования в вашей повседневной деятельности. Но, это не значит, что у вас чего-то нет. Исследовательское и сценарное тестирование всегда присутствует в той или иной мере.

Комментариев нет: