Верификация что это? Верификация - это процесс проверки программного продукта

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

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

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

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

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

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

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

    Цель верификации………………………………………………………………… стр. 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 не понадобится даже исходного кода тестируемой программы.

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

Что такое верификация данных?

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

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

Результаты работ

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

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

Верификация данных от ScanExpress: преимущества выбора

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


Заказывая услуги у нас, вы делаете выбор в пользу:
  1. Профессионализма . Каждый специалист, работающий в нашей компании, имеет большой опыт в своей области. В распоряжении наших работников современное многофункциональное оборудование, которое позволяет осуществлять архивные услуги, верификацию документов в частности, максимально быстро и эффективно;
  2. Индивидуального подхода. Мы работаем с любыми объемами документов, выполняем разные виды архивных услуг как по отдельности, так и в комплексе. Вы можете заказать у нас только верификацию данных, а можете выбрать услугу перевода бумажного архива в электронный вид под ключ. Все, что требуется от вас, просто обратиться к нам и высказать свои пожелания, обо всем остальном мы позаботимся;
  3. Доступных цен . Мы стремимся наладить максимально плодотворное и взаимовыгодное сотрудничество с каждым клиентом, поэтому предлагаем свои услуги по привлекательной стоимости. Оплата производится по факту, чтобы вы могли убедиться в безупречном качестве выполненных работ.

Если открыть любую справочную литературу, мы увидим, что термин “Верификация” произошёл (от лат. verus — «истинный»). Более широкое значение этого слова означает проверку, подтверждение, доказательство и т.п. Чтобы понять, как это выглядит, мы должны представить это в виде двух сравнительных систем. Одно система является, как бы” эталоном”, вторая система предполагается как “модель эталона”. При сравнении (верификации) двух этих систем, происходит оценка совпадений (идентичности) систем.

В первые, термин “Верификация“ был принят в Вене (Австрия) в самом начале 20-го века, так называемым венским кружком. “Венский кружок” был организован преподавателями и студентами Венского университета. В числе его участников были известные ученые математики, физики, философии и экономисты (Ханс Хан, Отто Нейрат, Рихард фон Мизес, Филип Франк и другие)

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

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

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

Верификация (verification**) — это акт или процедура подтверждения правдивых (реальных, подлинных) данных. Дословно Verification (англ.) — проверка, контроль, засвидетельствование, подтверждение…

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

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

  • Подтверждение личности и гражданства (паспорт, водительское удостоверение, квитанции об оплате коммунальных услуг, фотографии с определёнными документами и пр.);
  • Указание номера мобильного телефона;
  • Можно особо отметить, что там, где нет серьезной и ответственной верификации, там обязательно, рано или поздно, появится мошенничество. Это можно наблюдать в реальной жизни. Грандиозные обманы в сфере жилищного строительства — обмануто более 50тыс. покупателей квартир. Обман при покупке жилья, автомобилей и других дорогих вещей — причина мошенничество, отсутствие достаточной культуры у участников, доверчивость и невнимательность при проверке документов, а именно отсутствие профессиональной верификации.

Нужно способствовать и развивать сервисы верификации.

Современные технические средства распознавания опережают уровень зрения человека в сотни или тысячи раз. Там, где человек не заметит подделку, специальный сканер определит все изъяны и неточности. В качестве примера можно привести систему “iDensic” (Sum&Substance), которая используя последние достижения нейросетей, сможет выявить все исправления и изменения в документах автоматически. Кроме сканеров при проверке и верификации могут использоваться более сложные системы, подключенные к большим базам данных (база розыска, стоп — листы, сторожевые карточки т.д.).

Документальная верификация в Российской Федерации.

Эти процессы начинают входить в повседневную жизнь россиян. Мы ежедневно можем сталкиваться с такими системами проверки и верификации: BeepCar - безопасность в системе поездок (проверка и при необходимости блокировка водительских удостоверений),“ YouDrive” -проверка водителей,”Gett Taxi “- проверка водителей, “YouDo”- проверка исполнителей работ и услуг (няни, седелки, ремонтники, курьеры и пр.)

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

