вторник, 27 июля 2010 г.

Тестирование пессимистическое и оптимистическое

С стороны психологии существует два подхода к тестированию: пессимистическое и оптимистическое. Оптимистическое предполагает, что мы в работающем приложении ищем ошибки, которые могли быть в нем допущены, т.е. заранее предполагаем, что все хорошо работает. Пессимистическое же тестирование, как не трудно догадаться, является прямой противоположностью. Тестировщик первоначально предполагает, что приложение вообще не работает, и ищет то, что все-таки в нем что-то работает.
Такой подход имеет ряд преимуществ и позволяет в проблемном функционале находить больше багов, т.е. подсознательно при пессимистическом тестировании мы увеличиваем покрытие тестами. Даже если тестирование проводиться по строго определенным тест-кейсам, тестировщик уделяет больше внимания мелочам. При оптимистическом тестировании мы убеждаемся, что приложение работает, а для этого проверок нужно сделать меньше :)
 Рассмотрим следующий рисунок.
Если тестировщик тестирует приложение впервые, то его подход больше похож на пессимистическое тестирование, поскольку неизвестно насколько хорошо работает функциональность приложения. При дальнейших проверках этого же самого приложения его подход будет приближаться к оптимистическому тестированию, поскольку уже известно, что приложение и так неплохо работает, а если не работает, то в определенных местах. Этим и опасен оптимистический подход, поскольку регрессионные баги будут пропущены.
Поэтому тестировщик должен быть всегда пессимистичен :) Этих свойств лишены авто-тесты, но это уже совсем другая история.