ЗМІСТ
1. ВИДИ КОНТРОЛЮ ПРОГРАМ
2. ЦІЛІ, ПРИНЦИПИ І ЕТАПИ ТЕСТУВАННЯ
3. СТРУКТУРНЕ ТЕСТУВАННЯ
4. СПІЛЬНЕ ТЕСТУВАННЯ МОДУЛІВ
5. ФУНКЦІОНАЛЬНЕ ТЕСТУВАННЯ
6. ТЕСТУВАННЯ ПРОГРАМНОГО КОМПЛЕКУ ВЦІЛОМУ
7. ВІДЛАДКА ПРОГРАМ
ВИДИ КОНТРОЛЮ ПРОГРАМ
Програмний комплекс - це сукупність програмних модулів, призначених для рішення однієї задачі і складових одне ціле.
Основними різновидами контролю програмного забезпечення є візуальний, статичний і динамічний.
Візуальний контроль - це перевірка програм “ за столом “, без використання комп'ютера. На першому етапі візуального контролю здійснюється читання програми, причому особлива увага приділяється наступним її елементам:
коментарям і їх відповідності тексту програми;
умовам в операторах умовного вибору ( IF, CASE ) і циклу;
складним логічним виразам;
можливості незавершення ітераціонних циклів ( WHILE, REPEAT, LOOP ).
Другий етап візуального контролю - крізний контроль програми
( її ручна прокрутка на декількох зазделегідь підібраних простих тестах). Поширена думка, що більш вигідним є перекладання більшої частини роботи по контролю програмних засобів на комп'ютері, помилкова. Основний довід на користь цього такий: при роботі на комп'ютері головним чином удосконалюються навички у використанні клавіатури, в той час як програмістсьа кваліфікація присвоюється передусім за столом.
Статичний контроль- це перевірка програми по її тексту (без виконання) за допомогою інструментальних засобів. Найбільш відомою формою статичного контролю є синтаксичний контроль програми за допомогою компілятора, при якому перевіряється відповідність тексту програми синтаксичним правилам мови програмування.
Повідомлення компілятора звичайно діляться на декілька груп в залежності від рівня тягаря порушення синтаксису мови програмування:
- інформаційні повідомлення і попередження, при виявленні яких компілятор, як правило, будує коректний об'єктний код і подальшу роботу з програмою (компонування, виконання) можлива (проте повідомлення цієї групи також повинні ретельно аналізуватися, оскільки їх поява також може свідчити про помилку в програмі - наприклад, через невірне розуміння синтаксису мови);
- повідомлення про помилки, при виявленні яких компілятор намагається їх виправити і будує об'єктний код, але його коректність малоймовірна і подальша робота з ним швидше усього не можлива;
3
- повідомлення про серйозні помилки, при наявності яких побудований компілятором об'єктний код явно некоректний і його подальше використання неможливо;
- повідомлення про помилки, виявлення яких привело до припинення синтаксичного контролю і побудови об'єктного коду.
Однак, практично будь-який компілятор пропускає деякі види синтаксичних помилок. Місце виявлення помилки може знаходитися далеко по тексту програми від місця істинної помилки, а текст повідомлення компілятора може не вказувати на істинну причину помилки. Одна синтаксична помилка може спричинити генерацію компілятором декількох повідомлень про помилки (наприклад, помилка в описі змінної приводить до появи повідомлення про помилку в кожному операторі програми, що використовує цю змінну).
Другою формою синтаксичного контролю може бути контроль структурованості програм, тобто перевірка виконання угод і обмежень структурного програмування. Прикладом подібної перевірки може бути виявлення в тексті програми ситуацій, коли цикл утвориться за допомогою оператора безумовного переходу (використання оператора GOTO для переходу вгору по тексту програми ). Для проведення контролю структурованості можуть бути створені спеціальні інструментальні засоби, а при їх відсутності ця форма статичного контролю може поєднуватися з візуальним контролем.
Третя форма статичного контролю - контроль правдоподібності програми, тобто виявлення в її тексті конструкцій, які хоч і синтаксично коректні, але швидше усього містять помилку або свідчать про неї. Основні неправдоподібні ситуації:
- використання в програмі неініціалізувати змінних (тобто змінних, що не набули початкового значення);
- наявність в програмі описів елементів, змінних, процедур, міток, файлів, надалі що не використовуються в її тексті;
- наявність в тексті програми фрагментів, що ніколи не виконуються;
- наявність в тексті програми змінних, ні разу що не використовуються для читання після привласнюючи їм значень;
- наявність в тексті програми явно нескінченних циклів;
Навіть якщо присутність в тексті програми неправдоподібних конструкцій не приводить до її неправильної роботи, виправлення цього фрагмента підвищить ясність і ефективність програми, т. е. благотворно позначиться на її якості.
Для можливості проведення контролю правдоподібності в повному об'ємі також повинні бути створені спеціальні інструментальні засоби, хоч ряд можливостей по контролю правдоподібності є в існуючих відлагоджувальний і звичайних компіляторах.
4
Потрібно зазначити, що створення інструментальних засобів контролю структурованості і правдоподібності програм може бути істотне
спрощено при застосуванні наступних принципів:
1) проведення цих додаткових форм статичного контролю після завершення компіляції і тільки для синтаксично коректних програм;
2) максимальне використання результатів компіляції програми і, зокрема, інформації, що включається в лістинг компілятора;
3) замість повного синтаксичного розбору тексту програми, що перевіряється побудова для неї списку ідентифікаторів і списку операторів з вказівкою всіх їх необхідних ознак.
При відсутності інструментальних засобів контролю правдоподібності ця фаза статичного контролю також може об'єднуватися з візуальним контролем.
Четвертою формою статичного контролю програм є їх верифікація, тобто аналітичний доказ їх коректності.
У інтуїтивному значенні під коректністю розуміють властивості програми, що свідчать про відсутність в ній помилок, допущених розробником на різних етапах проектування ( специфікації, проектування алгоритму і структур даних, кодування ). Коректність самої програми по відношенню до цілей, поставлених перед її розробкою ( тобто ця відносна властивість ). Відмінність поняття коректності і надійності програм в наступному:
надійність характеризує як програму, так і її “оточення" ( якість апаратури, кваліфікацію користувача і т.п. );
кажучи про надійність програми, звичайно допускають певну, хоч і малу, частку помилок в ній і оцінюють імовірність їх появи.
Надійність можна представити сукупністю наступних характеристик:
1) цілісність програмного засобу (здатність його до захисту від відмов);
2) живучість (здібність до вхідного контролю даних і їх перевірки в ході роботи);
3) завершеність (бездефектність готового програмного засобу, характеристика якості його тестування);
4) працездатність (здатність програмного засобу до відновлення своїх можливостей поле збоїв).