Концепція стратегія тестування

Стратегія тестування являє собою опис загального підходу до тестування і цілей тестування. Розрізняють декілька рівнів (компонент, інтеграція і система в цілому) і видів (функції, продуктивність, навантаження, відмовостійкість) тестування.

До складу стратегії входять:

  • Технології та інструменти тестування.
  • Умови завершення і успішного виконання тестів. Наприклад, можна вирішити, що після успішного виконання 95% тестів можна перейти до приймання продукту. Іншим прикладом умови може служити охоплення коду. Наприклад, в системах безпеки може вимагатися стовідсоткове охоплення коду при тестуванні.
  • Особливі обставини, що впливають на вимоги до ресурсів і графік тестування, наприклад:
  • тестування всіх інтерфейсів до зовнішніх систем
  • імітація загрози безпеки або фізичного пошкодження системи

У деяких організаціях застосовуються корпоративні стратегії тестування, і в цих випадках необхідно адаптувати ці стратегії до конкретних проектів.

Найважливіші обставини для планування тестування:

  • Яка ітерація виконується в даний момент і які її цілі?
  • Який рівень тестування виконується в даний момент (тестування компонентів, інтеграції або системи в цілому)? Іноді всі три рівні виконуються в ході однієї ітерації.

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

  • типи тестів (функціональні тести, тести під навантаженням, тести обсягу, продуктивності, зручності роботи, розподілу і т.д.)
  • критерії оцінки результатів (охоплення коду, охоплення вимог, кількість виявлених помилок, середня тривалість безперебійної роботи і т.п.)
  • застосовувані технології тестування (автоматичного тестування і тестування вручну)

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

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

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

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

У наступних таблицях показані різні типи тестів і приклади умов завершення тестування. У першій таблиці показаний типовий приклад проекту по розробці управлінської інформаційної системи.