Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекція_1_місце і роль Т в ЖЦПП.doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
86.02 Кб
Скачать

Тестування "чорного ящика"

Коли кодування завершено, програма передається групі тестування. Ви шукаєте помилки, складаєте про них звіти, потім отримуєте нову версію програми і знову шукаєте помилки. Ви знаходите старі помилки, не помічені на першому етапі, і нові, що з'явилися після доопрацювання.

  • Якщо для виправлення помилки потрібно змінити не більше десяти операторів, ймовірність того, що це буде зроблено правильно з першого разу, становить 50%.

  • Якщо для виправлення помилки потрібно змінити близько п'ятдесяти операторів, ймовірність того, що це буде зроблено правильно з першого разу, становить 20%.

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

Стандартна процедура тестування "чорного ящика"

Планування

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

Приймальне тестування

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

Приймальні тести повинні бути короткими. У них повинні перевірятися тільки основні функції і основні дані. Якщо програма не пройде навіть такий тест, можна стверджувати, що ця її версія нікуди не годиться.

У багатьох компаніях приймальні тести частково автоматизовані за допомогою спеціального програмного забезпечення, що виконує тестування "чорного ящика".

Перевірка стабільності програми

Наскільки стабільна отримана вами версія програми? Скільки циклів тестування вона витримає - чотири чи 24?

Зазвичай попередня оцінка стабільності програми займає близько тижня.

Функціональне та системне тестування, звірка та атестація продукту

Коли програмний продукт готовий і протестований, він повинен пройти ряд завершальних тестів. Перш за все, він повинен бути ще раз звірений з найбільш докладними і близькими до нього проектними документами. Зокрема, має бути проведено функціональне тестування, при якому продукт звіряється з зовнішньою специфікацією.

Потім програма звіряється з опублікованою друкованою документацією: користувацькими (тестування цілісності) і системними (системне тестування) вимогами. Ці дві процедури носять назву атестаційного тестування.

Бета-тестування

І ось нарешті ви підтверджуєте, що програма досить стабільна і документація в порядку. Це означає, що настав час для зворотного зв'язку з користувачами - бета-тестування.

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

Тестування цілісності готового продукту і тестування розповсюджуваних копій

Із завершенням тестування останньої бета-версії готового програмного продукту можливі проблеми не закінчуються. Адже потрібно ще переконатися, що він у повній цілості потрапить до клієнта. Нерідко і на цьому етапі трапляються всілякі неприємності: наприклад, компанії відсилають користувачам порожні або інфіковані диски.

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

Остаточна прийомка та сертифікація

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

Звірка зі специфікацією

Перевіряється відповідність розробленої програми кожному слову в специфікації.

Правильність

Чи правильно програма виконує потрібні обчислення і формує звіти?

Лабораторні випробування

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

Продуктивність

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

Переходи між режимами

Чи правильно програма переходить зі стану в стан? Це особливо важливо для додатків, що дозволяють паралельно виконувати декілька різних дій або перемикатися між режимами, не завершуючи їх роботу. Що, якщо спробувати роздрукувати редаговану таблицю або сформувати по ній звіт? Що, якщо під час підготовки звіту ввести в таблицю нові дані?

Експлуатація в реальному режимі

Спробуйте попрацювати з програмою в тому ж режимі, в якому з нею працюватимуть реальні користувачі

Навантажувальні випробування

При навантажувальних випробуваннях (load testing) перевіряється реакція програми на граничні умови експлуатації.

Перевірка на багатозадачність

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

Обробка помилок

Програма повинна коректно реагувати на неправильні, нестандартні або не передбачені документацією дії користувачів

Захист

Чи складно неавторизованим користувачам отримати доступ до системи? Що для цього потрібно?

Апаратні конфігурації

Дуже важливо, щоб програма успішно працювала на комп'ютерах найрізноманітніших конфігурацій. Навіть якщо програма орієнтована на конкретну модель процесора, все одно в системах, де їй доведеться працювати, периферійні пристрої будуть різні. Тому вам потрібно виявити ті пристрої, з якими програма повинна бути сумісна, але на ділі не працює.

Установка та обслуговування

Разом з програмним продуктом зазвичай поставляється і програма його установки. Вона автоматизує процес інтеграції продукту в систему і його налаштування для потреб конкретного користувача. Чи працює ця програма? Наскільки вона проста і зручна? Скільки часу в середньому потрібно на установку?