Организация процесса тестирования программного обеспечения

Процесс тестирования ПО объединяет различные способы тестирования в определенную последовательность шагов, которые приводят к успешному построению программной системы. Методика тестирования ПО может быть представлена в виде разворачивающейся спирали [6.2].

В начале осуществляется тестирование элементов (программных модулей), проверяющее результаты кодирования ПО. Цель - индивидуальная проверка каждого модуля. Используются способы тестирования « белого ящика».

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

- потеря данных при прохождении через интерфейс;

- отсутствие в модуле необходимой ссылки;

- неблагоприятное влияние одного модуля на другой;

- проблемы при работе с глобальными структурами данных и др.

Третий шаг - тестирование правильности, проверяющее корректность требований к программной системе. Цель - подтвердить, что функции, описанные в спецификации ПО, отвечают требованиям заказчика. Используются методы «черного ящика». Важным элементом подтверждения правильности является проверка конфигурации программной системы - совокупности всех элементов информации, вырабатываемых в процессе конструирования ПО. При этом используются варианты альфа- и бета-тестирования. Альфа-тестирование проводится заказчиком в организации разработчика. Бета-тестирование, которое длится в течение фиксированного срока (порядка года), проводится конечным пользователем в организации заказчика.

На заключительном витке спирали проводится системное тестирование, выявляющее дефекты этапа системного анализа ПО. Цель - проверка правильности взаимодействия всех элементов компьютерной системы, реализации всех системных функций. Используются следующие тесты:

- тестирование восстановления (проверяется время и полнота восстановления);

- тестирование безопасности (проверяется реакция всех защитных механизмов, встроенных в систему, на проникновение);

- стрессовое тестирование (проверяется работа системы при аномальных ситуациях, например, очень большом количестве запросов на ресурсы системы);

- тестирование производительности в системах реального времени.

Тестирование программного обеспечения в какой-то момент времени необходимо заканчивать. В [6.4] предлагается передавать крупномасштабный программный продукт пользователю на регулярную эксплуатацию, если специалисты по тестированию и все пользователи в совокупности выявляют не более одной ошибки или дефекта каждые два-три месяца использования ПО. Это соответствует высокой наработке на отказ ПО, равной порядка 5-10 тысяч часов, и коэффициенту готовности выше 0,99.

Наши рекомендации