SoftwareEngeneering_10.ppt
- Количество слайдов: 37
Тестування
Що таке тестування? Оберіть правильну відповідь 1. Тестування являє собою процес, що демонструє відсутність помилок у програмі 2. Ціль тестування - показати, що програма коректно виконує передбачені функції. 3. Тестування - це процес, що дозволяє переконатися в тім, що програма виконує своє призначення 4. Тестування - це процес виконання програми з метою виявлення помилок.
Що таке тестування? Правильна відповідь 1. Тестування являє собою процес, що демонструє відсутність помилок у програмі 2. Ціль тестування - показати, що програма коректно виконує передбачені функції. 3. Тестування - це процес, що дозволяє переконатися в тім, що програма виконує своє призначення 1. Тестування - це процес виконання програми з метою виявлення помилок.
Тестування - це процес виконання програми з метою виявлення помилок. • Тестовий прогін є вдалим, якщо в процесі його виконання виявлена помилка, і невдалим, якщо отримано коректний результат. • Добрим вважається тест, що має високу ймовірність виявлення ще не виявленої помилки. • Вдалим вважається тест, що виявляє ще не виявлену помилку.
МЕТОДИ ВИЯВЛЕННЯ ПОМИЛОК 1. Вручну: Ш Ш інспекції вихідного тексту; наскрізні перегляди; перевірка за столом; . . . . 2. Прогони на ЕОМ
Майерс Г. Искусство тестирования программ/Пер. с англ. под ред. Б. А. Позина. — М. : Финансы и статистика, 1982. — 176 с.
ТЕСТ ДЛЯ САМООЦІНКИ Напишіть на аркуші паперу набір тестів (т. е, спеціальні послідовності даних) для перевірки програми, що робить введення трьох цілих чисел - довжини боків трикутника й виводить повідомлення про те, чи є трикутник нерівностороннім, рівнобедреним або рівностороннім.
Оцініть ваш набір тестів, відповідаючи на наведені нижче питання. За кожну відповідь «так» присуджується одне очко. 1. Чи склали ви тест, що представляє правильний нерівносторонній трикутник? (відповідь «так» на тести, зі значеннями 1, 2, 3 й 2, 5, 10 не обґрунтована, тому що не існує трикутників, що мають такі сторони. )
За кожну відповідь «так» присуджується одне очко. 2. Чи склали ви тест, що представляє правильний рівносторонній трикутник?
За кожну відповідь «так» присуджується одне очко. 3. Чи склали ви тест, що представляє правильний рівнобедрений трикутник? (Тести зі значеннями 2, 2, 4 брати до уваги не треба. )
За кожну відповідь «так» присуджується одне очко. 4. Чи склали ви, принаймні, три тести, які представляють правильні рівнобедрені трикутники, отримані як перестановки двох рівних боків трикутника (наприклад, 3, 3, 4; 3, 4, 3 й 4, 3, 3)?
За кожну відповідь «так» присуджується одне очко. 5. Чи склали ви тест, у якому довжина одного зі боків трикутника приймає нульове значення?
За кожну відповідь «так» присуджується одне очко. 6. Чи склали ви тест, у якому довжина одного з боків трикутника приймає негативне значення?
За кожну відповідь «так» присуджується одне очко. 7. Чи склали ви тест, що включає три позитивних цілих числа, сума двох з яких дорівнює третьому? (якщо програма видала повідомлення про те, що числа 1, 2, 3 являють собою боки нерівностороннього трикутника, то така програма містить помилку)
За кожну відповідь «так» присуджується одне очко. 8. Чи склали ви, принаймні, три тести із заданими значеннями всіх трьох перестановок, у яких довжина одного боку дорівнює сумі довжин двох інших боків (наприклад, 1, 2, 3; 1, 3, 2 й 3, 1, 2)?
За кожну відповідь «так» присуджується одне очко. 9. Чи склали ви тест із трьох цілих позитивних чисел, таких, що сума двох з них менше третього числа (тобто 1, 2, 4 або 12, 15, 30)?
За кожну відповідь «так» присуджується одне очко. 10. Чи склали ви принаймні три тести з категорії 9, у яких вами випробувані всі три перестановки (наприклад, 1, 2, 4; 1, 4, 2 й 4, 1, 2)?
За кожну відповідь «так» присуджується одне очко. 11. Чи склали ви тест, у якому всі боки трикутника мають довжину, рівну нулю (тобто 0, 0, 0)?
За кожну відповідь «так» присуджується одне очко. 12. Чи склали ви, принаймні, один тест, що містить нецілі значення?
За кожну відповідь «так» присуджується одне очко. 13. Чи склали ви хоча б один тест, що містить неправильне число значень (наприклад, два, а не три цілих числа)?
За кожну відповідь «так» присуджується одне очко. 14. Чи специфікували ви в кожному тесті не тільки вхідні значення, але й вихідні дані програми?
Принципи тестування • Варто уникати тестування програми її автором. • Програмуюча організація не повинна сама тестувати розроблені нею програми.
Принципи тестування • Необхідно досконально вивчати результати застосування кожного тесту.
Принципи тестування • Необхідно перевіряти не тільки, чи робить програма те, для чого вона призначена, але й чи не робить вона те, що не повинна робити.
Принципи тестування • Слід зберігати тести, навіть якщо програма вже відтестована.
Принципи тестування • Не можна планувати тестування в припущенні, що помилки не будуть виявлені.
Принципи тестування • Імовірність наявності невиявлених помилок у частині програми пропорційна числу помилок, вже виявлених у цій частині.
МЕТОДОЛОГІЯ СКЛАДАННЯ ТЕСТІВ "повне" тестування програми неможливе!!! Логічна структура простої програми з 1014 різними шляхами виконання
МЕТОДОЛОГІЯ СКЛАДАННЯ ТЕСТІВ “Чорного ящику” • • Еквівалентна розбивка Аналіз граничних значень Застосування функціональних діаграм Припущення про помилку “Білого ящику” • • Покриття операторів (С 1) Покриття рішень Покриття умов Покриття рішень/умов Комбінаторне покриття умов Покриття всіх шляхів (С 3) Покриття всіх лінійно незалежних шляхів (С 2)
Чорний ящик Еквівалентна розбивка – необхідно розбити вхідну область програми на кінцеве число класів еквівалентності так, щоб можна було припустити (звичайно, не абсолютно впевнено), що кожен тест, що є представником деякого класу, еквівалентний будь-якому іншому тесту цього класу. Т. е. , якщо один тест класу еквівалентності виявляє помилку, то варто очікувати, що й всі інші тести цього класу еквівалентності будуть виявляти ту ж саму помилку. Навпаки, якщо тест не виявляє помилки, те варто очікувати, що жоден тест цього класу еквівалентності не буде виявляти помилки
ПОСЛІДОВНІСТЬ ТЕСТУВАННЯ 1. ТЕСТУВАННЯ МОДУЛІВ • Ціль - порівняння функцій, реалізованих модулем, зі специфікаціями його функцій або інтерфейсу. покрокове тестування: монолітне тестування • • спадне висхідне
ПОСЛІДОВНІСТЬ ТЕСТУВАННЯ 2. ТЕСТУВАННЯ ФУНКЦІЙ пошук розходжень між програмою і її зовнішньою специфікацією.
ПОСЛІДОВНІСТЬ ТЕСТУВАННЯ 3. ТЕСТУВАННЯ СИСТЕМИ являє собою спробу продемонструвати, якою мірою програма відповідає поставленим перед нею цілям і неможливо, якщо не був складений документ, що відбиває ці цілі
ТЕСТУВАННЯ СИСТЕМИ: • • • • зручності використання; на граничних об'ємах; на граничних навантаженнях; зручності експлуатації; захисту; вимог до пам'яті; конфігурацій устаткування; сумісності; зручності установки; надійності; відновлення; зручності обслуговування; документації.
ПЛАНУВАННЯ ТЕСТУВАННЯ 1. Цілі. (для кажної фази тестування) 2. Критерій завершення. 3. Графіки робіт. (Календарні графіки робіт для кожної фази тестування - терміни проектування, кодування й виконання тестів. 4. Відповідальні. 5. Бібліотеки тестів і стандарти. (методи ідентифікації, написання й зберігання тестів. ) 6. Засоби.
ПЛАНУВАННЯ ТЕСТУВАННЯ 7. Машинний час. 8. Конфігурація апаратури. 9. Комплексування. (покроковим спадним тестуванням). 10. Процедури відстеження. 11. Процедури налагодження. (механізми видачі повідомлень про виявлені помилки, відстеження складу й порядку внесення доповнень і змін у систему) 12. Регресійне тестування проводиться після вдосконалення функцій програми або внесення в неї змін. Його ціль з'ясувати, чи не вплинула така зміна негативно ( чи не призвело регрес) на інші властивості програми.
КРИТЕРІЇ ЗАВЕРШЕННЯ ТЕСТУВАННЯ q Час, відведений за графіком робіт на тестування, минув. q Всі тести виконані без виявлення помилок q Тести "білого" й "чорного" "ящиків" виконані без помилок. q Знайдене певне число помилок. q + По числу помилок, знайдених в одиницю часу.
SoftwareEngeneering_10.ppt