Уровни верификации. Верификация данных - что это такое? Ожидаемая практика по целевым задачам

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

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

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

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

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

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

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

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

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

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

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

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

Санкт-Петербургский

Государственный Электротехнический Университет

Кафедра МОЭВМ

по дисциплине

“Процесс разработки программных изделий”

“Верификация ПО”

Санкт-Петербург

    Цель верификации………………………………………………………………… стр. 3

    Вводные замечания……………………………………………………………….. стр. 3

    Специальные и общие целевые задачи………………………………………….. стр. 4

    Ожидаемая практика по целевым задачам……………………………………… стр. 4

SG1 Подготовка к верификации………………………………………………..... стр. 4

SG2 Проведение экспертиз (экспертного оценивания)………………………… стр. 7

SG3 Осуществление верификации……………………………………………..... стр. 9

    Приложение 1. Обзор средств автоматизации процесса верификации……….. стр. 11

    Приложение 2. Основные современные подходы к верификации…………….. стр. 12

    Список использованной литературы…………………………………………….. стр. 14

Интегрированнаяя модель совершенства и зрелости

ВЕРИФИКАЦИЯ

(Уровень зрелости 3)

    Цель

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

    Водные замечания

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

Цель верификации программных систем - это определение и выдача отчетов об ошибках, которые могут быть допущены на этапах жизненного цикла. Основные задачи верификации:

    определение соответствия высокоуровневых требований требованиям к системе;

    учет высокоуровневых требований в архитектуре системы;

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

    определение соответствия исполняемого кода требованиям к системе;

    определение средств, используемых для решения вышеперечисленных задач, которые технически корректны и достаточно полны.

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

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

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

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

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

Данный процесс может выполняться с различными степенями независимости исполнителей. Степень независимости исполнителей может распределяться как между различными субъектами в самой организации, так и субъектами в другой организации, с различными степенями распределения обязанностей. Данный процесс называется процессом независимой верификации , если организа­ция-исполнитель не зависит от поставщика, разработчика, оператора или персонала сопровожде­ния.

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

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

Основными методами экспертного оценивания являются:

    осмотр

    сквозной структурный контроль

3. Специальные и общие целевые задачи

3.1 Специальные целевые задачи :

SG 1 Готовьтесь к верификации

SG 2

SG 3

3.2 Общие целевые задачи :

GG 1 Достигайте специальных целей

GG 2 Поставьте управляемый про цесс

GG 3 Поставьте определенный процесс

GG 4 Поставьте количественно определенный процесс

GG 5 Поставьте оптимизационный процесс

4. Ожидаемая практика по целевым задачам

SG 1 Готовьтесь к верификации

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

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

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

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

    Должны быть определены необходимость наличия в проекте работ по верификации и степень организационной независимости при проведении данных работ. Проектные требования должны быть проанализированы на критичность. Критичность может быть оценена с точки зрения:

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

    совершенства используемой технологии программирования и рисков, связанных с ее применением;

    доступности фондов и ресурсов.

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

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

SP 1.1-1 Устанавливайте верификационную стратегию

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

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

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

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

Для разработки программного обеспечения

Верификационные методы могут включать в себя следующие:

    Тестирование зоны обслуживания

    Эксплуатационное тестирование и тестирование в предельных режимах

    Тестирование, основанное на таблице решений

    Тестирование, основанное на функциональной декомпозиции

    Тестирование случаев повторного использования

    Альфа и Бета тестирование

    Тестирование оперативного (рабочего) сценария

    Приемочные тесты

Для интегрированной продукции технологического процесса

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

SP 1.1-2 Устанавливайте среду верификации

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

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

Основная (типичная) продукция работ:

    Оборудование верификации

    Среда верификации

Вспомогательные работы:

1. Идентифицируйте требования к среде верификации

2 .Идентифицируйте доступные для повторного использования или модификации ресурсы на верификацию

3. Идентифицируйте оборудование и инструменты верификации

4. Приобретайте оборудование и программное обеспечение, используемые в обеспечение работ по верификации

SP 1.1-3 Определяйте детализированные верификационные планы

На данном этапе необходимо выполнение следующих работ:

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

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

    Должен быть реализован план проведения верификации. Проблемы и несоответствия, обнаруженные при проведении верификации, должны быть введены в процесс решения проблем (подраздел 6.8). Все возникшие проблемы должны быть решены, а обнаруженные несоответствия устранены. Результаты работ по верификации должны быть доступны заказчику и другим органи­зациям, участвующим в договоре.

