Распечатать страницу

Тези Особливості процесу тестування програм

« Назад

Код роботи: 1908

Вид роботи: Тези

Предмет: Сучасні інформаційні технології (СІТ)

Тема: Особливості процесу тестування програм

Кількість сторінок: 4

Дата виконання: 2017

Мова написання: українська

Ціна: безкоштовно

1. Лавріщева К.М. Програмна інженерія. – К.: ІПС НАН України, 2008. – 319 с.

2. Каличак О.І. Тестування програмних систем і комплексів. – Стрий, 2013. – 109 с.

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

Тестування (виконання програм для виявлення помилок) і налагодження (локалізація помилок) займає до половину часу всієї розробки, а вартість їх більша 45% вартості програм. Дослідження IBM показали, що, чим пізніше буде виявлено помилку, тим дорожчим буде її виправлення, — ця залежність близька до експоненційної [1].

Проведення тестування передбачає планування робіт, проектування тестів, виконання тестування, аналіз одержаних результатів [2]. Тестові дані повинні забезпечувати як перевірку програми в цілому (верифікацію), так і перевірку її відповідності вимогам замовника (валідацію). Тести розробляють на всіх етапах розробки програм, починаючи від узгодження специфікацій. Проте абсолютно повного тестування досягти досить важко — багато помилок і недоліків виявляють під час прийому-здачі програм і на етапі експлуатації.

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

Потрібну кількість тестів при перевірці окремих модулів програми визначає така метрика, як цикломатична складність — кількість лінійно незалежних шляхів в алгоритмі. Модуль легко тестувати при складності 10-15, а складність понад 50 означає дуже високий ризик і практично нетестований код. Цю міру використовують для оцінки того моменту, коли код стає досить складним і модуль потребує розбиття на менші частини. Тестування і налагодження значно полегшується і прискорюється, якщо програма добре коментована (коментарі становлять 10-35 % коду програми).

Тестування — ітераційний процес. Це пов’язано з тим, що під час виправлення виявлених помилок можуть з’явитися нові помилки.

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