вторник, 29 января 2008 г.

Необходимые и достаточные условия для проведения тестирования


Некоторое время назад пришлось составить список программного обеспечения и артефактов необходимых тестировщику в повседневной работе, и параллельно с этим в голову пришел один замечательный вопрос: «Необходимые и достаточные условия для проведения тестирования». Казалось бы, что ответ прост, да не так прост, как кажется. Попытался найти правду на форуме тестировщиков – получилась замечательная дискуссия. Общего ответа выработать не удалось, но вот поразмыслить и выработать свое решение этой задачки вполне получилось.

В своей недавней статье «Обеспечение качества. Контроль качества. Тестирование» я предложил, выработанное по результатам опроса, определение понятия тестирования программного обеспечения:

Software Testing (тестирование ПО) является одной из техник контроля качества и включает в себя активности по планированию работ (Test Management), проектированию тестов (Test Design), выполнению тестирования (Test Execution) и анализу полученных результатов (Test Analysis).
Решив продолжить свою теорию, хочу предложить вашему вниманию исследование на тему «необходимые и достаточные условия для проведения тестирования».

Рассмотрим определения требуемых понятий:
  • Необходимыми условиями истинности утверждения А называются условия, без соблюдения которых А не может быть истинным.
  • Достаточными называются такие условия, при наличии (выполнении, соблюдении) которых утверждение А является истинным.
Начнем с необходимых условий.
Очевидно, что тестирование не возможно без объекта тестирования, отсюда получаем первое условие: наличие объекта тестирования, доступного для проведения испытаний. Далее, чтобы тестирование все же состоялось, нам нужен исполнитель, значит, вторым необходимым условием будет наличие исполнителя, причем им может быть, человек или машина, или комбинация человек+машина.

Перейдем к определению достаточных условий.
Так как не каждое действие, совершенное над программой, с целью получения ожидаемое поведения, является тестированием, встал вопрос о том, что сама по себе цель, а именно: тестирование, является одним из достаточных условий. Принимая за основу то, что наличие плана тестирования прямо указывает на намерение проведения тестирования, получаем, что тест план является одним из достаточных условий.

При проведении тестирования, человек или машина должны будут выполнять какие-то действия для проверки реального и ожидаемого поведения программы. Значит, наличие тест кейсов/тестов также является достаточным условием.

Для подтверждения, что тестирование произошло, нам необходим отчет о результатах. Как говорится: «есть отчет - есть тестирование, нет отчета – нет тестирования». Значит, для подтверждения того, что тестирование имело место быть, отчет о результатах тестирования должен быть сформирован.

Итого мы имеем следующие необходимые и достаточные условия для проведения тестирования:

Необходимые условия:
  1. Наличие объекта тестирования, доступного для проведения испытаний
  2. Наличие исполнителя(ей) (в зависимости от вида проводимых испытаний им может быть как человек, так и машина или комбинация человек+машина)

Достаточные условия:
  1. Наличие объекта тестирования, доступного для проведения испытаний
  2. Наличие исполнителя(ей) (в зависимости от вида деятельности на разных фазах им может быть как человек, так и машина или комбинация человек+машина)
  3. Наличие плана тестирования
  4. Наличие тест кейсов / тестов
  5. Наличие отчета, подтверждающего выполнение задач и достижение целей, по тестированию объекта
Вернемся к предложенному мной определению тестирования ПО и подумаем, не противоречит ли оно вышеперечисленным условиям. На сколько я могу судить, все сходится: наличие плана тестирования говорит об активностях в области планирования, тест кейсов и тестов - о проектировании, исполнителя – о выполнении тестов, наличие отчета говорит об анализе полученных результатов.

Выводы

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

Конечно предложенные мной условия всего навсего являются попыткой их определения, и вполне возможно содержат ошибки, но все же: «На ошибках учатся». А лично я стремлюсь к познанию истины. Так как она где-то рядом.

Буду весьма благодарен, получить комментарии по поводу проделанной мной работы и теории в целом.

Отправить комментарий

Условия копирования публикаций:

Все публикации в данном блоге являются частной собственностью авторов. Любое копирование информации допускается только при условии указания имени автора и активной ссылки на источник.