Вспомогательные работы:

1. Планируйте множество всесторонних, интегрированных верификационных работ

2 . Развивайте и повышайте по необходимости качества верификационных критериев

3. Для верификации каждой работы определяйте методы верификации

4. Определяйте ожидаемый результат

SG 2 Проводите экспертное оценивание

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

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

SP 2.1-1 Готовьтесь к экспертному оцениванию

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

Основная продукция работ:

    График экспертного оценивания

    Контрольная таблица экспертного оценивания

    Входные и выходные критерии для продукции работ

    Критерии для перепроверки

    Тренировочный материал для экспертного оценивания

    Отобранная продукция работ, подлежащая экспертному оцениванию

Вспомогательные работы:

1. Определяйте, какой тип экспертного оценивания будет проводиться

Примеры возможных типов:

  • сквозной структурный контроль

2 . Определяйте требования к собираемой информации в течении экспертного оценивания

3. Устанавливайте и поддерживайте входные и выходные критерии для отобранной продукции работ

4. Устанавливайте и поддерживайте критерии для перепроверки отобранной продукции работ

5. Устанавливайте и поддерживайте контрольную таблицу для гарантии того, что отобранной продукции работ осматривается единообразно

6. Убедитесь, что продукция работ удовлетворяет входным критериям экспертизы до того, как эти работы будут направлены на экспертизу.

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

8. Распределяйте роли для экспертизы.

Варианты ролей:

    лидер (глава экспертизы)

    читатель

    протоколист

SP 2.2-1 Управляйте экспертным оцениванием

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

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

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

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

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

Основная продукция работ:

    Результаты экспертизы

    Заключения экспертизы

    Информация, полученная в ходе экспертизы

Вспомогательные работы:

1. Осуществляйте в ходе экспертизы назначенные роли

2 . Устанавливайте и документируйте дефекты и другие результаты в продукции работ

3. Фиксируйте результаты экспертизы и документируйте производимые действия

4. Собирайте информацию (данные) в ходе проведения экспертизы

5. Сообщайте решения экспертиз организаторам совместного дела (ведущим разработчикам продукции работ)

6. Планируйте повторные экспертизы, в случае удовлетворения продукции их критериям

7. Убеждайтесь, что удовлетворяются выходные критерии экспертизы

8. Распределяйте роли для экспертизы.

Варианты ролей:

    лидер (глава экспертизы)

    читатель

    протоколист

SP 2.3-2 Анализируйте полученную информацию

SG 3 Верифицируйте отобранные работы

SP 3.1-1 Осуществляйте верификацию

Типичная продукция работ:

    Результаты верификации

    Отчеты по верификации

    Демонстрации

Вспомогательные работы:

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

2 . Осуществляйте верификацию продукции в соответствии с выбранной верификационной стратегией и процедурами

3. Фиксируйте результаты верификационных работ

Критерии верификации :

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

    Верификация процесса

Процесс должен быть верифицирован по следующим критериям:

    соответствие и своевременность установления проектных требований к планированию;

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

    применимость стандартов, процедур и условий к процессам проектирования;

    укомплектованность и обученность персонала в соответствии с условиями договора.

Верификация требований

Требования должны быть верифицированы по следующим критериям:

      • непротиворечивость, выполнимость и тестируемость требований к системе;

        распределение требований к системе между объектами технических и программных средств и ручных операций в соответствии с проектом;

        непротиворечивость, выполнимость, тестируемость и точность отражения требований к системе в требованиях к программным средствам;

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

    Верификация проекта

Проект должен быть верифицирован по следующим критериям:

        правильность проекта, его соответствие установленным требованиям и учет этих требова­ний в проекте;

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

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

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

    Верификация программы

Программа должна быть верифицирована по следующим критериям:

        учет в программе условий проекта и установленных требований; ее тестируемость, правиль­ность и соответствие установленным требованиям и стандартам программирования;

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

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

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

    Верификация сборки

Сборка должна быть верифицирована по следующим критериям:

        полнота и правильность сборки программных компонентов и модулей каждого программ­ного объекта в соответствующий программный объект;

        полнота и правильность сборки технических и программных объектов и ручных операций в систему;

        выполнение задач сборки в соответствии с планом сборки.

    Верификация документации

Документация должна быть верифицирована по следующим критериям:

        соответствие, полнота и непротиворечивость документации;

        своевременность подготовки документации;

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

SP 3.2-2 Анализируйте результаты верификации и определяйте корректирующие действия

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

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

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

