Время на тестирование системы и на исправление обнаруженных ошибок следует предусматривать не только на этапе разработки, но и на других этапах ЖЦ ПО. На этапе анализа тестирование проводится, например, для получения сравнительных характеристик предполагаемых к использованию аппаратных платформ, операционных систем, СУБД, иного окружения.
Для успешного проведения этапа тестирования и, как следствие, этапа сопровождения необходимо начинать планирование этапа тестирования одновременно с началом работ по разработке системы. Постепенно план тестирования дорабатывается на разных этапах ЖЦ ПО.
На Западе широко применяется проведение тестирования ПО сторонними орга-низациями, особенно в США, где насчитывается несколько десятков тестовых лабора-торий.
Причинами распространения подобного бизнеса стало то, что:
- организация-разработчик зачастую не может эффективно тестировать свои программы, так как программисты не хотят оглашать собственные ошибки;
- программа может содержать ошибки, связанные с тем, что программист неверно понял постановку или описание задачи. В этом случае есть вероятность, что и при тестировании он этих ошибок не заметит.
Отсюда не следует, что программист не может проверить свою программу. Многие с этим вполне успешно справляются. Просто тестирование более эффективно, если оно выполняется кем-то другим.
Эти рассуждения не относятся к отладке, т.е. к исправлению уже известных ошибок. С такой работой лучше всего справляется сам автор программы.