
- •1 Постановка задачі
- •3.2 Стислий опис системи Windows 7
- •3.3 Стислий опис мови програмування
- •Visual Basic 10.0 і c# 4.0 були випущені в квітні 2010 року, одночасно з випуском Visual Studio 2010.
- •3.4 Налагодження та тестування програми
- •3.5 Інструкція по роботі з програмою
- •4.2 Гігієна праці та виробнича санітарія
- •4.3 Організація робочого простору
- •5.3 Конкуренція
- •5.4 Стратегія маркетингу
- •If (processed)
3.4 Налагодження та тестування програми
В даний час в області інформаційних технологій і побудови програм все більше місце займає побудова великомасштабних програмних засобів (ПЗ), що володіють потужними інтелектуальними можливостями. Відповідно зростанню складності програм зростає кількість виявлених в них дефектів і помилок.
На якість ПЗ негативно впливає ряд внутрішніх і зовнішніх дестабілізуючих факторів. До внутрішніх дестабілізуючих факторів можна віднести:
системні помилки при постановці цілей і завдань створення ПЗ, дефекти формування специфікації вимог;
дефекти проектування структури ПЗ та створення проектних моделей, а також алгоритмічні помилки;
помилки програмування;
дефекти верифікації та тестування ПЗ;
дефекти передачі інформації з етапу на етап, а також помилки невідповідності рішень, прийнятих на конкретному етапі життєвого циклу (ЖЦ) ПО, вихідним даними попередньої фази (невідповідність архітектури і специфікації вимог, невідповідність реалізації та проектних моделей).
До зовнішніх дестабілізуючих факторів належать помилки персоналу, перекручення даних, збої апаратури.
У ряді випадків вплив дестабілізуючих факторів може призвести до катастрофічних наслідків, які викликані аварійним збоєм програмних систем, що відповідають за управління технологічними або життєво важливими процесами.
Процес тестування являє собою інтерпретаційний підхід, спрямований на пошук і виявлення помилок у ПЗ. Відмінність тестування від верифікації полягає в тому, що процес тестування спрямований на виявлення потенційних помилок і не дозволяє гарантувати їх відсутність в нетривіальних програмах, в той час як механізм аналітичної верифікації здатний гарантувати правильність ПЗ [13].
До найбільш ефективних критеріїв тестування, що забезпечують високий ступінь автоматизації, відносяться функціональні критерії. Випробування відповідно до функціональних критеріїв, передбачає здійснення процесу тестування за принципом "чорного ящика". При цьому, невідома структура програми, недоступні вихідні коди, однак відома специфікація програмного продукту. Функціональне тестування засноване на тестуванні специфікації програми. До приватних функціональних критеріїв належать: тестування класів еквівалентності, тестування граничних значень, тестування на основі діаграм причинно-наслідкових зв'язків, тестування функцій і тестування пунктів специфікацій. Так як вичерпне тестування нетривіальної програми неможливе, то необхідно вибрати оптимальну підмножину даних з області визначення атестованої функції (підмножина, що володіє найбільшою імовірністю виявлення помилок).
Одна з методик визначення "оптимального" тестового набору полягає в розбитті вхідної області визначення і вихідної області значень на кінцеве число класів еквівалентності. Якщо один тестовий випадок даного класу еквівалентності виявляє помилку, то і всі інші тестові випадки цього ж класу еквівалентності також будуть виявляти ту ж саму помилку. І навпаки, якщо тестовий випадок даного класу еквівалентності не може знайти помилку, то інші тестові випадки даного класу також не виявлять дану помилку. Розрізняють два типи класів еквівалентності: правильні класи еквівалентності, що включають коректні (правильні) дані і неправильні класи еквівалентності, що охоплюють помилкові дані.
Граничні умови - це ситуації, що виникають як безпосередньо на кордонах класів еквівалентності, так і на значеннях вище або нижче даних кордонів. Тестування програм, здійснюється як на граничних значеннях, так і поблизу заданих меж. Як показує практика, тестування класів еквівалентності і тестування граничних значень використовується як єдиний комбінаторний критерій. Основним недоліком критеріїв еквівалентних класів і граничних значень є те, що вони не досліджують всіх можливих комбінацій безлічі вхідних значень.
Якщо немає систематичного способу вибору підмножини вхідних умов, то найчастіше формується нерепрезентативний тестовий набір. Метод діаграм причинно-наслідкових зв'язків (метод функціональних діаграм) дозволяє формувати репрезентативні набори тестових даних і здійснювати систематичну генерацію високо результативних тестів.
Побудова тестів методом причинно-наслідкових зв'язків відбувається в кілька етапів:
Аналіз специфікації. Визначаються причини (класи еквівалентності) і слідства (вихідна умова або перетворення системи), уточнюються їх відносини.
Побудова булевого графа за результатами аналізу. Візуалізація причин, наслідків і безлічі відносин між ними.
Формування таблиці рішень. Перетворення булевого графа в таблицю рішень шляхом методичного простеження станів умов діаграми.
Генерація тестового набору за стовпцями таблиці рішень.
Метод функціональних діаграм демонструє високу вибірковість формованих тестів, проте він є досить трудомістким і вимагає значних зусиль на трансляцію специфікації в булевський граф. Процедури перетворення булевого графа в таблицю рішень і формування тестового набору за таблицею рішень можуть бути в значній мірі автоматизовані.
До найбільш популярних критеріям функціонального тестування відносяться критерії тестування функцій і тестування специфікацій. Тестування функцій - один з найбільш застосовуваних на практиці критеріїв. Відповідно до критерію тестування функцій необхідно перевірити кожну функцію (метод), реалізовану програмним модулем (класом). При тестуванні специфікації необхідно побудувати набір тестів, що забезпечує перевірку кожного пункту вимог хоча б один раз. Специфікація вимог може містити сотні і тисячі вимог, при цьому тестування специфікації має перевірити їх усі. Повинні бути перевірені не тільки всі вимоги до кожного конкретного методу, але також всі вимоги до класів і системі в цілому [14].
При проведенні налагодженні програми в Visual Studio виявились деякі синтаксичні та орфографічні помилки.
Після налагодження провелося тестування всих функцій програми, що виявило деякі помилки:
Некоректна робота з LINQ to XML.
Некоректна робота циклів зчитування текстових даних.
Помилки при зчитуванні rtf файлів в циклі.
Після виправлення усіх помилок повторне тестування підтвердило працездатність програми.