Верификация в международных проектах Европы, Азии и США.

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

Мировой рынок услуг верификации оценен в более чем в $10млрд. Российский рынок имеет положительную динамику и составляет -$100мл. и представлен такими компаниями (Identity Exchange, CheckU и Sum&Substance).

Верификация-это одна из технологий нашего будущего времени!


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

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

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

Для дальнейшего изложения нам необходимо ввести термин "артефакт жизненного цикла ПО". Артефактами жизненного цикла ПО называются различные информационные сущности, документы и модели, создаваемые или используемые в ходе разработки и сопровождения ПО. Так, артефактами являются техническое задание, описание архитектуры, модель предметной области на каком-либо графическом языке, исходный код, пользовательская документация и т.д. Различные модели, используемые отдельными разработчиками при создании и анализе ПО, но не зафиксированные в виде доступных другим людям документов, не могут считаться артефактами.

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

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

Различие между верификацией и валидацией проиллюстрировано на рисунке 1.

Приведенные определения получены некоторым расширением определений из стандарта IEEE 1012 на процессы верификации и валидации . В стандартном словаре терминов программной инженерии IEEE 610.12 1990 года определение верификации по смыслу примерно то же, а определение валидации несколько другое - там говорится, что валидация должна проверять соответствие полученного в результате разработки ПО исходным требованиям к нему. В этом случае валидация являлась бы частным случаем верификации, что нигде в литературе по программной инженерии не отмечается, поэтому, а также потому, что оно поправлено в IEEE 1012 2004 года, это определение следует считать неточным. Частое использование фразы B. Boehm"а :

Верификация отвечает на вопрос "Делаем ли мы продукт правильно?", а валидация- на вопрос "Делаем ли мы правильный продукт?"

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

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

Библиографический список

  • В.В. Кулямин "Методы верификации программного обеспечения". Институт системного программирования РАН 109004, г. Москва, ул. Б. Коммунистическая, д. 25.
    http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
  • IEEE 1012-2004 Standard for Software Verification and Validation. IEEE, 2005.
  • IEEE 610.12-1990 Standard Glossary of Software Engineering Terminology, Corrected Edition. IEEE, February 1991.
  • B. W. Boehm. Software Engineering; R&D Trends and Defense Needs. In R. Wegner, ed. Research. Directions in Software Technology. Cambridge, MA:MIT Press, 1979.
  • ISO/IEC 12207 Systems and software engineering - Software life cycle processes. Geneva, Switzerland: ISO, 2008.

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

В статье «Моделирование объекта как целого и как композиции» я рассмотрел два подхода к моделированию объекта: как целого и как конструкции. В текущей статье нам это деление понадобится.

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

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

1. Использование неправильных знаний об Объекте. Модель Объекта в головах у людей может не соответствовать реальности. Не знали реальной опасности землетрясений, например. Соответственно, могут быть неправильно сформулированы требования к объекту.

2. Неполная запись знаний об Объекте – что-то пропущено, сделаны ошибки. Например, знали о ветрах, но забыли упомянуть. Это может привести к недостаточно полному описанию требований к объекту.

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

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

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

6. Созданная система не соответствует описанию.

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

Что такое верификация? По-русски, верификация – это проверка на соответствие правилам. Правила оформляются в виде документа. То есть, должен быть документ с требованиями к документации. Если документация соответствует требованиям этого документа, то она прошла верификацию.

Что есть валидация? По-русски валидация – это проверка правильности выводов. То есть, должен быть свод знаний, в котором описано, как получить описание конструкции на основе данных об объекте. Проверка правильности применения этих выводов – есть валидация. Валидация - это в том числе проверка описания на непротиворечивость, полноту и понятность.

Часто валидацию требований путают с валидацией продукта, построенного на основе этих требований. Так делать не стоит.