Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
111111111111111.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
7.94 Mб
Скачать

3. 4 Налагодження та тестування програм

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

Існують три основні методи налагодження програми, кожен з яких має свої особливості:

    • Налагодження вручну, тобто перегляд тексту програми та ретельний його аналіз.

    • Переважне використання програмних засобів комп’ютера – так званих налагоджувачів (англ. debuggers) для пошуку помилок.

    • Поєднує створення програми з одночасним налагодженням та тестуванням її частин. Цей метод вимагає високої самодисципліни програміста і є більш ефективним у випадку аналітичного програмування (програмування згори донизу) [11].

Отже, помилка – це реальне і неминуче явище в будь-якій програмі. Тому цілком природною виглядає принцип захисного програмування [11]. Захисне програмування – це методологія створення програм, яка зменшує ймовірність помилок в програмі. Основна ідея полягає в тому, щоб передбачити в програмі якомога більше засобів контролю помилок.

У php всі помилки діляться на такі основні категорії:

  1. e_all- всі види помилок і попередження (крім, e_strict);

  2. e_error- критичні помилки, які призводять до зупинки виконання скрипта;

  3. e_warning - попередження (не являються критичними помилками, означає що скрипт продовжує свою роботу);

  4. e_parse - помилки компіляції при перевірці коду скрипта перед його виконанням;

  5. e_notice - повідомлення під час виконання скрипта (наприклад, знайдений баг схожий на помилку, але можливо він був допущений умисно і є робочим кодом у наслідок ініціалізації скрипта);

  6. e_strict - повідомлення під час виконання скрипта щодо зміни коду для поліпшення його інтерпретації, наприклад попереджати вас про використання небажаних (застарілих) функцій;

  7. e_core_error - критичні помилки пов'язані безпосередньо з самим php ;

  8. e_core_warning - попередження пов'язані безпосередньо з самим php, що не критичні помилки (означає що скрипт продовжує свою роботу);

  9. e_compile_error - критичні помилки під час компіляції;

  10. e_compile_warning - попередження під час компіляції, що не критичні помилки (означає що скрипт продовжує свою роботу);

  11. e_user_error - користувальницькі критичні помилки;

  12. e_user_warning - користувальницькі попередження;

  13. e_user_notice - користувальницькі повідомлення;

У php існує дуже детальна і потужна система налагодження, яку можна налаштувати як безпосередньо в самому скрипті так і в налаштуваннях безпосередньо самого PHP.

Щоб налаштувати налагодження- вивід помилок в налаштуваннях php, необхідно відкрити файл php.ini (знаходиться в корені каталогу з встановленим php) і знайти в ньому блок Error handling and logging. Щоб включити показ помилок на дисплей необхідно розкоментувати наступні рядки:

error_reporting = E_ALL & ~E_NOTICE | E_STRICT

Для налагодження php скриптів безпосередньо в скриптах існують спеціальні функції, які відображають всі виявлені помилки:

  1. error_reporting() - функція встановлює які види помилок слід далі виводити і повертає попередній вид помилок.

  2. trigger_error(), аналогічна функція user_error() - генерує повідомлення користувача під виглядом помилок e_user_error, e_user_warning і e_user_notice

У php текст помилок, як правило детально описує виявлені помилки і вказує номер рядка з помилкою.

До програмних засобів відлагодження коду можна віднести JDUMP, APD, Xdebug.

Розробники використовують для налагодження стандартні функції print_r () і var_dump (). вони показують всі вміст змінної, але висновок доводиться обрамлятиме тегами і в результаті ми отримуємо спотворений зовнішній вигляд сайту. У відладчику JDUMP відкриється спливаюче вікно з красивим розширюваним деревом DHTML, показуючи повний вміст змінної з усіма вкладеннями, і список доступних методів для кожного з об'єктів. Xdebug також заснован на функції var_dump ().

APD є передовий відладчик PHP. Він був написаний, щоб забезпечити профілювання та налагодження коду для PHP, а також надає можливість роздрукувати повне трасування стека. APD підтримує інтерактивне налагодження, але за замовчуванням він записує дані трасування. Він також пропонує події на основі реєстрації, різні рівні інформації (включаючи виклики функцій, аргументи, таймінги і т.д.) може бути включення або виключення окремих сценаріїв.

Розглянемо деякі принципи тестування програм.

    • Використовуйте підхід захисного програмування. Тобто передбача-йте ще під час написання програми обробку ситуацій, які “не можуть статись ні за яких обставин”. І під час тестування обов’язково переконайтесь, що програма, захищена від некоректних даних [13].

    • Тестуйте граничні умови: при написанні кожного циклу передбачте перевірку того факту, що тіло циклу відпрацює потрібну кількість разів; в кожному умовному виразі переконайтесь, що розгалуження відбувається правильно. Основна ідея тут полягає в тому, що коли трапляється помилка, то з великою ймовірністю вона пов’язана саме з виходом за граничні значення. І навпаки, якщо програма працює правильно при граничних значеннях тестових даних, то скоріше за все вона поводиться коректно і у звичайних умовах [11].Аналізуйте результати тестування. Вище вже йшлося про те, що одержані результати тесту мають співпадати з очікуваними значеннями.

    • Оцінюйте обсяг тестів. Тестування не можна вважати завершеним, поки кожний оператор програми не буде перевірено.

Види тестів базуються на зумисному використанні некоректних даних.

Процес тестування програми може бути розподілений на три етапи:

  1. перевірка в нормальних умовах (тестові дані знаходяться всередині допустимого діапазона значень);

  2. перевірка в критичних умовах (тестові дані наближаються до меж допустимого діапазона значень);

  3. перевірка в екстремальних умовах (тестові дані знаходяться за межами допустимого діапазона значень).

Кожний з трьох етапів повинен гарантувати отримання вірних результатів при вірних вхідних даних і повідомлення про помилку (причому з деталюванням виду помилки) при невірних даних [13].

Під час розробки сайту найскладніше було уникнути помилок с дизайном. Розроблюючи дизайн для проекту я спиралась на п’ять принципів:

  1. Інтуїтивність- наскільки зрозумілий ваш сайт для нового користувача.

  2. Ефективність- наскільки легко користувачеві знайти потрібну інформацію або користуватися сервісами.

  3. Запам'ятовуваність- фактор, який привертає увагу креативників.

  4. Запобігання помилок.

  5. Задоволеність. Це те відчуття, яке повинно залишатися у користувача після відвідування вашого сайту.

Тестуючи сайт у першу чергу я перевіряла його на валідність використовуючи для цього сайт [14]. Перевірка документів валідатором дозволила уникнути дрібних помилок - неправильно вкладених тегів, пропущених дужок і лапок. Швидкість аналізу і відображення результату у браузері відразу зросла.

Другим важливим тестом став тест на кросбраузерність, сайт перевірявся у браузерах Firefox та Google Chrome.

Кросбраузерність - це властивість певного сайту практично однаково відображатися і працювати в браузерах. Сайт має відображати матеріал з однаковим рівнем читабельності, динамічні елементи виконувати всі дії, що закладені розробником. Кросбраузерність є обов'язковою для кожного сайту.Результати теста можна вважати задовільними.

Під час розробки сайту я робила синтаксичні помилки: так викликаючи одну змінну, я отримувала результат, який не очікувала і не зразу зрозуміла, що в імені змінної пропущена літера. В мене траплялись алгоритмічні помилки- зчитуючи з бази дані я не вірно сформувала цикл. Робила помилки в SQL запитах, що призводило до невірних результатів. Та багато інших помилок, що траплялись в більшій мірі через неуважність.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]