
- •1 Постановка завдання
- •2 Загальна частина
- •2.1 Вимоги до технічних засобів, що застосовуються
- •2.2 Опис інструментальних засобів, що застосовуються
- •3 Спеціальна частина
- •3.1 Опис структури бази даних
- •3.1.1 Опис інтерфейсу програми
- •3.1.2 Опис вхідних даних
- •3.1.3 Контроль коректності вхідних та вихідних даних
- •3.1.4 Опис структури та складових системи
- •3.2 Експлуатаційна частина
- •3.2.1 Підготовка програми до виконання
- •3.2.2 Інструкція користувача
- •3.2.3 Опис критичних ситуацій та повідомлень програми
- •3.2.4 Опис процесу налагодження програми
- •4 Економічна частина
- •5 Охорона праці
3.2.3 Опис критичних ситуацій та повідомлень програми
Протягом роботи програма видає повідомлення, пов’язанні з видачею попереджень користувачу, інформування про некоректні введені дані тощо.
На рисунку 3.24 зображене повідомлення про невірний діапазон цін.
Рисунок 3.24 – Повідомлення про не вірно введений діапазон цін
Це повідомлення виникає тоді, коли було некоректно задано діапазон цін у пошуку. Необхідно задати вірний діапазон цін.
На рисунку 3.25 зображено повідомлення про порожній кошик.
Рисунок 3.25 – Повідомлення про порожній кошик
Це повідомлення виникає тоді, коли до кошику не було додано ніяких товарів. Необхідно обрати товари, та додати їх до кошику.
На рисунку 3.26 зображено повідомлення про невірний пароль адміністратора.
Рисунок 3.26 - Повідомлення про невірний пароль адміністратора
Це повідомлення виникає у випадку, якщо пароль введений невірно. Необхідно ввести вірний пароль.
3.2.4 Опис процесу налагодження програми
Тестування виявляє лише наявність, але ніяк не відсутність помилок.
Налагодження програм – досить складний процес. По-перше, для виправлення помилки необхідно повністю виявити її причини, які часто далеко неочевидні. По-друге, ця діяльність психологічно носить негативний характер, в тому розумінні, що програміст повинен визнати, що саме його помилка є причиною програмного збою. Крім того, налагодження – це процес, який призупиняється лише тимчасово, поки тестування не виявить наявність чергової помилки.
Існують три основні методи налагодження програми, кожен з яких має свої особливості:
1) Використати при створенні програми всі методи, які дозволили б зменшити кількість помилок в програмі, а у випадку їх виявлення використовувати переважно налагодження вручну, тобто перегляд тексту програми та ретельний його аналіз.
2) Переважне використання програмних засобів комп’ютера – так званих налагоджувачів (англ. debuggers) для пошуку помилок. Як варіант цього метода можна розглядати трасування, або можливість покрокового виконання програми і слідкування за значеннями змінних в процесі виконання програми, яке є доступним у деяких програмних середовищах. Цей метод не гарантує знаходження всіх помилок, тому що програмний налагоджувач може працювати більш коректно, ніж компілятор – наприклад, обнуляти невизначені змінні або інакше розподіляти пам’ять.
3) Поєднує створення програми з одночасним налагодженням та тестуванням її частин. Цей метод вимагає високої самодисципліни програміста і є більш ефективним у випадку аналітичного програмування (програмування згори донизу).
Деякі види типових помилок, які може припустити розробник програми:
1) вибраний невірний алгоритм (наприклад, для чисельного розв’язання систем лінійних алгебраїчних рівнянь існують різні методи, зокрема, метод Гаусса, метод Зейделя, метод прогонки і т.д. Ці методи є збіжними при виконанні певних (своїх для кожного метода) умов, які накладаються на систему рівнянь, і цей факт обов’язково необхідно враховувати при виборі метода в кожному конкретному випадку);
2) помилки аналізу (невірне програмування правильного алгоритму);
3) семантичні помилки (наприклад, якийсь оператор насправді діє не зовсім так, або зовсім не так, як передбачає програміст);
4) помилки при виконанні операцій (наприклад, ділення на нуль, втрата точності, вихід за межі типу даних);
5) помилки даних (наприклад, символьні замість числових);
6) неініціалізовані змінні; змінні без початкових значень – часта помилка в програмах, яку важко знайти debugger’ом, оскільки останній якраз може проініціалізувати змінну;
7) непроініціалізовані вказівники, які використуваються так, наче вони адресують динамічні змінні, можуть привести до тяжких наслідків для програми;
8) індексація з виходом за межі масиву, тобто використання як елементів масиву змінних, що знаходяться поза його межами;
9) непередбачені особливі випадки вводу-виводу – наприклад, коли не обробляється сигнал кінця файлу.
І якщо про синтаксичні помилки піклується компілятор, то помилки, перелічені вище, можуть бути виявлені лише на етапі тестування.
Компіляція додатка може виконуватися декількома способами. Якщо ви працюєте з групою проектів, то всі описані дані відносяться до того проекту, що у даний момент активний.
Компіляція з наступним виконанням додатка здійснюється командою Run | Run, або відповідною швидкою кнопкою, або "гарячою" клавішею F9. У цьому випадку виконується компіляція програми, її компонування, створюється виконуваний модуль .ехе і він запускається на виконання. Утім, створення модуля .ехе і виконання буде проводитися тільки у випадку, якщо при компіляції і компонуванні не виявлені непоправні помилки.
У процесі компіляції і компонування на екрані з'являється вікно. У його верхньому рядку знаходиться ім'я компілюємого проекту.
У наступному рядку відображається поточна операція: компіляція визначеного модуля (Unіt.cpp) або компонування (Lіnkіng). У третьому рядку вікна відображається поточний рядок модуля (Current lіne), оброблюваний компілятором, і загальне число рядків у модулі (Total lіnes).
У нижньому рядку відображається виявлене на даний момент число зауважень (Hіnts), попереджень (Warnіngs) і помилок (Errors). Клавіша Cancel унизу вікна дозволяє перервати процес компіляції і компонування.
Перелік помилок, які зустрічались в процесі налагодження, приведений у додатку Д.
Алгоритмічні помилки виявити важче. Етап налагодження можна вважати закінченим, якщо програма правильно працює на одному-двох наборах вхідних даних. Таким чином, процес налагодження тісно пов'язаний з етапом тестування. Пошук таких помилок особливо важливий, якщо припускається, що програмою будуть користуватися інші. На цьому етапі варто перевірити, як поводиться програма в тій чи іншій ситуації.
Найголовніший принцип в тестуванні програм полягає в тому, що про цю стадію потрібно думати під час всього періоду розробки програми. Створюючи черговий фрагмент програми, обов’язково треба мати на увазі тест, який міг би перевіряти коректність його роботи. Якщо немає відповіді на питання про спосіб тестування даного фрагменту, можливо потрібно розбити його на підпрограми, які тестувати легше, або просто переписати.
Якість тестування визначається значним чином не кількістю тестових прогонів. Головне, щоб кожний черговий тестовий прогін контролював би щось таке, що не було перевірено в попередніх прогонах. Задача тестування полягає в тому, щоб створити для програми максимально напружений режим роботи.