План тестування (Test plan)
Last updated
Last updated
“План тестування (test plan): Документ, що описує цілі, підходи, ресурси та графік запланованих тестових активностей. Він визначає об'єкти тестування, властивості для тестування, завдання, відповідальних за завдання, ступінь незалежності кожного тестувальника, тестове оточення, метод проектування тестів, визначає критерії входу, що використовуються, та критерії виходу та причини їх вибору, а також будь-які ризики, що вимагають планування на випадок надзвичайних обставин. .” (IEEE 829)
У той час, як стратегія викладає загальні принципи або теорію, план детально описує практичні аспекти того, як проект буде протестований у реальності.
Хоча є рекомендації щодо складання тест-плану (IEEE 829 ( , ), ), немає єдино правильного шаблону або формату для написання тест-планів. У оглядових статтях можна зустріти і свої варіанти:
:
Перелік запланованих тестових активностей ( );
Тестова логістика ( );
Необхідні ресурси ( );
Необхідні комунікації ( );
Оцінки трудовитрат (Estimates);
Залежності та ризики (Dependencies, Risks and Assumptions);
Порядок обговорень та звітності у процесі роботи (Communication, Commitment and Progress Reporting);
Або:
Які ресурси потрібні і коли;
Коли завдання потрібно починати та закінчувати, і хто їх виконуватиме;
Навички, необхідні виконання завдань;
Інструменти та технології, що підтримують план;
Результати та коли вони будуть доставлені;
Витрати зусилля та необхідні ресурси;
Процес просування проекту/процесу по стадіях;
Ризики, що загрожують доставці.
Якоїсь миті можна помітити, що всі вони пропонують плюс-мінус схожу структуру та пункти, а підсумковий варіант все одно буде унікальним для кожного конкретного проекту. Вагома частина літератури на цю тему передбачає роботу з водоспадної моделі розробки і ця інформація не така актуальна в наш час. Не означає, що у гнучких методологіях немає тест-планів. Навіть у Agile необхідне попереднє планування для структурування роботи, розподілу ресурсів та планування – принаймні на високому рівні – процесу випуску на найближчі місяці. Але ітерація за ітерацією, а часто і день за днем, загальний план постійно коригується з урахуванням подій та нової інформації, яка з'являється на світ. Планування - це безперервне навчання, а чи не завдання з кінцевим результатом.
У гнучких методологіях все частіше говорять про концепцію односторінкового тест-плану, а у разі потреби доповнень та уточнень просто створюються посилання на зовнішні сторінки/документи. Такий план може бути і в гугл-таблицях, як дашборд, mind map, і як вам самим заманеться. Тест-план покликаний відповідати ті питання, заради яких його створюють. Іноді вагому частину користі від цієї активності можна отримати на етапі самого планування та складання плану, а не від самого документа. Якщо команда розуміє, що ніякої практичної “болі” цей документ та її створення не вирішує, нею немає часу, можна чудово обійтися і його формалізації, т.к. в якійсь словесній формі він все одно існуватиме завжди.
Види тест-планів :
продукт має безліч релізів чи ітерацій, між якими зберігається загальна інформація, яку немає сенсу повторювати;
різні тестові команди працюють над одним продуктом, виконуючи різні завдання, які необхідно поєднати в рамках одного документа;
План приймальних випробувань (Acceptance Test Plan, ПСІ):** **план приймального тестування відрізняють від звичайного плану тестування фактори, що призводять до прийняття бізнес-рішення. План приймального тестування - це один із життєво важливих документів, який містить посібник із виконання приймального тестування для конкретного проекту. Пишеться на основі бізнес-вимог (Business Requirements). Рев'ю цього плану зазвичай виконується by Managers/Business Analysts/Customers.
Джерела:
Дод. матеріал:
“Залежно від розмірів команди, складності продукту, кількості залежностей та суворості критеріїв якості ці питання можуть бути іншими. Якщо процес тестування має велику кількість залежностей, наприклад, різні команди повинні виконувати різні етапи тестування в строго визначеному порядку - це необхідно фіксувати. Без цього ти не тільки не зможеш планувати роботу команд, а й кілька разів вистрілиш собі в ногу, коли команди блокуватимуть одна одну через те, що заздалегідь не промовили залежності. Чим комплекснішим є об'єкт тестування (і як результат саме тестування), тим більш докладного опису вимагає методологія тестування, застосовувані підходи та практики - просто за рахунок збільшення обсягу того, що необхідно перевірити. Без цього складно оцінювати обсяги робіт, давати естімейти та будувати плани з релізів. Чим точніше і суворо необхідно оцінювати рівень якості, тим детальніше повинні бути описані критерії проходження тестування, ключові метрики та `и. Тому що без їхньої формалізації не можна буде однозначно оцінити результати тестування. Люди, що знаходяться за межами команди тестування (а іноді і команди розробки в цілому) хочуть розуміти, що відбувається на етапі тестування і як забезпечується якість продукту. Іноді це пов'язано з регулятором галузі, іноді для узгодження обсягів роботи із замовником, іноді через високий рівень ризиків або просто тому, що робота цих людей безпосередньо залежить від результатів процесу забезпечення якості.“ (c) __
Майстер Тест-План ( ): _“Головний план тестування (master test plan, project test plan): План тестування, який зазвичай охоплює кілька рівнів тестування.” (ISTQB). Це може бути як єдиний базовий план, так і головний в ієрархії кількох планів, найстатичніший і найвищий. Потрібен коли:
Детальний тест-план (Phase Test plan): “Рівневий план тестування (level test plan): План тестування, що зазвичай відноситься до одного рівня тестування.” (ISTQB). Детальний план складається за кожен реліз/ітерацію чи кожної команди у межах проекту і є динамічним, тобто. може змінюватися за необхідності. Його основна мета - коротко і зрозуміло відобразити завдання тестування. Детальних планів може бути декілька для окремих модулів або команд тестування. Крім того, можуть бути створені плани окремих рівнів тестування (Level Test Plan) або видів тестування. У Agile проектах може бути плани ітераційного тестування ( ) кожної ітерації;
Приклади: , ;