4.2 Методы контроля качества
Эффективность верификации и валидации, как и эффективность разработки ПО в целом зависит от точности и корректности формулировки требований к программному продукту.
Основой любой системы обеспечения качества являются методы его обеспечения и контроля. Методы обеспечения качества представляют собой техники, гарантирующие достижение определенных показателей качества при их применении.
Методы контроля качества предназначены для того, чтобы убедиться, что определенные характеристики качества ПО достигнуты. Сами по себе они не могут помочь их достижению, они лишь помогают определить, удалось ли получить в результате то, что хотелось, или нет, а также найти ошибки, дефекты и отклонения от требований. Методы контроля качества ПО можно классифицировать следующим образом [3].
Примером свойства первого типа служит отсутствие взаимных блокировок (deadlocks).
Взаимная блокировка возникает, если каждый из группы параллельно работающих в проверяемом ПО процессов или потоков ожидает прибытия данных или снятия блокировки от одного из других, а тот не может этого сделать, потому что не может продолжить выполнение, ожидая того же от первого или от третьего процесса, и т.д.
Примером свойства живости служит гарантированная доставка сообщения, обеспечиваемая некоторыми протоколами – как бы ни развивались события, если сетевое соединение между машинами будет работать, посланное с одной стороны (процессом на первом ПК) сообщение будет доставлено другой стороне (процессу на втором ПК).
Основная проблема этого подхода — огромное количество состояний в моделях, достаточно хорошо отражающих поведение реальных программ.
Для борьбы с комбинаторным взрывом состояний используются многочисленные методы оптимизации представления автомата и оптимизации выделения и поиска существенных для выполнения проверяемого свойства состояний.