В общем случае, испытания проводятся в несколько стадий, разделенных по времени.
К первой стадии относятся испытания класса A, которые проводятся в конце фазы программирования после того, как будут отлажены и включены в систему все модули изделия. Этот процесс сопровождается системной отладкой, когда исправляются ошибки сопряжения модулей.
Ко второй стадии относятся испытания класса B, когда осуществляется независимая (от группы разработки) проверка компонент законченного изделия как отдельно, так и во взаимодействии друг с другом. В идеальном случае испытания класса B начинаются после того, как разработчики объявляют, что изделие готово к передаче потребителю. В ходе испытаний класса B функционирование проверяется на соответствие требованиям, спецификациям, документации и цели.
Испытания класса C осуществляются после того, как группа испытаний рекомендует выпуск изделия и его распространение. Испытания класса C похожи на выборочный контроль производства, поскольку с полки случайным образом выбирают экземпляр программного изделия и выполняют прогон программ, бегло анализируя результаты.