Основная продукция работ:

    Аналитический отчет (статистика, анализ несоответсвий, сравнение поведения реальной продукции и ее модели, отклонения и т.д.)

    Набор корректирующих мер по исправлению выявленных недостатков

SP 3.3-1 Осуществляйте ре-Верификацию (повторную верификацию)

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

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

Приложение 1. Обзор средств автоматизации процесса верификации

На рынке существует множество продуктов, позволяющих автоматизировать процесс верификации. Среди них Purify, TestCenter, Logiscope и др. Пакет Logiscope компании Verilog - это семейство инструментальных программ (TestChecker, CodeChecker, RuleChecker, ImpactChecker и Viewer), объединенных общей целью: помочь пользователям улучшить качество и провести всестороннее тестирование создаваемого ПО. В основе продукта лежит идея анализа исходного кода . Его последняя версия способна обрабатывать тексты программ, написанные более чем на 80 языках, включая C, C++, Pascal, Cobol, Fortran, PL1, ADA и даже языки ассемблера Intel и Motorola. Результаты анализа представляются в виде числовых показателей (метрик, которых существует более 50 типов), позволяющих судить о качестве исходного кода программ. Компонент TestChecker наблюдает за поведением тестируемой программы в ходе ее исполнения и в процессе своей работы строит деревья вызовов, профили выполнения, отмечает невызываемые функции и неисполняемые процедуры. Logiscope поддерживает функцию обратного проектирования, c помощью которой можно восстановить структуру программы по объектному коду, что полезно для понимания логики ее работы и характера используемых данных.

Специально для профессиональных программистов на языках C и С++ предназначена программа TestCenter компании CenterLine. Из статистических данных следует, что при обычном тестировании проверяется "исполнимость" только 40 - 50% общего кода программ. Объясняется это тем, что при традиционном, "ручном", тестировании невозможно проверить работу программы со всеми возможными комбинациями исходных данных или смоделировать редко встречающиеся ошибки типа нехватки памяти (out of memory). При таких процедурах тестирования трудно говорить о высоком качестве готовых программ. Пакет TestCenter позволяет организовать глобальное тестирование ПО на промышленном уровне, а само тестирование сделать естественной частью процесса разработки за счет его непосредственной интеграции с другими известными инструментальными оболочками (SPARCworks, SoftBench, ObjectCenter и ObjectCode).

В процессе отладки/тестирования программ TestCenter показывает строки исходного кода, не исполняемые во время проведения теста, неинициализированные участки памяти, память, которая резервировалась, но не использовалась, использовалась, но не освобождалась, случаи неверного применения операторов malloc/free и др. Имитатор ошибок (Error Simulator) может генерировать редко встречающиеся и трудно отлаживаемые ошибки типа disk full (нет места на диске) или упомянутой out of memory, а имитатор API (Simulator API) - интерфейсные ошибки, например неправильный порядок аргументов при вызове функций или некорректный код возврата. При использовании TestCenter не возникает необходимости в перекомпиляции программ, а для работы Error Simulator не понадобится даже исходного кода тестируемой программы.

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

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

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

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

Тестирование - процесс выполнения программы с целью обнаружения ошибки.

Тестовые данные - входы, которые используются для проверки системы.

Тестовая ситуация (test case) - входы для проверки системы и предполагаемые выходы в зависимости от входов, если система работает в соответствии со спецификацией требований.

Хорошая тестовая ситуация - та ситуация, которая обладает большой вероятностью обнаружения пока еще необнаруженной ошибки.

Удачный тест - тест, который обнаруживает пока еще необнаруженную ошибку.

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

Отказ - непредсказуемое поведение системы, приводящее к неожидаемому результату, которое могло быть вызвано дефектами, содержащимся в ней.


Тезис Дюэма - Куайна
Метаязык Тексты Основные начала
Течения Эмпириокритицизм , Махизм
Люди Конт , Тэн , Милль , Спенсер

В различных сферах деятельности человека под верифика́цией (от лат. verus - «истинный» и facere - «делать») могут подразумеваться разные понятия. Например:

  • Верификация - это подтверждение соответствия конечного продукта предопределённым эталонным требованиям.
  • Верификация - методика распознавания лжи (укрывательства, искажения).

В значении доказуемости, проверяемости объяснений (моделей) объектов /явлений , в зависимости от степени подтверждаемости реальностью (эмпирически , фактами), образует понятия :

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

Формальная верификация


Wikimedia Foundation . 2010 .

Синонимы :

