Незалежне тестування (версія 3.1)
Завдання тестування можуть виконувати люди, які виконують певну роль тестування, або люди, які виконують інші ролі (наприклад, клієнти). Певний ступінь незалежності часто робить тестувальника більш ефективним у пошуку недоліків через відмінності між когнітивними упередженнями автора та тестувальника.
Однак незалежність не є заміною обізнаності, і розробники можуть ефективно знаходити багато дефектів у власному коді.
Ступені незалежності в тестуванні включають наступне (від низького рівня незалежності до високого рівня):
- Немає незалежних тестувальників; єдиною доступною формою тестування є тестування розробниками власного коду
- Незалежні розробники або тестувальники в рамках груп розробників або команди проєкту; це можуть бути розробники, які тестують продукти своїх колег
- Незалежна тестова група або група всередині організації, яка звітує перед керівництвом проєкту
- Незалежні тестувальники з бізнес-організації чи спільноти користувачів або зі спеціалізацією на певних типах тестів, таких як зручність використання, безпека, продуктивність, нормативна відповідність або портативність
- Незалежні тестувальники поза організацією, які працюють на місці (внутрішні) або за межами підприємства (аутсорсинг)
Для більшості типів проєктів зазвичай найкраще мати кілька рівнів тестування, причому деякі з цих рівнів оброблятимуть незалежні тестувальники. Розробники повинні брати участь у тестуванні, особливо на нижчих рівнях, щоб здійснювати контроль за якістю власної роботи.
Спосіб реалізації незалежності тестування залежить від моделі життєвого циклу розробки програмного забезпечення. Наприклад, у розробці Agile тестувальники можуть бути частиною команди розробників. У деяких організаціях, які використовують гнучкі методи, ці тестувальники також можуть вважатися частиною більшої незалежної тестової групи. Крім того, у таких організаціях власники продукту можуть проводити приймальне тестування для перевірки історій користувачів наприкінці кожної ітерації.
Потенційні переваги незалежності тестування включають:
- Незалежні тестувальники, ймовірно, знайдутть різні типи збоїв порівняно з розробниками через їх різний досвід, технічні перспективи та упередження
- Незалежний тестувальник може перевірити, оскаржити або спростувати припущення, зроблені зацікавленими сторонами під час специфікації та впровадження системи
- Незалежні тестувальники постачальника можуть чесно та об’єктивно звітувати про тестовану систему без (політичного) тиску з боку компанії, яка їх найняла
Потенційні недоліки незалежності тестування включають:
- Ізоляція від команди розробників може призвести до відсутності співпраці, затримок у наданні зворотного зв’язку команді розробників або ворожнечі з командою розробників
- Розробники можуть втратити почуття відповідальності за якість
- Незалежні тестувальники можуть розглядатися як вузьке місце
- Незалежним тестувальникам може бракувати важливої інформації (наприклад, про об’єкт тестування)
Завдання тестового менеджера і тестувальника (версія 3.1)
У цьому навчальному плані розглядаються дві ролі тестувальників: менеджери тестування та тестувальники. Діяльність і завдання, які виконуються цими двома ролями, залежать від контексту проєкту та продукту, навичок людей, які виконують ролі, і організації.
Керівник тестування несе загальну відповідальність за процес тестування та успішне керівництво тестовою діяльністю. Роль управління тестуванням може виконувати професійний менеджер з тестування, або менеджер проєкту, менеджер з розвитку або менеджер із забезпечення якості. У великих проєктах або організаціях кілька тестових команд можуть звітувати перед керівником тестування, інструктором з тестування або координатором тестування, причому кожну команду очолює керівник тестування або провідний тестувальник.
Типові завдання менеджера тестування можуть включати:
- Розробити або переглянути політику тестування та стратегію тестування для організації
- Планувати тестову діяльність, враховуючи контекст і розуміючи цілі тестування та ризики. Це може включати вибір підходів до тестування, оцінку часу тестування, зусиль і вартості, придбання ресурсів, визначення рівнів тестування та циклів тестування, а також планування управління дефектами
- Написати та оновити план тестування
- Узгодити план тестування з керівниками проєктів, власниками продуктів та іншими сторонами
- Поділитися перспективами тестування з іншими видами діяльності проєкту, такими як планування інтеграції
- Ініціювати аналіз, розробку, реалізацію та виконання тестів, контролювати хід і результати тестування, а також перевіряти статус критеріїв виходу і сприяти завершенню тестування
- Підготувати та надати звіти про хід тестування та підсумкові звіти про тестування на основі зібраної інформації
- Адаптувати планування на основі результатів і прогресу тестування (іноді задокументовано у звітах про хід тестування або в підсумкових звітах щодо іншого тестування, яке вже завершено на проєкті), і вжити дії, необхідні для контролю тестування
- Підтримка налаштування системи управління дефектами та адекватного керування конфігурацією тестового програмного забезпечення
- Запровадити відповідні показники для вимірювання прогресу тестування та оцінки якості тестування та продукту
- Підтримка вибору та впровадження інструментів для підтримки процесу тестування, включаючи рекомендацію бюджету для вибору інструменту (і, можливо, придбання та/або підтримки), розподіл часу та зусиль для пілотних проєктів і надання постійної підтримки у використанні інструменту
- Прийняти рішення про реалізацію тестового середовища
- Заохочувати та захищати тестувальників, команду тестування та професію тестувальника в організації
- Розвивати навички та кар’єру тестувальників (наприклад, за допомогою планів навчання, оцінки ефективності, інструктажу тощо)
Типові завдання тестувальника можуть включати:
- Перегляньте плани тестування та зробіть свій внесок у них
- Аналізувати, переглядати та оцінювати вимоги, історії користувачів і критерії прийнятності, специфікації та моделі для тестування (тобто тестової бази)
- Ідентифікувати та документувати умови тестування та фіксувати відстежуваність між тестовими випадками, умовами тестування та основою тестування
- Проєктувати, налаштовувати та перевіряти тестове середовище (середовища), часто координуючи це з адміністрацією системи та керівництвом мережі
- Розробити та реалізувати тестові кейси та процедури тестування
- Підготувати та отримати тестові дані
- Створити детальний графік виконання тесту
- Виконати тести, оцінювати результати та документувати відхилення від очікуваних результатів
- Використовувати відповідні інструменти для полегшення процесу тестування
- Автоматизувати тестування за потреби (може підтримуватися розробником або експертом з автоматизації тестування)
- Оцінити нефункціональні характеристики, такі як продуктивність, надійність, зручність використання, безпека, сумісність і портативність
- Переглянути тести, розроблені іншими
Спосіб, у який виконується роль менеджера тестування, залежить від життєвого циклу розробки програмного забезпечення. Наприклад, у Agile-розробці деякі завдання, згадані вище, виконує команда Agile, особливо ті завдання, які стосуються повсякденного тестування, яке виконується в команді, часто тестувальником, який працює в команді. Деякі завдання, які охоплюють кілька команд або всю організацію, або пов’язані з управлінням персоналом, можуть виконуватися менеджерами з тестування поза командою розробників, яких іноді називають інструкторами з тестування.
Люди, які працюють над аналізом тестів, дизайном тестів, конкретними типами тестів або автоматизацією тестів, можуть бути фахівцями в цих ролях. Залежно від ризиків, пов’язаних із продуктом і проєктом, а також обраної моделі життєвого циклу розробки програмного забезпечення, різні люди можуть взяти на себе роль тестувальника на різних рівнях тестування. Наприклад, на рівні тестування компонентів і на рівні тестування інтеграції компонентів роль тестувальника часто виконують розробники. На рівні приймального випробування роль тестувальника часто виконують бізнес-аналітики, експерти з певної тематики та користувачі. На рівні системного тестування та тестування системної інтеграції роль тестувальника часто виконує незалежна команда тестувальників. На рівні операційної приймальної перевірки роль тестувальника часто виконує персонал з експлуатації або адміністрування системи.
Ролі у тестуванні (версія 4.0)
У цьому сілабусі розглядаються дві основні ролі в тестуванні: роль управління тестуванням і роль тестування. Діяльність і завдання, призначені цим двом ролям, залежать від таких факторів, як контекст проєкту та продукту, навички людей, які виконують ролі, і організація.
Керівник тестування бере на себе загальну відповідальність за процес тестування, команду тестування та керівництво тестовою діяльністю. Роль управління тестуванням головним чином зосереджена на діяльності з планування тестування, моніторингу та контролю тестування та завершення тестування. Спосіб виконання ролі керування тестуванням залежить від контексту. Наприклад, у розробці програмного забезпечення Agile деякі завдання з керування тестуванням можуть виконуватися командою Agile. Завдання, які охоплюють кілька команд або всю організацію, можуть виконувати менеджери тестування поза командою розробників.
Роль тестування бере на себе загальну відповідальність за інженерний (технічний) аспект тестування. Роль тестування в основному зосереджена на аналізі тестів, дизайні тестів, реалізації та виконанні тестів.
Різні люди можуть виконувати ці ролі в різний час. Наприклад, роль управління тестуванням може виконувати керівник групи, менеджер з тестування, менеджер з розробки тощо.
Незалежність тестування (версія 4.0)
Певний ступінь незалежності робить тестувальника більш ефективним у пошуку дефектів через відмінності між когнітивними упередженнями автора та тестувальника (пор. Salman 1995). Проте незалежність не є заміною обізнаності, наприклад, розробники можуть ефективно знаходити багато дефектів у власному коді.
Робочі продукти можуть тестуватися їх автором (немає незалежності), колегами автора з тієї ж команди (певна незалежність), тестувальниками з-за меж команди автора, але всередині організації (висока незалежність), або тестувальниками з-поза організації ( дуже висока незалежність). Для більшості проєктів зазвичай найкраще проводити тестування з кількома рівнями незалежності (наприклад, розробники виконують тестування компонентів та інтеграції компонентів, команда тестувальників виконує тестування системи та системної інтеграції, а представники бізнесу виконують приймальне тестування).
Основна перевага незалежності тестування полягає в тому, що незалежні тестувальники, ймовірно, знайдуть різні види збоїв і дефектів порівняно з розробниками через їхню різну історію, технічні перспективи та упередження. Крім того, незалежний тестувальник може перевірити, оскаржити або спростувати припущення, зроблені зацікавленими сторонами під час специфікації та впровадження системи.
Однак є й деякі недоліки. Незалежні тестувальники можуть бути ізольовані від команди розробників, що може призвести до відсутності співпраці, проблем із спілкуванням або ворогуванню із командою розробників. Розробники можуть втратити почуття відповідальності за якість. Незалежних тестувальників можуть вважати «вузьким місцем» (гальмом чи перепоною) або звинуватити у затримках випуску.
В цьому відео починаємо працювати з секцією 5.1.
00:01:46 Independent Testing (v 3.1)
00:14:14 Tasks of a Test Manager and Tester (v 3.1)
00:30:41 Roles in Testing (v 4.0)
00:36:08 Independence of Testing (v 4.0)