ї області. Так само метою верифікації є досягнення гарантії того, що верифікується об'єкт (вимога або програмний код) реалізований без непередбачених функцій.
Атестація програмної системи - більш загальний процес, метою якого є доказ того, що в результаті розробки системи ми досягли тих цілей, які планували досягти завдяки її використанню. Іншими словами, атестація - це перевірка відповідності системи очікуванням замовника, тому вона проводиться після верифікації. Якщо подивитися на ці процеси з точки зору питання, на який вони дають відповідь, верифікація відповідає на питання - «Виконано чи програмне забезпечення правильно?» Або «Чи відповідає розроблена система вимогам?», А атестація - «Чи правильно працює система?» Або «Чи відповідає розроблена система очікуванням замовника?».
Оскільки основним завданням верифікації, як і атестації, є контроль якості програмного забезпечення, необхідно звернутися до цього поняття. Стандарт ISO 9126 [21-24] пропонує враховувати три різних точки зору при розгляді якості ПЗ: точку зору розробників, які сприймають внутрішня якість ПО, точку зору керівництва та атестації ПЗ на відповідність сформульованим до нього вимогам, в ході якої визначається зовнішнє якість ПЗ, і точку зору користувачів, які відчувають якість ПЗ при використанні. У всіх трьох випадках для опису якості використовується запропонована Макколу багаторівнева модель, що складається з цілей або факторів, атрибутів або критеріїв і метрик якості. Цілі (фактори) дозволяють на верхньому рівні визначати основні характеристики, які ПО повинно мати або вже має. Кожен фактор складається з набору атрибутів (критеріїв), що дозволяють якісно описати бажані або отримані характеристики більш детально. Кожен атрибут підтримується набором метрик, які дозволяють кількісно оцінювати наявність відповідної характеристики. Для двох точок зору - зовнішньої якості і внутрішнього якості - в рамках ISO 9126 запропонована модель якості, схематично представлена ??на Рис. 1
Малюнок 1. Фактори і атрибути зовнішнього і внутрішнього якості ПЗ по ISO 9126
Існують дві основні методики перевірки та аналізу систем в процесах верифікації та атестації: інспектування і автоматичний аналіз - це статичні методи, які можуть виконуватися на всіх етапах процесу розробки системи, а так само тестування - це динамічний метод, який виконується якщо вже створена виконується програма, тобто на етапі реалізації системи і після завершення її реалізації.
Тестування (testing)-це процес виконання програми (або частини програми) з наміром (або метою) знайти помилки. Налагодження (debugging) не є різновидом тестування. Хоча слова «налагодження» і «тестування» часто використовуються як синоніми, під ними маються на увазі різні види діяльності. Тестування - діяльність, спрямована на виявлення помилок; налагодження спрямована на встановлення точної природи відомої помилки, а потім - на виправлення цієї помилки. Ці два види діяльності пов'язані - результати тестування є вихідними даними для налагодження. Налагодження - складний процес і це обумовлено наступними причинами: від програміста потрібні глибокі знання специфіки управління використовуваними технічними засобами, операційної системи, середовища та мови програмування, реалізованих процесів, природи і специфіки різних помилок, методик налагодження і відповідних програмних засобів...