Смотреть что такое "Верификация" в других словарях:

    - (этим. см. предыд. сл.). Удостоверение, проверка. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. ВЕРИФИКАЦИЯ свидетельство, удостоверение в подлинности. Словарь иностранных слов, вошедших в состав русского языка.… … Словарь иностранных слов русского языка

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

    - (от лат. verificatio доказательство, подтверждение) установление истинности или эмпирической осмысленности научных утверждений. Этот термин получил широкое распространение в связи с неопозитивистской программой эмпирического обоснования науки. С… … Философская энциклопедия

    Верификация - Верификация ♦ Verification Проверка истинности высказывания с целью его оценки. Так, расчет можно проверить, повторив ту же операцию или проделав другую, а гипотезу – посредством опыта. Правда, остается вопрос об истинности самой проверки –… … Философский словарь Спонвиля

    В культурологии (позднелат. verificatio доказательство, подтверждение верности или истинности чего либо; от лат. verus истинный и facio делаю) установление истинности тех или иных суждений (утверждений и отрицаний) о культуре в знании о… … Энциклопедия культурологии

    Проверка, сличение, подтверждение, свидетельство Словарь русских синонимов. верификация сущ., кол во синонимов: 5 валидация (4) … Словарь синонимов

    верификация - и, ж. vérification f. Свидетельство, удостоверение в подлинности. СИС 1954. Не для суеты, но для оного я в сие плодовитое описание вошел; некие происшествия я забыл и не помню верификациев чисел и имян, не писавши у себя никогда никаких записок.… … Исторический словарь галлицизмов русского языка

    Верификация - (лат. verificatio дәлел, растау) – ғылыми ақиқат пен оның деректері (мәліметтері) эмпирикалық, яғни тәжірибелік тексеру арқылы айқындалады деген әдістемелік концепция, принцип. Ол логикалық позитивизм мен аналитикалық философияның бір тармағы… … Философиялық терминдердің сөздігі

    верификация - контроль проверка Установление соответствия принятой и переданной информации с помощью логических методов . верификация (ITIL Service Transition) Деятельность, которая… … Справочник технического переводчика

    Англ. verification А. Проверка подлинности, правильности оформления документов, материалов. Б.Процесс сличения копии с оригиналом Словарь бизнес терминов. Академик.ру. 2001 … Словарь бизнес-терминов

    - (от латинского verus истинный и facio делаю), проверка, эмпирическое подтверждение теоретических положений науки путем сопоставления их с наблюдаемыми объектами, фактическими данными, экспериментом … Современная энциклопедия

Книги

  • Верификация гипотезы М. Фарадея о силовых линиях в космосе. Силовые линии М. Фарадея в космосе , Серков Аркадий. Эта книга будет изготовлена в соответствии с Вашим заказом по технологии Print-on-Demand. Конкретизируя гипотезу М. Фарадея, гравитационное поле рассматривается как вязко-упругое тело,…

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

На точность моделирования влияют следующие особенности:

■ упрощение модели;

■ ошибки при построении модели;

■ использование элементов с низкой точностью, с линейной аппроксимацией;

■ наличие в модели вырожденных конечных элементов;

■ некорректные связи;

■ некорректные параметры моделей;

■ некорректные свойства элементов;

■ некорректные начальные и граничные условия;

■ погрешности метода расчетов.

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

Верификация модели (model verification) – проверка ее истинности, адекватности. Дословный перевод с английского: verification – это: 1) контроль, проверка; Sync: check, examination; 2) удостоверение, подтверждение (предсказания, сомнения) (а); подтверждение под присягой (б); 3) засвидетельствование. В отношении к дескриптивным моделям верификация модели сводится к сопоставлению результатов расчетов по модели с соответствующими данными действительности – фактами и закономерностями экономического развития. В отношении нормативных (в том числе оптимизационных) моделей положение сложнее: в условиях действующего экономического механизма моделируемый объект подвергается различным управляющим воздействиям, не предусмотренным моделью; надо ставить специальный экономический эксперимент с учетом требований чистоты, т.е. устранения влияния этих воздействий, что представляет собой трудную, во многом еще не решенную задачу.

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

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

В более общем виде верификация – это подтверждение на основе представления объективных свидетельств того, что установленные требования были выполнены. Если образно, то верификация – процедура сопоставления того, что сделано (или еще пока делается), с тем, что было задумано (предписано) сделать, т.е. сопоставление законченного или промежуточного результата с входными требованиями – "взгляд назад".

