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

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

Верификация программного обеспечения Курс лекций МОСКВА 2006

Рис. 1 Тестирование, верификация и валидация


Верификация программного обеспечения – более общее понятие, чем тестирование. Целью верификации является достижение гарантии того, что верифицируемый объект (требования или программный код) соответствует требованиям, реализован без непредусмотренных фун­к­ций и удовлетворяет проектным спецификациям и стандартам. Процесс вери­фи­ка­ции включает в себя инспекции, тестирование кода, анализ результатов тестирования, формирование и анализ отчетов о проблемах. Таким образом, принято считать, что процесс тестирования является составной частью процесса верификации, такое же допущение сделано и в данном учебном курсе.

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

Если посмотреть на эти три процесса с точки зрения вопроса, на который они дают ответ, то тестирование отвечает на вопрос «Как это сделано?» или «Соответсвует ли поведение разработанной программы требованиям?», верификация – «Что сделано?» или «Соответствует ли разработанная система требованиям?», а валидация – «Сделано ли то, что нужно?» или «Соответствует ли разработанная система ожиданиям заказчика?».


Верификация — это обычно внутренний процесс управления качеством, обеспечивающий согласие с правилами, стандартами или спецификацией. Простой способ запомнить разницу между валидацией и верификацией заключается в том, что валидация подтверждает, что «вы создали правильный продукт», а верификация подтверждает, что «вы создали продукт таким, каким и намеревались его сделать».

Ещё один пример типичной верификации: проведение испытания оборудования. Имея определенные требования на руках, мы проводим испытание продукта и фиксируем, соблюдены ли требования. Результат верификации — это ответ на вопрос «Соответствует ли продукт требованиям?».

Но далеко не всегда продукт, соответствующий установленным требованиям, можно применять в конкретной ситуации. Например, лекарство прошло все положенные испытания и поступило в продажу. Значит ли это что оно может быть применено каким-то конкретным больным? Нет, так как каждый пациент имеет свои особенности и конкретно для этого лекарство может быть губительным, то есть кто-то (врач) должен подтвердить: да, этому больному можно принимать это лекарство. То есть врач должен выполнить валидацию: придать законную силу конкретному применению.

Или еще пример. Предприятие выпускает трубы, предназначенные для закладки в землю, в соответствии с некоторыми ТУ (Техническими условиями). Продукция этим ТУ соответствует, но поступил заказ, предполагающий укладку труб по дну моря. Могут ли трубы, соответствующие имеющимся ТУ, быть применены в данном случае? Именно валидация и дает ответ на этот вопрос.


Нетрудно видеть, что еще одно отличие состоит в том, что верификация производится всегда, а вот необходимость в валидации может и отсутствовать. Она появляется только тогда, когда возникают требования, связанные с конкретным применением продукции. Если фармацевтический завод выпускает лекарства, то он будет проверять лишь их соответствие требованиям, а проблемами применения конкретных лекарств конкретными пациентами заниматься не будет.

Таким образом, можно констатировать следующее:

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

— валидация — проводится при необходимости, выполняется методом анализа заданных условий применения и оценки соответствия характеристик продукции этим требованиям, результатом является вывод о возможности применения продукции для конкретных условий.

Исходя из вышеописанного, валидация должна быть определена как подтверждение на основе представления объективных свидетельств того, что требования, предназначенные для конкретного использования или применения, точно и в полном объёме предопределены, а цель достигнута.

Принципы верификации


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

Термины «верификация» и «валидация» зачастую используют в технической литературе. Легко проследить связь этих терминов с анализом качества  программного обеспечения. Научная литература пестрит различными трактовками данных понятий. Итак, разберемся в этом вопросе.

354634Наиболее верным, с нашей точки зрения, есть следующее определение. Валидацией и верификацией можно назвать виды деятельности, направленные на проведение контроля качества программного продукта для обнаружения на стадиях разработки ошибок в нем. Кажется, они имеют общую цель. Однако они обладают различиями в проверяемых свойствах, ограничениях и правилах, несоблюдая которые можно назвать ошибкой.

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

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


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

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

Методы верификации

Верификация – это ответ на вопрос «Выполнено ли программное обеспечение правильно?», а валидация – «Сделано ли правильное программное обеспечение?».


43643Ища ответ на поставленные вопросы обнаруживается, что валидация (или аттестация) по содержанию имеет значение пошире, чем проверка (верификация). Но верификация тесно связана с контролем качества программного продукта.

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

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

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

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

Мы коротко рассмотрели понятие верификации, его принципы, методы. Оставляйте свои комментарии или дополнения к материалу.

Верификация программного обеспечения Курс лекций МОСКВА 2006

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector