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

Не каждый может ответить на этот вопрос. Зачастую, многие, услышав это слово, не понимают, что оно обозначает и в какой сфере употребляется. Так, давайте попробуем в этом разобраться. Для начала, наверное, стоит провести лингвистический анализ. Пришло это слово в русский язык с латинского и переводится как "истинный"- verus и "делать" — facere. Значит, верифицировать — это подтверждать чью-либо личность. Разобравшись в этом, сразу становится понятно значение этого термина. Но где же используют это слово? А используется термин "верифицировать" в разных областях и вполне активно. Например:

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

Примеры верификации.

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

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

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

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

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

Как понять, что страница верифицирована?

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

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

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

Плюсы и минусы верификации.

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

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

Подписаться на сайт

Ребята, мы вкладываем душу в сайт. Cпасибо за то,
что открываете эту красоту. Спасибо за вдохновение и мурашки.
Присоединяйтесь к нам в Facebook и ВКонтакте

Что такое верификация? Это слово имеет разнообразные значения. Чаще всего, всё зависит от того, в какой сфере оно было употреблено. Сам термин образован от сочетания латинских слов «verus» и «facere», что в переводе на русский означает истинный и делать соответственно.

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

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

Что такое верификация?

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

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

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

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

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


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

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

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

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

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

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

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

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

Термины «валидация» и «верификация» появились в русской речи не так давно. Их проникновение в наш язык связано с внедрением стандартов ISO 9000, связанных с новыми требованиями к качеству управленческой сферы.

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

По одной из версий, понятие «верификация» происходит от латинских слов verus (истинный) и facere (делать). Существует и другое мнение, согласно которому слово взято из позднелатинского языка, где термин verificatia означает «подтверждение» .

Понятие «валидация» тоже имеет латинские корни и связано со словом validus , которое переводится как «сильный, действенный» .

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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