Спочатку була стратегія…
Що спільне між тестувальником і… припустімо, Наполеоном? Наполеон хотів підкорити світ, досягнувши абсолютної влади. Тестувальник теж хоче “підкорити” продукт, досягнувши абсолютної якості. Як полководцю Наполеону, так і тестувальнику необхідно “чуття” у своїй роботі: мають бути розвинені тактика та стратегія. Тактика допомагає керувати часом прямо зараз, виконуючи поставлені (або більше) на день завдання. Стратегія – бачення майбутнього – допомагає вибудувати процес тестування від початку до успішної здачі та супроводу.
Стратегія – це загальний опис методів та підходів, які будуть використані у тестуванні та є вступною частиною та основою для тест-плану. Як назвали стратегію тестування в одній розумній статті, це огляд з висоти десяти тисяч футів. Власне далі буде про стратегію.
Стратегії тестування#
- Орієнтоване на ризики. Тестування, в якому управління, вибір, пріоритети, використання підходів, завдань та ресурсів підбирається на підставі конкретних ризиків, називається орієнтованим на ризики.
- Орієнтоване на моделі тестування використовує так звані формальні моделі (не ментальні) для управління активностями, такими як управління, дизайн, реалізація, виконання та звіти про тестування.
- Стратегії, основу яких лежить процес, природно переважно поділяються на “традиційні” і “ітераційні” (гнучкі).
3.1. Agile стратегія: методи розробки ПЗ, в яких методи розробки та реалізації виконуються змішаними спільними командами, що самоорганізуються. Проте, у разі тестування ведеться практично всією командою весь цикл виробництва.
3.2. “Традиційний процес”, в якому стадії слідують одна за одною через пропозицію, ініціацію, аналіз вимог, дизайн, реалізацію, тестування, вихід у продакшн та підтримку. У традиційних процесах тестування проводиться окремо взятою групою вже ближче до кінця процесу після проведення всіх інтеграційних маніпуляцій. - Тестування, засноване на досвіді: тестування, в якому знання, навички, набутий досвід закладаються при плануванні, дизайні, реалізації та отриманні звітів про тестування. Багато тестувальників закладають різні аспекти такого підходу до тестування, хоча й буває, що хтось може використовувати їх “надзвичайно широко”. Концепції тестування, заснованого на досвіді, включають такі елементи як передбачання помилок, дослідне і ad hoc тестування.
- Тестування перевірки вимог: такий підхід до стратегії тестування, у якому вимоги та інші артефакти ПЗ використовуються для перевірки відповідності коду вимогам та артефактам. Основним завданням є показати, що всі вимоги дотримані та показати відповідність стандартам та регулюючим специфікаціям. Перевіряючі тести закріплюються у письмовій документованій (“скриптованій”) формі тестових процедур та звітів.
- Стратегія на підставі атак: тестувальники намагаються знайти помилки, ґрунтуючись на патернах, які повинні б “зламати” програмне забезпечення (застосовуючи атаки). Така стратегія є гібридом тестування, заснованого на досвіді та тестування, заснованого на ризиках. По суті, це є “максимально практичним” тестуванням.
- Математично обґрунтована стратегія: у цьому випадку тести плануються, проектуються, реалізуються та аналізуються на підставі математичних концепцій та технік. Ці тести включають статистику, проектування експериментів, методику формальних доказів, комбінаторику, методики випадкових чисел, математичний аналіз (теорії про класи еквівалентності і граничні числа).
- Валідація користувачами: дана стратегія містить мету показати те, що розробка створила той самий продукт, який відповідає бажанням користувачів та замовників. Продукт перевіряється на підставі “оперативних концепцій”, вимог, дизайну, моделей, реалізацій, оскільки будь-який із цих елементів може містити помилки. Оцінка якості відповідності може бути в такому разі складною і досить суб’єктивною (“добре-погано вийшло”, “подобається-не подобається”), тому багато таких стратегій намагаються уникати.
Насправді рідко бувають “чисті” стратегії. Зазвичай, залежно від контексту, стратегії поєднуються для отримання максимального ефекту та відповідності очікуванням власника бізнесу. Але в будь-якому випадку, добре продумана стратегія є ключовим пунктом для отримання якісного продукту і набагато важливіше мати чітку стратегію і слідувати їй до того, як буде складено основний детальний план і піде “занурення в глибокий тест-дизайн”. Важливо вміти складати та застосовувати різні стратегії. Тоді продукт, над яким працюєте, досягне того, чого не зміг досягти Наполеон.
А ще можу порекомендувати наступне відео 🙂