Валидация – подтверждение на основе представления объективных свидетельств того, что требования, предназначенные для конкретного использования или применения, выполнены. Образно говоря, валидация – это процедура сопоставления того, что задумано сделать (или еще пока делается), с тем, что необходимо потребителю для конкретного применения, т.е. сопоставление планируемого или промежуточного результата деятельности с текущими выходными требованиями – "взгляд вперед". Дословный перевод с английского: validation – это: 1) ратификация, утверждение, Sync: ratification; 2) легализация, признание законной силы, придание юридической силы.

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

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

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

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

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

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

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

Примеры успешного применения модельного подхода можно обнаружить, изучая процесс разработки сложных систем, оперирующих большими объемами данных: СУБД, комплексы потоковой обработки речевой и текстовой информации, системы обеспечения информационной безопасности. Модельный подход к верификации программного обеспечения позволяет при правильном разбиении всего комплекса, проектировании и разработке модулей и атомарных составляющих выявлять логические ошибки еще на этапе проектирования. Так, при разработке программного обеспечения потоковой обработки растровых изображений в рамках модельного подхода была сформирована модель для верификации менеджера заданий для потоковой обработки и обработчиков атомарных заданий, позволившая выявить ошибки в проектировании протоколов взаимодействия модулей комплекса и алгоритме определения обработчика атомарного задания. Данная модель основана на использовании сетей Петри и сопутствующих алгоритмов.

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

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

точность. Насколько точны результаты работы приложения? Трудно реализуется при модельном подходе; логическая верификация в данном случае будет более эффективна;

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

соответствие. Соответствует ли реализованная функция данному стандарту? Стандарт используется как спецификация (источник требований), реализация функции моделируется;

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

Множество атрибутов надежности характеризует способность программного обеспечения поддерживать определенный уровень предоставляемых услуг при данных условиях и в течение заданного промежутка времени:

завершенность. Является ли изначально предоставляемый уровень услуг достаточным? Все ли было реализовано? Это свойство по определению не может быть проверено формальным тестированием: на каждую ожидаемую функцию формулируется требование (или множество требований), которое проверяется на модели;

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

устойчивость к окружению (прочность ). Может ли приложение работать нормально в нестандартном или неустойчивом окружении? Применение модельного подхода в данном случае возможно только при наличии возможности моделирования окружения. Однако корректное моделирование стресс-ситуации – весьма нетривиальная задача;

восстанавливаемость. Может ли приложение продолжать работу после сбоя? Как правило, это свойство явно прописывается в программе и нуждается только в проверке. Может быть проверено как модельной верификацией, так и тестированием.

Множество атрибутов по удобству пользования характеризует трудности при использовании программного обеспечения и их субъективную оценку тем или иным множеством пользователей:

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

обучаемость. Приспосабливается ли приложение к специфике пользователя? Используются алгоритмы искусственного интеллекта, которые могут быть верифицированы, соответственно может быть верифицирован и признак;

управляемость. Легко ли управлять работой приложения? Эта область, традиционная для бета-тестирования, в последнее время переходит в руки специалистов по пользовательским интерфейсам.

Множество атрибутов производительности выявляет связь уровня предоставляемых приложением услуг с объемом используемых при этом ресурсов:

поведение во времени. Адекватен ли временной график использования ресурсов? В данном случае нужно тестировать реальную систему, а не ее модель (например, для нахождения утечки памяти). Абсолютно не подходит для модельной верификации;

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

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

Множество атрибутов поддержки связано с усилиями по внесению определенных изменений в работающее приложение:

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

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

настраиваемостъ. Можно ли достичь желаемого эффекта без изменения самой программы, изменяя только настройки? Задача решается тестированием в реальных условиях;

стабильность. Как ведет себя программа при внесении изменений на лету? Эффективно решается модельной верификацией с помощью недетерминированных параллельных процессов;

тестируемость. Насколько легко проверяется работа изменившегося контура? Решается параллельно с тестированием или превентивно явным образом и к верификации отношения практически не имеет.

Множество атрибутов переместимости характеризует способность программного обеспечения быть перенесенным из одного окружения в другое:

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

устанавливаемость. Может ли приложение устанавливаться на разные платформы или в разные конфигурации? Как правило, явно задается в спецификации и явно реализуется и в проверке не нуждается;

согласованность. Какие стандарты были использованы в приложении? Не нуждается в проверке, однако само соответствие стандартам проверять можно и нужно;

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

Это относится к фазе формулирования требований, поэтому в верификации не участвует.

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



Поделиться