стремальному програмуванні використовуються модульні тести для розробки через тестування. Для цього розробник до написання коду пише тести, що відображають вимоги до модулю. Очевидно, жоден з цих тестів до написання коду працювати не повинен. Подальший процес зводиться до написання найкоротшого коду, що задовольняє даному набору тестів.
Інтеграційне тестування.
Інтеграційне тестування (англ. Integration testing , іноді називається англ. Integration and Testing , абревіатура англ. I amp; T ) - одна з фаз тестування програмного забезпечення, при якій окремі програмні модулі об'єднуються і тестуються в групі. Зазвичай інтеграційне тестування проводиться після модульного тестування і передує системному тестуванню.
Інтеграційне тестування в якості вхідних даних використовує модулі, над якими було проведено модульне тестування, групує їх у більші множини, виконує тести, визначені в плані тестування для цих множин, і представляє їх в якості вихідних даних і вхідних для подальшого системного тестування.
Метою інтеграційного тестування є перевірка відповідності проектованих одиниць функціональним, прийомним і вимогам надійності. Тестування цих проектованих одиниць - об'єднання, безлічі або групи модулів - виконується через їх інтерфейс, з використанням тестування чорного ящика .
Системи безперервної інтеграції.
Для автоматизації інтеграційного тестування застосовуються системи безперервної інтеграції (англ. Continuous Integration System , CIS). Принцип дії таких систем полягає в наступному:
· при зміні вихідних кодів в репозиторії проводиться оновлення локального сховища;
· виконуються необхідні перевірки і модульні тести;
· вихідні коди компілюються в готові виконувані модулі;
· виконуються тести інтеграційного рівня;
· генерується звіт про тестування.
Таким чином, автоматичні інтеграційні тести виконуються відразу ж після внесення змін, що дозволяє виявляти і усувати помилки в короткі терміни.
Системне тестування.
Системне тестування програмного забезпечення - це тестування програмного забезпечення (ПЗ), що виконується на повній, інтегрованій системі, з метою перевірки відповідності системи вихідним вимогам. Системне тестування відноситься до методів тестування чорного ящика, і, тим самим, не вимагає знань про внутрішній устрій системи.
Основним завданням системного тестування є перевірка як функціональних, так і не функціональних вимог до системи в цілому. При цьому виявляються дефекти, такі як невірне використання ресурсів системи, непередбачені комбінації даних користувацького рівня, несумісність з оточенням, непередбачені сценарії використання, відсутня або невірна функціональність, незручність використання і т.д. Для мінімізації ризиків, пов'язаних з особливостями поведінки системи в тій чи іншій середовищі, під час тестування рекомендується використовувати
оточення максимально наближене до того, на яке буде встановлений продукт після видачі.
Можна виділити два підходи до системного тестування:
на базі вимог (requirements based)
Для кожної вимоги пишуться тестові випадки (test cases), перевіряючі виконання даної вимоги.
на базі випадків використання (use case based)
Рівні тестування.
· модульне тестування (юніт-тестування) - тестується мінімально можливий для тестування компонент, наприклад, окремий клас або функція. Часто модульне тестування здійснюється розробниками ПЗ;
· інтеграційне тестування - тестуються інтерфейси між компонентами, підсистемами або системами. При наявності резерву часу на даній стадії тестування ведеться ітераційно, з поступовим підключенням подальших підсистем;
· системне тестування - тестується інтегрована система на її відповідність вимогам;
· альфа-тестування - імітація реальної роботи з системою штатними розробниками, або реальна робота з системою потенційними користувачами/замовником. Найчастіше альфа-тестування проводиться на ранній стадії розробки продукту, але в деяких випадках може застосовуватися для закінченого продукту в якості внутрішнього приймального тестування. Іноді альфа-тестування виконується під відладчиком або з використанням оточення, яке допомагає швидко виявляти знайдені помилки. Виявлені помилки можуть бути передані тестувальникам для додаткового дослідження в оточенні, подібном...