- •1. Теоретична частина.
- •1.1. Теоретичне питання 1.
- •1.2 Теоретичне питання 2. Категорії програмних помилок. Документування та аналіз помилок. Способи відтворення помилки.
- •2. Практична частина.
- •2.1. Лабораторна робота № 1. Розробка тестів для перевірки програми
- •Специфікація програми має такий вигляд:
- •Специфікація даних має вигляд опису:
- •Визначити області еквівалентності вхідних параметрів.
- •Аналіз тестових випадків.
- •Текст програми.
- •Розроблена система тестів та очікуваних результатів.
- •2.2. Лабораторна робота № 2. Тема: Розробка тестів для методу покриття операторів.
- •Опис тестів.
- •Текст програми.
- •Список помилок, які можуть бути виявлені тестами.
- •2.3. Лабораторна робота № 3. Тема: Розробка тестів для методу покриття рішень.
- •Опис тестів.
- •Опис помилок, які можуть бути виявлені тестами.
- •Текст програми.
- •Висновок.
- •Використані джерела.
1.2 Теоретичне питання 2. Категорії програмних помилок. Документування та аналіз помилок. Способи відтворення помилки.
Останньою складовою процесу програмування є документування. Воно включає широкий спектр описів, що полегшують процес програмування і збагачують результуючу програму. Постійне документування має становити невід'ємну частину кожного кроку програмування. Постановка завдання, проектні документи, алгоритми і програми - все це документи. Внутрішня документація, зазначена безпосередньо в програму, полегшує читання коду. Призначення навчального посібника (ще однієї форми документації) - навчити користувача застосовувати нову програму; довідкове керівництво дозволяє ознайомитися з описом команд програмного забезпечення.
При розробці програми створюється великий обсяг різноманітної документації. Вона необхідна як засіб передачі інформації між розробниками програми, як засіб управління розробкою програми і як засіб передачі користувачам інформації, необхідної для застосування і супроводу програми.
Помилка – це реальне і неминуче явище в будь-якій програмі. Тому цілком природною виглядає принцип захисного програмування . Захисне програмування – це методологія створення програм, яка зменшує ймовірність помилок в програмі. Основна ідея полягає в тому, щоб передбачити в програмі якомога більше засобів контролю помилок.
Що стосується деяких видів типових помилок, яких може припустись розробник програми, то вони можуть бути такими:
1) вибраний невірний алгоритм (наприклад, для чисельного розв’язання систем лінійних алгебраїчних рівнянь існують різні методи, зокрема, метод Гаусса, метод Зейделя, метод прогонки і т.д. Ці методи є збіжними при виконанні певних (своїх для кожного метода) умов, які накладаються на систему рівнянь, і цей факт обов’язково необхідно враховувати при виборі метода в кожному конкретному випадку);
2) помилки аналізу (невірне програмування правильного алгоритму);
3) семантичні помилки (наприклад, якийсь оператор насправді діє не зовсім так, або зовсім не так, як передбачає програміст);
4) помилки при виконанні операцій (наприклад, ділення на нуль, втрата точності, вихід за межі типу даних);
5) помилки даних (наприклад, символьні замість числових);
6) неініціалізовані змінні; змінні без початкових значень – часта помилка в програмах, яку важко знайти, оскільки останній якраз може проініціалізувати змінну;
7) непроініціалізовані вказівники, які використуваються так, наче вони адресують динамічні змінні, можуть привести до тяжких наслідків для програми;
8) індексація з виходом за межі масиву, тобто використання як елементів масиву змінних, що знаходяться поза його межами;
9) непередбачені особливі випадки вводу-виводу – наприклад, коли не обробляється сигнал кінця файлу.
І якщо про синтаксичні помилки піклується компілятор, то помилки, перелічені вище, можуть бути виявлені лише на етапі тестування.
2. Практична частина.
2.1. Лабораторна робота № 1. Розробка тестів для перевірки програми
Мета.
Навчитися складати тести для перевірки програми.
Завдання.
Скласти набір тестів для перевірки програми, за допомогою якої вирішується завдання.