Кожен проект з розробки програмного забезпечення та відповідних продуктів по-своєму унікальний і включає в себе: ресурси, фінанси, технології, процеси, методології, інструменти, і т.д. А це має передбачає необхідність створення такої ж унікальною стратегії тестування.
З чого почати стратегію?
Варто визначиться, що тестова стратегія — це набір планів, думок, методик і філософії тестового процесу, а тестовий план — це конкретна інструкція до того, як ми будемо виконувати тестування. У цій статті ми розглянемо ті відомі і популярні методології для створення тестової стратегії, а також перейдемо до практичних порад. І до того, як реалізувати стратегію на практиці, для того щоб ми з вами зрозуміли, на що перетворилася тестова стратегія в 2020 році. За останні роки тестова стратегія кардинально змінилася і сильно відрізняється від тестових стратегій, що використовувалися 3-4 роки тому.
Як визначити стратегію?
В першу чергу, стратегія — це постійний процес, це щоденна рутина і всі аспекти роботи команди тестування. Показник того, як ведемо свої активи.
Тестова стратегія — це набір ідей і думок про те, як сам процес розробки і тестування повинен відбуватися.
Тестувати без стратегії і плану — це як водити машину із зав'язаними очима. Ви начебто їдете, на кшталт тиснете на газ, але незрозуміло - куди і навіщо рухаєтеся.
Як створити тестову стратегію?
Щоб сформулювати підходи, нам необхідно черпати натхнення. І найзручнішим способом для натхнення є ознайомлення з уже готовими методологіями або перегляд існуючих тестових планів, знайти їх можна на просторах інтернету. Кожен раз беручись за якусь роботу, необхідно перевіряти — чи не з'явилися нові ідеї та методології, статті та шаблони на тему, що цікавить. Завжди можна щось взяти за основу і сформувати структуру стратегії.
Надихаємося різними джерелами і створюємо checklist:
- Збираємо ідеї (для того, щоб дивитися на них під різним кутом і формувати свою думку);
- Зберігаємо дані (для подальшого використання);
- Формуємо дані для checkpoint (для створення свого підходу до тестування).
Рекомендуємо курс по темі
Навіщо формувати тестову стратегію?
Головне завдання для тестування стратегії — це мета. Стратегія без мети не є стратегією як такою. І як же нам її сформулювати? Ділимо на дві категорії:
1. Бізнес-цілі
Це цілі бізнесу по досягненню тих чи інших результатів на ринку (підвищення частки ринку, боротьба з конкурентами, просування бренду і т.д.).
2. Внутрішні потреби
Опишу на прикладі автоматизації. Якщо необхідна автоматизація, тобто була поставлена мета чи вибрано, що якась частина проекту буде автоматизована. To що буде автоматизовано? Якою мовою? Де? Як? Документ, який це буде описувати? Підхід буде сформований, а автоматор не буде автоматизувати в хаотичному порядку даний продукт. Він підходить до автоматизації з конкретною метою, щоб допомогти, наприклад, мінімізувати мануальное тестування або зменшити час на регресію, тобто, те, що добре автоматизується і дає хороший результат.
І коли ми визначаємо, для чого нам потрібна автоматизація це і є той момент, коли ми визначаємо конкретну мету. Це одна зі сторін формування тестової стратегії.
Цілі можуть бути такими:
● Забезпечити покриття до прийнятного рівня (ви не можете надати 100% покриття, але ви повинні зробити все можливе і гарантувати, що очевидні помилки виправлені);
● Переконатися, що продукт відповідає оригінальним вимогам і специфікації;
● Забезпечити впевненість в надійності ПО (користувачам, замовникам і т.д.).
Ви хочете досягти більш високих оцінок вашого користувача. В результаті від того, що ви будете досягати і буде формуватися ваша стратегія.
Goal-Analysis-Plan
Добре, з метою визначилися, що далі? Проаналізувати — наскільки мета реальна.
Оптимально організувати мета за принципом SMART:
● S - Specific (Конкретність) - Описуємо нашу мету в термінах конкретного результату;
● M - Measurable (Вимірність) - Вимірюємо за допомогою конкретних індикаторів і стандартів процедур;
● A - Attainable (Досяжність) - Мета повинна бути реалістичною, досяжною в принципі;
● R - Relevant (Доречність) - Наступний етап — обґрунтувати, довести, що мета необхідна;
● T - Time-bound (Обмеженість в часі) - Мета повинна бути чітко визначена в часі (конкретні терміни і конкретні точки).
Якщо наша мета вимірна, то вимір мети — це фіксація даного результату, що і є частиною нашого тестового плану.
На цьому етапі з'являється розуміння завдання і точки відліку, в якій ми знаходимося в даний момент, тобто наш поточний стан.
У 2020 році ми повинні адаптувати стратегію під реалії. Нові реалії змінюють стратегію і етапи тестування, але не змінюють поставлену мету.
Які підходи варто застосовувати?
Всі викладені нижче підходи і активності в більшій чи меншій мірі використовуються і виконуються тестувальниками на практиці. Методи будуть корисний для представників усіх технічних напрямків, особливо для QA Lead і тих, хто поки лише замислюється про те, як побудувати процес тестування в компанії.
● Підхід, заснований на теорії обмежень
Теорія обмежень полягає у впливі обмежень усередині процесу, необхідних для утримання якості продукту або тестування на стабільно високому рівні з метою підвищення позитивного результату. Підхід наполягає на фокусуванні уваги на найжорсткіших обмежниках і побудові критичного ланцюга. Плюсом такого методу є досягнення швидких результатів, на які ми можемо вплинути.
● Японський підхід
Японський підхід наполягає на детальній декомпозиції задач, розбитті їх на більш дрібні. Такий підхід виступає за поступове поліпшення всіх процесів, покращуючи всі аспекти одновимірно і невеликими порціями.
● Принцип Парето
Принцип Парето заснований на емпіричному правилі «20% зусиль дають 80% результату, а інші 80% зусиль — лише 20% результату». Коли беремося за всі аспекти одночасно, то за найбільшу кількість дій в кожному з напрямків ми отримаємо високий результат від процесу.
● Методологія «TPI Next model»
Така методологія заснована на зрілості. Ця модель пояснює, як поетапно або в яких процесних областях необхідно досягати певних результатів для формування якісного тестового процесу. Методологія сконцентрована на необхідні дії, щоб поліпшити тестовий процес.
● Метод швейцарського сиру
Якщо ви не можете уявити і побачити якийсь процес і як в цілому виглядає завдання — берете маловідомий, але перевірений досвідом, метод швейцарського сиру. Спочатку бачимо в сирі дірки і починаємо їх прогризати. Робити дірки можна в довільному порядку, починаючи з тих місць, що вже можемо виконати і знаємо, як саме їх виконати. Допомагає метод не тільки при побудові стратегії, але і при вирішенні великих завдань. Чим сильніше «роз'їдене» завдання, тим менше часу піде на його рішення.
Тестова стратегія допомагає тільки в тому випадку, якщо ми маємо конкретну мету. В якості мети можна вибрати поліпшення якості, досягнення високого покриття, прискорення процесу тестування, зменшення кількості багів. По кожному з цих пунктів головною метою є хороший результат. Тому витрати сил на розробку і впровадження стратегії того варті.
Постійно надихайтеся новими статтями, шаблонами, підходами і формуйте свою думку для тестового плану. При цьому кожну активність перевіряйте, аналізуйте і аргументуйте.
Наповнюйте свій checklist ідеями. Дивіться, які з'явилися нові ідеї та методології, плани і шаблони на тему, що цікавить.
І обов'язково адаптуйте підхід під реалії — це відмінна страховка в дуже мінливому світі.