Professional Documents
Culture Documents
Методичка QA START UP
Методичка QA START UP
Заняття 2.
РОЗРОБКА ПЗ. ПРОЦЕС ТЕСТУВАННЯ, ЙОГО МЕТОДИ ТА РІВНІ
1. РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 15
2. ФУНДАМЕНТАЛЬНИЙ ПРОЦЕС ТЕСТУВАННЯ 17
3. МЕТОДОЛОГІЯ ТЕСТУВАННЯ 20
4. РІВНІ ТЕСТУВАННЯ 21
Питання до заняття 25
Заняття 3.
МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
1. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ 26
2. ВИДИ ТЕСТУВАННЯ 45
Питання до заняття 61
Заняття 8.
ПОНЯТТЯ ДЕФЕКТУ
1. ЩО ТАКЕ ДЕФЕКТ? 123
2. ДЕТАЛЬНИЙ ОГЛЯД ЗВІТУ ПРО ДЕФЕКТ 124
3. ЖИТТЄВИЙ ЦИКЛ ДЕФЕКТУ 129
Питання до заняття 131
Заняття 12.
КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ
ПРОЦЕСУ ТЕСТУВАННЯ
1. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ 134
2. МЕТРИКИ ТЕСТУВАННЯ 136
3. РИЗИКИ У ТЕСТУВАННІ 139
Питання до заняття 142
IT GLOSSARY 143
Модуль I.
ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ
ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Заняття 1.
ВВЕДЕННЯ В ОСНОВИ ТЕСТУВАННЯ ПРОГРАМНОГО
ЗАБЕЗПЕЧЕННЯ
1. ЩО ТАКЕ ТЕСТУВАННЯ
2. ТЕСТУВАННЯ І ЯКІСТЬ
3. ПРИЧИНИ ВИНИКНЕННЯ ДЕФЕКТІВ
4. ПРИНЦИПИ ТЕСТУВАННЯ
5. ВИДИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
6. КЛІЄНТ-СЕРВЕРНА АРХІТЕКТУРА
Питання до заняття
1. ЩО ТАКЕ ТЕСТУВАННЯ
«Тестування програм може бути використано для
демонстрації наявності помилок, але воно ніколи не покаже
їх відсутність.» — Дейкстра, 1970 р.
Тестуванням можна назвати процес, який містить у собі всі активності життєвого
циклу ПЗ, як динамічні, так і статичні, які стосуються планування, підготовки та
оцінки програмного продукту і пов’язаних з цим результатів робіт, з метою
визначити, що вони відповідають описаним вимогам, показати, що вони
підходять для заявлених цілей та для визначення дефектів.
2. ТЕСТУВАННЯ І ЯКІСТЬ
Тестуванням можна назвати процес, який містить у собі всі активності життєвого
циклу ПЗ, як динамічні, так і статичні, які стосуються планування, підготовки та
оцінки програмного продукту і пов’язаних з цим результатів робіт, з метою
визначити, що вони відповідають описаним вимогам, показати, що вони
підходять для заявлених цілей та для визначення дефектів.
8
ЛЮДСЬКИЙ ФАКТОР
Людині характерно помилятися. Як не дивно, ми все ж не знайшли альтернативу
тому, хто міг би створювати програмне забезпечення краще, ніж люди. Таким
чином, ми так само покладаємось на людський розум при розробці програмного
забезпечення і, в свою чергу, припускаємо ймовірність помилок у ньому.
НЕПОРОЗУМІННЯ
Відсутність або не результативна комунікація під час розробки програмного
забезпечення може відбутися на різноманітних рівнях (етап підготовки вимог,
етап інтерпретації/реалізації вимог і т.д.). Як результат, отримуємо розмиті або
неповні вимоги та ситуацію, у якій розробники не знають, яке рішення та
реалізація є необхідними відповідно до вимог, що призводить до помилок.
Можлива також ситуація, коли розробник намагається змінити код, який
створений іншим розробником, і відчуває складнощі з розумінням реалізації
коду.
ОБМЕЖЕНИЙ ЧАС
Частіше за все програмне забезпечення розробляється згідно графіків з
високим темпом випуску версій, з обмеженими ресурсами та з нереалістичними
термінами проєкту. Цілком ймовірно, що будуть досягнуті компроміси у вимогах,
дизайні, кодуванні та в загальному питанні якості для задоволення термінів
поставки. Інколи розробникам не дають достатньої кількості часу для
проєктування, розробки або тестування свого коду до його здачі. Пізні зміни в
дизайні можуть в останню хвилину вимагати змін у коді, які, ймовірніше за все,
спричинять помилки.
ТЕРМІНОВІ ЗМІНИ
Зміни, що вносяться до вимог, інфраструктури, інструментів, платформи, можуть
бути небезпечними. Дії з міграції баз даних, за сумісністю з різними
інформаційними системами або браузерами можуть бути дуже складними і, якщо
все виконано поспіхом у зв’язку зі зміною вимог в останній момент, можуть
призвести до помилок у додатку.
СКЛАДНІСТЬ КОДУ
Програмне забезпечення може бути складним і мати потребу у певному рівні
R&D1 та мозковому штурмі, аби досягнути розумного рішення. Нестача терпіння і
бажання завершити проєкт якомога швидше може спричинити помилки,
бажання/спокуса використати найпростіший спосіб реалізації рішення,
відсутність правильного розуміння технічної реалізації до розробки архітектури,
можуть призвести до помилок.
1Research
and Development – совокупность работ, направленных на получение новых знаний и практическое
применение при создании нового изделия или технологии
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
1. ВВЕДЕННЯ В ОСНОВИ ТЕСТУВАННЯ ПО
ЗМІНА ТЕХНОЛОГІЙ
Поява нового покоління технологій, підтримку яких диктує ринок, або ж від
початку неправильно обрані технології, які потребують переходу на інші.
2Компілятор (від англ. Compile – збирати разом, складати) – системна програма, що виконує перетворення
програми, яка написана однією алгоритмічною мовою, на програму мовою близькою до машинної, і в певному
розумінні еквівалентну першій.
3 Відлдник (деб ггер, англ. debugger) — комп’ютерна програма, призначена для пошуку помилок в інших
програмах, ядрах операційних систем, SQL-запитах та інших видах коду.
4 Валідатор формату (часто просто валідатор, калька з англ. validator) – комп’ютерна програма, яка перевіряє
відповідність будь-якого документу, потоку даних або фрагменту коду відповідному формату, перевіряє синтаксичну
коректність документа або файлу.
5 Бібліотеки
класів – це набір об’єктно-спрямованих типів та інтерфейсів, які представляють об’єктні моделі та
сервіси для вирішення більшості складних задач програмування, з якими може зіткнутися розробник.
10
а́
а́
4. ПРИНЦИПИ ТЕСТУВАННЯ
Тестування може показати, що дефекти присутні, але не може
1. Тестування довести, що їх немає. Тестування знижує ймовірність наявності
демонструє наявність дефектів, які знаходяться у програмному забезпеченні, проте,
дефектів (Testing shows навіть якщо дефекти не були знайдені, це не доводить його
presence of defects) коректності.
11
12
6. КЛІЄНТ-СЕРВЕРНА АРХІТЕКТУРА
Клієнт-серверна архітектура (Client-server architecture) — мережева
архітектура, у якій навантаження мережі розподілене між постачальниками
послуг, що називають серверами, та замовниками послуг, що називають
клієнтами. Фізично клієнт та сервер – це програмне забезпечення. Зазвичай
вони взаємодіють через комп’ютерну мережу за допомогою мережевих
протоколів та знаходяться на різних вичислювальних машинах, проте можуть
також виконуватися і на одній машині. Додатки-сервери очікують від клієнтських
програм запити (request) і надсилають їм відповідь (response) з результатом
запиту.
Розглянемо приклад.
Ми сидимо за комп’ютером та хочемо зайти на сайт пошукової системи Google.
Що ж буде відбуватися з точки зору клієнт-серверної архітектури? Ми у себе за
комп’ютером – це клієнт, нам потрібен сервіс пошукової системи, ми заходимо
до браузера та вводимо в адресному рядку www.google.com. Далі йде запит на
віддалений сервер, який визначає, що нам потрібна сторінка пошукової
системи Google. Після цього сервер надсилає нам відповідь у вигляді сторінки
пошукової системи і ми бачимо її у нашому браузері.
13
Питання до заняття:
1. Що таке тестування?
2. Що таке якість?
3. Хто такий гарний тестувальник та які особисті якості він повинен мати?
4. Яка різниця між верифікацією та валідацією?
5. Що таке дефект?
6. Чи можна знайти всі дефекти у ПЗ? Аргументуйте свою відповідь.
7. Що таке збій?
8. Які існують принципи тестування та їх опис?
9. Яка різниця між дво- та трирівневою клієнт-серверною архітектурою?
10. Яка різниця між товстим і тонким клієнтом у контексті клієнт-серверної
архітектури?
14
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
2. РОЗРОБКА ПЗ. ПРОЦЕС ТЕСТУВАННЯ. ЙОГО МЕТОДИ ТА РІВНІ
6Ратифікація (лат. ratificatio від ratus — вирішений, затверджений + facere — робити) — процес надання юридичної
сили документу (наприклад, договору) шляхом затвердження його відповідним органом кожної зі сторін.
7 UML (англ. Unified Modeling Language — уніфікована мова моделювання) — мова графічного опису
для об’єктного моделювання в області розробки програмного забезпечення.
16
8Agile – серія підходів до розробки програмного забезпечення, яке орієнтоване на використання інтерактивної
розробки
17
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
2. РОЗРОБКА ПЗ. ПРОЦЕС ТЕСТУВАННЯ. ЙОГО МЕТОДИ ТА РІВНІ
Цілі контролю:
• Аналіз результатів
• Порівняння поточного прогресу виконання тестів із запланованим раніше
• Виправлення помилок, якщо тестування пішло не за планом
19
3. МЕТОДОЛОГІЯ ТЕСТУВАННЯ
Тестування методом “чорної ящику” (Black Box testing) – метод тестування
функціональної поведінки об’єкта (програми, системи) з точки зору зовнішнього
світу, за якого не використовується знання про внутрішній пристрій або
структуру об’єкта, що тестується (простіше: немає доступу до програмного коду).
Воно націлено на перевірку очікуваної поведінки додатку або програми з точки
зору кінцевого користувача. Базується на даних входу та виходу.
20
Тестування методом “сірого ящику” (Gray Box testing) – метод тестування, при
якому ми тестуємо методом “чорного ящику”, але тільки при цьому ми знаємо
внутрішню структуру і принцип роботи додатку. Знання про внутрішній устрій
програми дозволяють нам точніше підібрати вхідні значення та перевіряти
вихідні, тим самим покривати тестами найбільшу область можливих дефектів.
4. РІВНІ ТЕСТУВАННЯ
Тестування на різних рівнях відбувається протягом усього життєвого циклу
розробки та супроводу програмного забезпечення. Рівень тестування визначає
те, над чим здійснюються тести: над окремим модулем, групою моделей чи
системою в цілому.
РІВНІ ТЕСТУВАННЯ
9Заглушки та драйвера – функційні засоби (програми, програмний код), які слугують для симуляції окремих модулей
або груп модулей, які ще не реалізовані.
21
Чим більший об’єм інтеграції, тим важче ізолювати збої у певному інтерфейсі,
що може призвести до підвищеного ризику, а також до появи різноманітних
підходів інтеграційного тестування. Найбільш об’ємний вид інтеграції, коли усі
компоненти або системи інтегровані одночасно, після чого все тестується як
одне ціле. Це має назву «BigBang» (Великий Вибух) тобто інтеграційне тестування
або монолітне тестування. Відповідно немає необхідності симулювати роботу тих
частин, яких ще немає у розробці.
22
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
2. РОЗРОБКА ПЗ. ПРОЦЕС ТЕСТУВАННЯ. ЙОГО МЕТОДИ ТА РІВНІ
Може містити в собі тести, які базуються на ризиках і/або технічному завданні,
бізнес-процесах, варіантів використання, або інші описи високорівневої
поведінки системи, взаємодії з операційною системою та системними
ресурсами. Системне тестування дуже часто є фінальним тестом на перевірку
того, що система відповідає сертифікації і його завданням є знайти настільки
багато дефектів, наскільки це можливо.
23
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
2. РОЗРОБКА ПЗ. ПРОЦЕС ТЕСТУВАННЯ. ЙОГО МЕТОДИ ТА РІВНІ
24
fi
Дуже часто такий тип системи проходить два етапи приймального тестування.
Питання до заняття:
1. Що таке проєкт?
2. Які розрізняють основні фази розробки ПЗ?
3. Яка різниця між тестувальником та QA?
4. Які розрізняють основні фази фундаментального процесу тестування?
5. Яка різниця між тестуванням методом чорної ящику та білого?
6. Що таке Unit Testing?
7. Які розрізняють види інтеграційного тестування?
8. Які можна перерахувати плюси та мінуси підходу інтеграції компонентів Big Bang?
9. Приймальне тестування може бути виконано тільки після системного
тестування, чи не так? Аргументуйте свою відповідь.
10. Чи може Acceptance Testing виконуватися тестувальниками?
25
1. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ
МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ
26
Тим самим, каскадна модель має на увазі, що перехід від однієї стадії розробки до
іншої відбувається тільки після повного та успішного завершення попередньої
фази, (перехід назад або вперед або перекриття фаз – не відбувається).
Затвердження вимог
Проєктування
Розробка
Тестування
Підтримка
🧐 Цікаво знати
Методику «Водоспаду» досить часто критикують за недостатню гнучкість та
оголошення самоціллю формальне управління проєктом на шкоду термінам,
вартості та якості. Тим не менш, під час управління великими проєктами
формалізація часто виступала дуже великою цінністю, оскільки могла
кардинально знизити багато ризиків проєкту і зробити його більш прозорим.
27
V – MODEL
V-модель розвивалась у 1960-х, з того часу різні інститути та автори перероблювали,
покращували та екстраполювали її. Існує безліч версій V-моделі, кожна зі своєю
спеціалізованою термінологією, назвами та описами фаз. Хоча у галузі ІТ відбулися
великі зсуви з моменту її виникнення, визначені V-моделлю принципи так само
застосовуються сьогодні, як і у часи початкового створення моделі.
Проєктування
Вимоги Приймальне тестування
приймальних тестів
Кодування
28
ПРИНЦИПИ V-МОДЕЛІ:
🧐 Цікаво знати
V-модель також може бути застосована для великих універсальних проєктів
розробки, які використовують водоспадний підхід, так і для проєктів розробки,
які застосовують гнучкі методики.
29
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
30
ПЕРЕВАГИ НЕДОЛІКИ
31
SCRUM
32
33
Product Owner ставить завдання команді, але він не має права ставити завдання
конкретному члену проєктної команди протягом спринту.
Фасилітатор (англ. facilitator, від лат. facilis — «легкий, зручний») — це людина, яка забезпечує успішну групову
11
комунікацію.
34
Команда (Team)
У методології Scrum команда є самоорганізованою та самокеруючою. Команда
бере на себе обов’язки по виконанню об’єму роботи на спринт перед Product
Owner. Робота команди оцінюється як робота єдиної групи. У Scrum внесок
окремих членів проєктної команди не оцінюється, оскільки це руйнує
самоорганізацію команди.
Обов’язки команди:
• Відповідає за оцінку елементів • Відстежує особистий прогрес
беклогу (разом зі Скрам Мастером).
• Приймає рішення стосовно • Відповідає за результат перед
дизайну та імплементації Product Owner
• Розробляє софт та надає
його замовникові
12Фліпч рт — магнітно-маркерна дошка з кріпленням для папірчика чи блоку паперу, які перегортаються як блокнот.
35
а́
АРТЕФАКТИ
Product Backlog – це пріоритезований список бізнес-вимог та технічних вимог,
які існують на даний момент.
СПРИНТ (SPRINT)
В Scrum ітерація має назву Sprint. Її тривалість складає до 1 місяця (30 днів).
36
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
Планування спринту
На початку кожного спринту відбувається його планування, де беруть участь
замовники, користувачі, менеджмент, Product Owner, Скрам Мастер і команда.
Учасники: Учасники:
Команда, Product Owner, Scrum Master, Скрам Мастер, команда.
користувачі, менеджмент.
Мета:
Мета: визначити, як саме буде розроблятися
Визначити мету спринту (Sprint Goal) певна функціональність для того, аби
та Sprint Backlog – функціональність, досягнути мети спринту.
яка буде розроблена протягом Для кожного елементу Sprint Backlog
наступного спринту для досягнення визначається список завдань та
мети спринту. оцінюється їх тривалість.
Артефакт: Артефакт:
Sprint Backlog у Sprint Backlog з’являються завдання.
37
Скрам мітинг проводить Скрам Мастер. Він по черзі ставить питання кожному члену
команди.
Скрам Мастер збирає всі відкриті для обговорення питання у вигляді Action Items,
наприклад, у форматі що/хто/коли.
38
Ретроспектива Спринту
Ретроспектива Спринту дає Скрам Команді можливість інспектувати себе та
створити план покращень для наступного Спринту.
39
KANBAN
Для початку розповімо про походження терміну Канбан. Цей термін прийшов до нас
з Японії завдяки широковідомій у вузьких колах виробничій системі Тойота. Основні
принципі, які закладені у ній — ощадливе виробництво (Lean manufacturing),
постійний розвиток, орієнтація на клієнта і т.д.
Термін Канбан має дослівний переклад: “Кан” означає видимий, візуальний, і “бан”
означає картка або дошка. На заводах Тойота картки Канбан використовуються
повсюдно для того, щоб не захаращувати склади та робочі місця заздалегідь
створеними запчастинами. Наприклад, уявіть, що ви встановлюєте двері на Тойоту
Короллу. У вас навколо робочого місця знаходиться пачка з 10 дверей. Ви
встановлюєте їх одну за одною на нові машини і, коли в пачці залишилось 5
дверцят, ви знаєте, що потрібно замовити нові двері. Ви берете картку Канбан,
пишете на ній замовлення на 10 дверей та відносите її тому, хто робить ці двері. Ви
знаєте, що він зробить їх якраз до того моменту, коли у вас закінчаться 5 дверей, які
залишились. Саме так і відбувається — коли ви встановлюєте останні двері,
прибуває пачка з 10 нових дверей. І так постійно — ви замовляєте нові двері тільки
тоді, коли вони вам потрібні.
А зараз уявіть, що така система діє на усьому заводі. Ніде немає складів, де
запчастини лежать тижнями та місяцями. Всі працюють тільки після запиту та
виготовляються саме стільки запчастин, скільки замовлено. Якщо раптом
замовлень стало більше чи менше – система сама легко підлаштовується під зміни.
Наприклад, на всю виробничу лінію може бути виділено рівно 10 карток для дверей.
Це означає, що кожного разу на момент часу на лінії буде не більше 10 готових
дверей. Коли замовляти нові двері та скільки – це завдання для того, хто їх
встановлює. Тільки він знає свої потреби і тільки він може надсилати замовлення
виробнику дверей, але він завжди обмежений числом 10.
40
Якщо команда отримує фан від роботи і працює з повною віддачею, то ніякий
контроль і не потрібен, а тільки заважає, збільшує витрати. Наприклад,
загальновідома проблема SCRUM — це великі витрати через обговорення,
зустрічі та великі втрати часу на стиках спринтів (коли як мінімум день йде на
закриття одного спринту, а потім день на відкриття нового. І якщо спринт –
2 тижні, то 2 дні з 2 тижнів – це 20%, страшенно багато). Як результат, ледь не
30-40% часу при застосуванні SCRUM витрачається на підтримку самого процесу
– на щоденні мітинги, на 5% workshop, на спринт ретроспектив і т.п. 30%!
41
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПЗ
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
Спринтів ніяких немає, команда працює над завданням від самого початку та до
завершення. Деплоймент завдання роблять тоді, коли воно готове. Презентація
виконаної роботи – також. Команда не повинна оцінювати час на виконання
завдання, оскільки це має мало сенсу і майже завжди помилково на початку.
Наприклад, «Збільшити швидкість роботи на 20%» або «Додати підтримку Windows 10».
42
Розробка (Development):
Тут завдання висить до тих пір, поки розробка функцій не завершена. Після
завершення вона пересувається до наступного стовпця. І, якщо архитектура
хибна або не точна – завдання можна повернути до попереднього стовпця.
Тестування (Test):
У цьому стовпці завдання знаходиться, поки воно тестується. Якщо знайдені
дефекти – повертається до Розробки. Якщо ні – просувається далі.
Встановлення (Deployment):
Тут завдання висить до тих пір, поки розробка функцій не завершена. Після
завершення вона пересувається до наступного стовпця. І, якщо архитектура
хибна або не точна – завдання можна повернути до попереднього стовпця.
Завершено (Done):
Сюди стікер потрапляє тільки тоді, коли всі роботи по завданню завершені
повністю.
43
44
2. ВИДИ ТЕСТУВАННЯ
Розуміння видів тестування вводиться як засіб чіткого визначення мети певного
рівня тестування для ПЗ. Потрібно розглядати різні види тестування, тому що
тестування функціональності компонента або системи може бути недостатнім на
кожному рівні для досягнення загальних цілей тестування.
45
🧐 Цікаво знати
Тестування точності охоплює багато областей програмного забезпечення,
а не тільки розрахунки. Наприклад, розміщення об’єкту на екрані, відлік часу,
доступність даних і правильність є формами тестування точності. Під час
виконання тестування точності, ми намагаємось бути впевнені, що правильні
дані представлені у правильний час та правильним користувачам. Тестування
на точність часто вважається тестуванням на правильність. Це означає, що ми
перевірємо те, що програмне забезпечення працює правильно і в потрібний час.
46
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПО
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
47
💡 Наприклад
Якщо ви можете зламати систему, система має технічну загрозу безпеки.
Під час входу в систему звичайним користувачем, ви з’ясовуєте, що маєте права
адміністратора, система має функціональну загрозу безпеки.
48
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПЗ
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
49
50
51
52
53
ffi
ff
54
Під час огляду різних атрибутів підтримки, виділяються два спільні фактори: ми
майже всі відчуваємо вплив поганої підтримуваності програмного забезпечення
(прямо чи опосередковано), і всі вони істотно впливають на витрату зусиль та
грошей.
55
Адаптованість (Adaptability)
Середовище, у якому програмне забезпечення працює, може складатися з
апаратної платформи та різноманітних типів програмного забезпечення. Це
може включати в себе операційну систему, програмне забезпечення мережі,
програмне забезпечення бази даних, браузери та різного проміжного ПЗ.
56
Інсталяційність (Installability)
Інсталяційність характеризує здатність програмного забезпечення бути готовим
до використання в його цільовому середовищі. Деякі програмні додатки
розроблені в стабільному середовищі, де є всі необхідні компоненти, такі як
операційна система, база даних та комунікаційне програмне забезпеченням,
можуть розглядатися як «належне». Часто це не наша відповідальність, аби
гарантувати, що ці стандартні компоненти встановлені, і ми часто можемо
вважати для нашої стратегії тестування, що всі вони готові, коли наше програмне
забезпечення встановлене.
57
Замінність (Replaceability)
Замінність характеризує здатність систем функціонувати правильно з різними
альтернативними програмними компонентами. Сучасні програмні архітектури
часто містять у собі елементи, які розроблені, аби бути заміщеними в
майбутньому. Можливо, нові, покращені версії програмних компонентів будуть
доступні в майбутньому, або, можливо, комплексні системи, з якими взаємодіє
додаток, повинні бути змінені. Навіть, якщо заміна програмних компонентів не
планується на даний момент, зацікавлені сторони (особливо власники бізнесу та
оператори) можуть вимагати здатності бути гнучким, якщо виникають нові запити
протягом життєвого циклу додатку.
Співіснування (Co-existence)
Співіснування описує здатність додатку розділити середовище з іншими
додатками, не відчуваючи або не спричиняючи при цьому негативні ефекти.
58
fi
fi
Усі тест-кейси регресійного набору можуть виконуватися кожного разу під час
виходу нової версії додатку, це робить ці тести ідеальними кандидатами для
автоматизації.
59
ff
Mодуль1. ОСНОВНІ ПОНЯТТЯ В ТЕСТУВАННІ ПЗ
3. МЕТОДОЛОГІЇ РОЗРОБКИ ПЗ. ВИДИ ТЕСТУВАННЯ
Регресійне тестування
https://www.youtube.com/watch?v=1f3yfUnji8o Scan and watch
60
Питання до заняття:
61
Модуль II.
ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
Заняття 4.
GUI ЕЛЕМЕНТИ ТА ОГЛЯД ВИМОГ
1. ЕЛЕМЕНТИ ГРАФІЧНОГО ІНТЕРФЕЙСУ (GUI ЕЛЕМЕНТИ)
2. ВИДИ ВИМОГ ТА ЇХ ХАРАКТЕРИСТИКИ
Питання до заняття
На відміну від інтерфейсу командного рядку, в GUI користувач має довільний доступ
(за допомогою пристроїв введення — клавіатури, миші, тачпаду (touchpad) і т. п.) до
усіх видимих екранних об’єктів (елементів інтерфейсу) і здійснює безпосереднє
маніпулювання ними. Частіше за все елементи інтерфейсу в GUI реалізовані на базі
метафор та відображають їх призначення та властивості, що полегшує розуміння та
освоєння програм непідготовленим користувачам.
62
63
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
4. GUI ЕЛЕМЕНТИ ТА ОГЛЯД ВИМОГ
Елемент для відображення даних таблиці (Grid view або Data Grid) – виключно
гнучкий елемент управління таблицями, яки призначений для демонстрації даних
у вигляді двовимірної сітки (grid), або екранної таблиці, що складається з рядків та
стовпців.
64
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
4. GUI ЕЛЕМЕНТИ ТА ОГЛЯД ВИМОГ
65
66
Типи підказок:
Спливаюча підказка – з’являється при наведенні курсору до об’єкта, який цікавить
Підказка під час запуску – вікно, яке з’являється після запуску, та демонструє
короткий текст по незвичним або нестандартним можливостям програми
67
Вимоги16 – умови або можливості, які необхідні для вирішення проблем або
досягнення мети.
Вимоги – умови або можливості, якими повинна володіти система або системні
компоненти, аби виконати контракт або задовольняти стандарти, специфікації
або інші формальні документи.
16 Визначення за стандартом: IEEE Std. 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology
68
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
4. GUI ЕЛЕМЕНТИ ТА ОГЛЯД ВИМОГ
69
fi
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
4. GUI ЕЛЕМЕНТИ ТА ОГЛЯД ВИМОГ
70
Обмеження (constraints)
Обмеження стосуються вибору можливості розробки зовнішнього вигляду та
структури продукту, які мови програмування, технології та платформи
використовуються.
71
ffi
• Коректність (Correctness)
• Недвозначність (Unambiguousness)
• Повнота (Completeness)
• Несуперечливість (Consistency)
• Верифікованість (Verifiability)
• Трасування (Traceability)
• Модифікованість (Modifiability)
• Пріоретизованість (Ranked for importance)
Коректність
Кожна вимога повинна точно описувати функціональність. Чи можна поставити
питання, наскільки коректною є наша вимога? Чи дійсно це те, що вимагається
від системи чи хтось припустився помилки/друкарської помилки у процесі
написання вимоги?
Приклад: після набору номеру телефону, користувач повинен чути короткі гудки
(які символізують, що триває дзвінок
Опис: у даному випадку просто сплутали слово. Гудки повинні бути довгими. Це
ніяк не суперечить вимозі (яка також існує) про те, що під час ситуації «зайнято»
також повинні бути короткі гудки. Також це не суперечить трасування на верхні
вимоги, де може бути вказано, що для різних ситуацій повинні бути різні гудки.
Решта критеріїв також не порушені. Це просто неправильність опису вимоги.
72
Недвозначність
Усі читачі вимог повинні інтерпретувати їх однаково, але звичайна мова часто
буває багатозначною. Заповнюйте документацію просто, коротко та точно,
застосовуючи лексику, яка зрозуміла користувачам. «Зрозумілість» - мета якості
вимог, як пов’язана з точністю: читачі повинні чітко розуміти кожне положення.
Можна поставити питання, чи можуть 2 різні людини зрозуміти вимогу по-
різному?
Повнота
Кожна вимога повинна повністю описувати функціональність, яку буде
реалізовано в продукті. Тобто вона повинна містити всю інформацію, яка
необхідна для розробників, аби тим вдалося створити цей фрагмент
функціональності. Якщо ви розумієте, що даних певного роду не вистачає,
використовуйте примітку «TBD» (to be determined — необхідно визначити) на
полях як стандартний прапорець для виділення такого місця. Заповніть усі
пробіли в кожному фрагменті вимог, перш ніж починати конструювання цієї
функції. Можна поставити питання, наскільки повним є набір вимог? Якщо є
секція у специфікації, яка визначає функціональність модулю, то чи вся
функціональність цього модулю покрита вимогами?
73
Несуперечливість
Несуперечливі вимоги не конфліктують з іншими вимогами такого ж типу або з
високорівневими вимогами користувача, системними або бізнес-вимогами.
Розбіжності в текстах документів варто усунути до початку процесу розробки.
Можна поставити питання, чи не суперечать вимоги одне одному? Це може бути
типовий випадок, коли дві вимоги однозначно диктують протилежні речі, проте
може бути також прихований випадок, коли протилежність не очевидна на
перший погляд.
Приклад:
У тексті однієї з вимог зазначено, що звіт повинен формуватися у вигляді
таблиці, в іншому зазначено, що він повинен формуватися просто у вигляді
тексту.
В одній з вимог зазначено, що два вхідні параметри повинні бути підсумовані
програмою, а в іншій зазначено, що вони повинні перемножуватися.
Верифікованість
Для тестувальників це – один з основних та найважливіших критеріїв.
Чи можливо перевірити цю вимогу та упевнитись, що її дотримано?
Приклад:
У випадку виникнення критичної помилки, телефон повинен перезавантажитись.
• Під час аналізу вимог поставити питання: «Як я буду це перевіряти?». Якщо
однозначної відповіді немає – необхідно більш детально аналізувати і,
можливо, вносити зміни у вимоги (уточнення, обмеження).
Трасування
Будь-яка вимога проходить шлях від бізнес-ідеї до деталей реалізації. Це можуть
бути три рівні вимог (business requirements, user requirements, functional
requirements). Трасування — це зв’язок вимоги вище з вимогою нижче.
Наприклад, є бізнес-вимога щодо того, що повинна бути можливість вимикати
звук. Вона може розпадатися на рівні functional requirements на багато вимог,
75
Приклад:
Бізнес-вимога не має жодної функціональної вимоги. Відповідно маємо пробіл в
реалізації (ми не зробимо того, що потрібно бізнесу).
76
Модифікованість
Необхідно забезпечити можливість зміни вимог, якщо виникає така потреба, та
підтримувати історію змін кожного додатку. Для цього всі вони повинні бути
унікально помічені та позначені, аби ви могли посилатися на них неодноразово.
Кожна вимога повинна бути записана до специфікації тільки один раз. Інакше ви
легко отримаєте розбіжності, якщо зміните тільки одне положення з двох
однакових.
Пріоритезованість
Необхідно забезпечити можливість зміни вимог, якщо виникає така потреба, та
Виставте пріоритети кожній функціональній вимозі, характеристиці або варіанту
використання (use case), аби визначте, що необхідно кожній версії продукту.
Якщо всі положення однаково важливі, менеджеру проєкту буде важко
впоратись зі зменшенням бюджету, порушенням термінів, втратою персоналу
або додаванням нових вимог у процесі розробки.
Питання до заняття:
77
79
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
5. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
Міститься інформація:
Міститься інформація:
• загальна інформація про продукт, • перелік областей тестування з
посилання на документацію, баг-трекер
пріоритетами;
та інші проєктні ресурси;
• стратегія тестування;
• загальні правила тестування: вимоги до
оформлення дефектів; • проєктні ризики;
2. Посилання (References)
Перелік усіх документів, на основі яких створюється Тест-план:
1. План Проєкту
2. Вимоги до продукту
80
fi
3. Архітектура продукту
4. Детальний дизайн продукту
5. Стандарти розробки та процесу тестування
6. Опис методології
7. Корпоративні стандарти
3. Введення (Introduction)
Визначення мети Тест-плану, ідентифікація рівня Тест-плану (Загальний і т.д.).
Також до цієї частини належать усі посилання на інші плани, які містять
інформацію про проєкт або процес. Краще створити блок з усіма посиланнями
на документи. Вказується опис об’єкта тестування, ресурси, обмеження
бюджету, об’єм роботи тестування.
81
6. Функції, які не будуть протестовані (Features not to be tested або Out of Scope)
Список функцій, які не будуть протестовані.
82
• Спеціальне hardware
• Хто та які тестові дані будуть використовувати
• На скільки буде покритий тестами кожний компонент системи
• Версії та інше програмне забезпечення
• Обмежене використання системи на цьому етапі тестування.
• Визначення ризиків
• Визначення функцій, які (не) будуть протестовані
• Визначення стратегії для Плану даного рівня
• Наявність необхідних елементів для тестування
• Хто проводить тренінги
• Хто визначає, що додати/не додати до Тест-Плану
• Заснований на метриках:
оцінка трудовитрат заснована на метриках попередніх або вихідних
проєктів або заснована на типових значеннях;
• Заснований на експертній оцінці:
оцінка завдань здійснюється ініціатором цих завдань або експертом.
Як тільки оцінка трудовитрат зроблена, можна визначити ресурси або скласти
графік.
Роботи з тестування можуть залежати від ряду факторів, включаючи:
84
• Project Manager
• Business Analyst
• Test Manager
3. ТЕСТОВЕ ПОКРИТТЯ
Тестове Покриття (Test coverage) – це одна з метрик оцінки якості тестування, яка
являє собою щільність покриття тестами вимог або виконуваного коду.
85
ff
Відмінності:
Метод покриття вимог зосереджений на перевірки відповідності набору тестів, що
проводяться, до вимог до продукту, у той час як аналіз покриття коду – на повноті
перевірки тестами, розробленої частини продукту (вихідного коду).
Обмеження:
Метод оцінки покриття коду не виявить нереалізовані вимоги, оскільки працює не з
кінцевим продуктом, а з існуючим вихідним кодом.
Метод покриття вимог може залишити без перевірки деякі ділянки коду, тому що не
враховує кінцеву реалізацію.
Lcov
Tcov = 100%
Ltotal *
де:
Tcov – тестове покриття;
Lcov – кількість вимог, які перевіряються тест-кейсами;
Ltotal – загальна кількість вимог
Для оптимізації тестового покриття під час тестування на основі вимог, найкращим
способом буде використання стандартних технік тест-дизайну.
86
Mодуль ІІ. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
5. ПЛАНУВАННЯ ПРОЦЕСУ ТЕСТУВАННЯ
Ltc
Tcov = 100%
Lcode *
де:
Tcov – тестове покриття;
Ltc – кількість рядків коду, які покриті тестами;
Lcode – загальна кількість рядків коду.
У наш час існують різні інструментальні засоби, які дозволяють проаналізувати, у які
рядки були входження під час проведення тестування, завдяки чому можна значно
збільшити покриття, додавши нові тести для конкретних випадків, а також позбутися
дублюючих тестів.
87
88
Питання до заняття:
1. Що таке тест-план?
2. Які розрізняють атрибути тест-плану?
3. Що таке Entry і Exit критерії в тест-плані?
4. На базі чого описують Schedule?
5. Які розрізняють види тест-планів?
6. Хто може описувати тест-план?
7. Що таке матриця трасування?
8. Які розрізняють види тестового покриття?
9. Які інструментальні засоби можна використовувати для написання
тест-плану та визначення тестового покриття?
89
Модуль ІІІ.
АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ
ТЕСТІВ
Заняття 6.
ОГЛЯД ЧЕК-ЛИСТА, ТЕСТ КЕЙСУ ТА РИСК ЛОГУ
1. ДЕТАЛЬНИЙ ОГЛЯД ЧЕК-ЛИСТА (CHECK LIST)
2. ДЕТАЛЬНИЙ ОГЛЯД ТЕСТ КЕЙСУ (TEST CASE)
3. ДЕТАЛЬНИЙ ОГЛЯД РИСК ЛОГУ (RISK LOG)
4. ПОЗИТИВНЕ ТА НЕГАТИВНЕ ТЕСТУВАННЯ
5. ТЕСТ НАБІР І ТЕСТОВИЙ СЦЕНАРІЙ
Чек-листи тестування можуть мати зовсім різні рівні деталізації. Іноді чек-листами
називають детальні інструкції про продукт, який тестується, інструкції, які містять
послідовність дій, безліч деталей і т. д. Це не так! Головний принцип чек-листів
полягає у тому, що кожен тестувальник по-своєму проходить їх та розширює
тестовий набір своєю експертизою.
ПЛЮСИ МІНУСИ
• статистика: хто, коли, що проходив (з • тестувальники-початківці не завжди
деталізацією зі збирання продукту та ефективно проводять тести без досить
оточенню, на якому проводилось детальної документації;
тестування); • чек-листи неможливо використовувати для
• пам’ятка, яка допомагає не забути навчання нових співробітників, оскільки в
важливі тести; них недостатньо детальної інформації;
• можливість оцінити стан продукту, його • замовнику або керівництву може бути
готовність до випуску. недостатньо того рівня деталізації, який
пропонують чек-листи.
90
Тест кейс (Test Case) – це тестовий артефакт, який описує сукупність кроків,
конкретних умов та параметрів, які є необхідними для перевірки реалізації
функції, що тестується, або її частини.
💡 ВАЖЛИВО
Суттєвим є те, що процес верифікації тільки один. Саме тому тест кейс не можна
подрібнити, розбити на декілька ще менших частин. Тому він є мінімальним
елементом перевірки. Якщо верифікацій більше, ніж одна, це вже не тест кейс.
Перший та третій компоненти тест кейсу також дуже важливі. Вони роблять різні
тест кейси незалежними один від одного. Їх можна виконувати в будь-якій
послідовності. Це дуже важливо під час автоматизації тестування. Але для
ручного тестування це також важливо. Тому що з тест кейсів складають тест світ
(test suite) – групу зв’язаних тест кейсів.
91
Позитивний тест кейс (Positive test case) використовує тільки коректні дані та
перевіряє, що додаток правильно виконав функцію, яку очікують.
💡 Наприклад
Додаток здійснює пошук даних за певними параметрами і один з параметрів –
телефон користувача. Ми вводимо в поле «Телефон» цифрові значення та
натискаємо кнопку «Пошук». Додаток повинен коректно знайти дані, які
відповідають тому критерію, який був заданий. У такому випадку, коректні дані для
поля це цифри. Відповідно в такому випадку ми перевіряємо, наскільки коректно
працює система з коректними даними.
💡 Наприклад
Візьмемо попередній додаток, що здійснює пошук даних за визначеними
параметрами і один з параметрів – телефон користувача. Ми вводимо в поле
«Телефон» буквенні значення та натискаємо кнопку «Пошук». Оскільки буквенні
символи є недопустимими для поля телефону, додаток повинен коректно
опрацювати цей випадок, наприклад, після натискання кнопки «Пошук», повинно
з’явитися попереджувальне діалогове вікно. Відповідно в такому випадку ми
перевіряємо, наскільки коректно система опрацьовує неправильні вхідні дані.
Високорівневий тест кейс (High-level test case) – тест кейс без конкретних
вхідних даних, реальні дані та результат, який очікується, не визначені або
невідомі, використовуються логічні вирази. Якщо результат, який очікується,
невідомий, він також не вказується.
92
Розглянемо вимогу: Кнопка «Find Next» повинна бути неактивна, якщо поле
«Find what:» не містить жодного символу, і активна, коли це поле містить як
мінімум один символ. Виходячи з поданої вимоги, ми вже можемо визначити
результат, який очікується, для високорівневого тест кейсу, так само для
детального тест кейсу.
93
3. Відкрити діалогове вікно «Find» Діалогове вікно «Find» було успішно відкрито
94
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
6. ОГЛЯД ЧЕК-ЛИСТА, ТЕСТ КЕЙСУ ТА РИСК ЛОГУ
95
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
6. ОГЛЯД ЧЕК-ЛИСТА, ТЕСТ КЕЙСУ ТА РИСК ЛОГУ
Риск Лог (Risk Log) – тестовий артефакт, який відповідає за перевірку певної
функціональності, може мати різний рівень деталізації та базується на ризиках.
96
Перший ризик: Кнопка «Find Next» активна, якщо поле «Find what:» не містить
жодного символу.
Другий ризик: Кнопка «Find Next» не активна, якщо поле «Find what:» містить як
мінімум один символ.
Перший та другий ризики будуть Риск Логами для розглянутої вище вимоги.
Як працювати з даними Риск Логами та як проводити тестування, спираючись на
них? Якщо у випадку з Тест Кейсами ми покроково проходили все, що було
описано в Тест Кейсі, то Риск Лог повинен спростувати той факт, який описаний
у Риск Лозі, і коли цей факт спростований, Риск Лог вважається успішно
пройденим.
Для прикладу візьмемо Риск Лог: Кнопка «Find Next» активна, якщо поле «Find
what:» не містить жодного символу. Якщо ми упевнимось у тому, що поле «Find
what:» не містить жодного символу, але при цьому кнопка «Find Next» неактивна,
як зазначено у вимозі, то Риск Лог буде вважатися успішно пройденим, якщо
даний Ризик був перевірений та доведено, що він не виник під час перевірки.
97
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
6. ОГЛЯД ЧЕК-ЛИСТА, ТЕСТ КЕЙСУ ТА РИСК ЛОГУ
АЛЕ – усього цього не буде зовсім, якщо система не виконує своє основне
призначення, якщо користувачі (замовники) не можуть вирішити свої бізнес-
завдання, якщо вони все роблять правильно, вводять коректні дані, але не
отримують результат. І порадити їм нічого в такому випадку не можна.
98
Тест Набір або Тест Світ (Test Suite) – це набір тест кейсів, які об’єднані тим, що
відносяться до одного модуля, який тестується, до функціональності, пріоритету
або одного типу тестування. Кожен тест світ складається з більш ніж одного тест
кейсу і часто виконується усією «пачкою» у процесі тестування.
Тест кейси об’єднуються у тест світи для більшої зручності під час проходження
тест кейсів, виконуючи їх послідовно від модуля до модуля, від одного типу
тестування до іншого, а не сумбурно, кидаючись з одного кутка в інший, та
залишаючи неперевіреною більшу частину модуля чи загальної функціональності.
Тестовий Сценарій (Test Scenario) – це набір дій, які потрібно виконати для
перевірки того, наскільки коректно працює функціонал усієї системи.
Як правило, це послідовність тих дій, які кінцевий користувач буде
здійснювати для вирішення своїх завдань.
Питання до заняття:
99
100
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
7. ТЕХНІКИ ТЕСТУВАННЯ
ТЕХНІКИ ТЕСТУВАННЯ
Статичні Динамічні
Класи еквівалентності
Проходження
Граничні значення
Технічне рецензування
Таблиця прийняття рішень
Сценарії виконання
Статичний аналіз
Причина/Наслідок
Базуються на досвіді
Передбачення помилок
Дослідницьке тестування
Базуються на структурі
Не розглядаються у даному курсі
Базуються на дефектах
Не розглядаються у даному курсі
101
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
7. ТЕХНІКИ ТЕСТУВАННЯ
Walkthrough Level
of formality
Technical review
Inspection High
Модератор (Moderator)
Модератор – лідер процесу рецензії. Це та людина, разом з автором, яка визначає
тип рецензії, підхід та склад команди. Модератор також складає графік зустрічей,
поширює документи до початку зустрічей та зберігає всі зібрані дані.
Автор (Author)
Автор рецензованого документа. Головна мета автора – покращити якість
документа і з’ясувати якомога більше неточностей та недоробок у документі.
102
1. Планування (Planning)
2. Перший мітинг (Kick-off meeting)
3. Підготовка (Preparation)
4. Другий мітинг (Review meeting)
5. Виправлення документа (Rework)
6. Перегляд змін (Follow-up)
103
Якщо документ пройшов етап входу, модератор та автор вирішують, яку частину
документа переглядати. На кожну людину виділяється певна кількість сторінок
документа.
🧐 Цікаво знати
Оптимальна швидкість перевірки є результатом поєднання ряду факторів, у
тому числі типу документа, його складність, кількість пов’язаних з ним
документів, а також досвід рецензента. Зазвичай швидкість перевірки
знаходиться в діапазоні від 5 - 10 сторінок за годину, але може бути значно
менше, для формального огляду, наприклад, одна сторінка за годину.
104
ff
Під час фази реєстрації усі знайдені дефекти реєструються в певному документі.
Фаза обговорення
Протягом цієї фази будуть розглядатися усі можливі питання та коментарі.
Учасники можуть взяти участь у дискусії, висловити свої зауваження та думки. У
якості голови засідання виступає модератор.
105
106
Під час використання цієї техніки, тестувальник повинен пам’ятати про те, що:
107
108
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
7. ТЕХНІКИ ТЕСТУВАННЯ
Переваги та недоліки
Ця техніка додає до техніки аналізу класів еквівалентності орієнтованість на
конкретний тип помилок. Тобто, техніка аналізу класів еквівалентності просто
говорить нам про те, що необхідно розбити усі тести на класи та провести
тестування усіх класів. А техніка граничних значень орієнтована на виявлення
конкретної проблеми – виникнення помилок на межі класів еквівалентності.
Чому цей підхід може бути корисним? Як задаються обмеження в коді? Зазвичай
знаками більше, менше, дорівнює. І помилку можна «накодити» запросто, якщо
поставити не те значення у прикладі, не той знак. Повернемось до наших олівців
(див. Розподіл на класи еквівалентності), залежно від кількості замовлених олівців,
розрізняється вартість:
Знову-таки, значення 101, 102 і 199, 200 для цього класу будуть позитивними тестами.
А 100 і 201 – негативними.
110
Наприклад,
тестування значення 101: для класу еквівалентності від 1 до 100 – це негативний
кейс, а для класу еквівалентності від 101 до 200 – це позитивний тест. Для роботи
усієї програми це буде один кейс, адже очікуваний результат не змінюється: для
значення 101 очікуваний результат складає 9 грн.
111
112
Умови
Введення коректних даних
+ - + -
у поле "E- mail"
Введення коректних даних
+ - - +
у поле "Ім’я"
Введення некоректних даних
- + - +
у поле "E-mail"
Введення некоректних даних
- + + -
у поле "Ім’я"
Дії
Реєстрація успішна + - - -
113
114
Подія (event) (ярлик над стрілкою) – це те, що змушує додаток змінити свій
стан. Події можуть надходити ззовні додатку, вони надходять через інтерфейс
додатку. Так само додаток може генерувати події, наприклад, як подія «час
таймера добіг кінця». Коли відбувається подія, додаток може змінити стан або
залишитися в тому ж стані і/або виконати дію. Події можуть мати параметри,
наприклад, подія "payMoney" може мати параметри "Cash", "Check", "Debit Card"
або "Credit Card".
Дія (action) (після "/" у ярлику над переходом) – це дія, яка ініційована у
зв’язку зі зміною стану. Це може бути «надрукувати квиток», «показати на екрані»
та інші. Зазвичай дії створюють щось, що є вихідними даними системи.
Дії виникають під час переходів, самі по собі стани є пасивними.
116
116
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
7. ТЕХНІКИ ТЕСТУВАННЯ
Також клієнт може скасувати бронювання на стані "Paid". У такому випадку стан
також стає "Cancelled By Customer" і вартість квитка повертається клієнту.
117
118
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
7. ТЕХНІКИ ТЕСТУВАННЯ
Use Cases можуть розкрити інтеграційні дефекти, тобто дефекти, які викликані
неправильною взаємодією різних компонентів.
119
Use Cases описують процеси, які проходять через систему під час використання
її для бізнес завдань. Якщо тест кейси розробляються на основі Use Cases, то
вони дуже ефективно визначають вузькі місця, де можуть знаходитись дефекти,
оскільки саме таку послідовність дій будуть використовувати реальні користувачі
під час виконання своїх завдань.
1 А: Забронювати квиток
5 A: Роздрукувати квиток
120
121
ff
Питання до заняття:
122
1. ЩО ТАКЕ ДЕФЕКТ?
Помилками (дефектами) у програмному забезпеченні є всі можливі невідповідності
між характеристиками його якості, які демонструються, та сформованими або
передбачуваними вимогами користувачів.
КЛАСИФІКАЦІЯ ДЕФЕКТІВ
Функціональні дефекти (Functional defects) розподіляються на наступні
підкатегорії:
123
Де?
У якому місці інтерфейсу користувача або архітектури програмного продукту
знаходиться проблема.
124
Що?
Що відбувається або не відбувається згідно специфікації або за вашим
уявленням про нормальну роботу програмного продукту. При цьому вказуйте
на наявність або відсутність об’єкту проблеми, а не на його виявлення (його
вказують в описі). Якщо зміст проблеми варіюється, всі відомі варіанти
вказуються в описі.
Коли?
В який момент роботи програмного продукту, після настання якої події чи за
яких умов з’являється проблема.
Тестувальник повинен приділяти велику кількість уваги якості звітів про дефекти,
які він створює. Чим краще він написаний, тим менша ймовірність відхилення
дефекту або неправильного трактування дефекту іншими учасниками проєкту.
Метою написання звіту про дефект є виправлення дефекту, тому немає сенсу
створювати звіти заради звітів.
• Поточний статус (Status) – стан інциденту (звіту про помилку). Набір статусів
залежить від обраного процесу розробки. Наприклад: New, In Progress,
Closed, Deferred, Failed Retest, Fixed, Rejected, Reopen, Retest.
125
fi
Що?
Що відбувається або не відбувається згідно специфікації або за вашим
уявленням про нормальну роботу програмного продукту. При цьому вказуйте
на наявність або відсутність об’єкту проблеми, а не на його виявлення (його
вказують в описі). Якщо зміст проблеми варіюється, всі відомі варіанти
вказуються в описі.
Коли?
В який момент роботи програмного продукту, після настання якої події чи за
яких умов з’являється проблема.
Тестувальник повинен приділяти велику кількість уваги якості звітів про дефекти,
які він створює. Чим краще він написаний, тим менша ймовірність відхилення
дефекту або неправильного трактування дефекту іншими учасниками проєкту.
Метою написання звіту про дефект є виправлення дефекту, тому немає сенсу
створювати звіти заради звітів.
Поточний статус (Status) – стан інциденту (звіту про помилку). Набір статусів
залежить від обраного процесу розробки. Наприклад: New, In Progress,
Closed, Deferred, Failed Retest, Fixed, Rejected, Reopen, Retest.
126
fi
• Версія додатку, для якої інцидент було закрито (Fix Version) – версія
додатку, у якому інцидент було закрито.
• Автор звіту (Reporter) – ім’я людини, яка створила звіт. Автором звіту не
обов’язково повинен бути спеціаліст з тестування, ним може бути будь-який
учасник проєкту або навіть користувачі.
128
ff
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
8. ПОНЯТТЯ ДЕФЕКТУ
Життєвий цикл» дефекту (Defect life cycle) – це, як правило, набір статусів, у
яких може знаходитись дефект у системі відслідковування помилок, від
початкової стадії його виявлення у системі і до стадії виправлення, закриття.
129
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
8. ПОНЯТТЯ ДЕФЕКТУ
130
Mодуль ІІІ. АНАЛІЗ, РОЗРОБКА ТА ВИКОНАННЯ ТЕСТІВ
8. ПОНЯТТЯ ДЕФЕКТУ
Питання до заняття:
1. Що таке дефект?
2. Які класифікують типи дефектів?
3. Опишіть життєвий цикл дефекту.
4. Назвіть основні поля/атрибути звіту про дефект.
5. Яка різниця між Priority і Severity у контексті поняття дефекту?
Compare Tools
https://www.youtube.com/watch?v=x6UgrU4FrUs Scan and watch
131
Модуль IV.
ЗАВЕРШЕННЯ ПРОЦЕСУ ТЕСТУВАННЯ
ТА ЗВІТНІСТЬ
Заняття 11.
ФІНАЛЬНІ ДІЇ У ПРОЦЕСІ ТЕСТУВАННЯ
1. ЗАВЕРШЕННЯ ПРОЦЕСУ ТЕСТУВАННЯ
2. ДЕТАЛЬНИЙ ОГЛЯД ЗВІТНИХ ДОКУМЕНТІВ
Питання до заняття
Даний звіт може бути створений тільки після того, як усі тести були виконані та
вихідні критерії були досягнуті. Також, якщо команда працює за методологією
Scrum, необхідно провести Demo для замовника, і тільки після його проведення
може бути складений Зведений звіт про закінчення тестування. Головна мета Test
Summary Report це документування усіх результатів процесу тестування та надання
інформації усім учасникам та зацікавленим особам проєкту таким як: Project
Manager, Test Manager, Business Analyst та інші.
• Ідентифікатор звіту.
• Назва додатку, який тестується, та його версія (можливо вказувати декілька
версій, які використовувались під час тестування).
132
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
9. ФІНАЛЬНІ ДІЇ У ПРОЦЕСІ ТЕСТУВАННЯ
Недостатня кількість часу, яка витрачена на фінальні дії, так само зменшує
ймовірність того, що набутий вже досвід і знання будуть використані в повному
обсязі для поліпшення процесу.
• Щоденний звіт про роботу (Daily Progress Report) – містить інформацію про
роботу, яка була зроблена, а точніше про виконання тестів тестувальником або
командою протягом дня.
Питання до заняття:
133
1. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ
Зазвичай розробка програмного забезпечення не відбувається без використання
якоїсь системи контролю версій. Даний підхід може застосовуватися або не
застосовуватися на окремих проєктах. Це залежить від специфіки системи, яка
розробляється, а також багатьох інших факторів, головними з яких є наявність
необхідних навичок та ресурсів, а також необхідність забезпечення якості системи,
яка розробляється.
134
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
10. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ ТЕСТУВАННЯ
• Економія коштів: знижує ризик втрат від ротації кадрів у організації, надає
можливість змінити організацію-розробника без перепроєктування
• Якість
• Ідентифікація конфігурації
• Контроль конфігурації: контроль над змінами матеріалів
• Облік поточного стану: стан документів, стан коду, стан окремих завдань та
всього проєкту загалом
135
2. МЕТРИКИ ТЕСТУВАННЯ
136
МЕТРИКИ ДЕФЕКТІВ
💡 Приклад 1
Припустимо, ми маємо ситуацію, коли кількість повторно відкритих після
виправлення дефектів не зменшується або навіть збільшується. Це сигнал тощо,
що необхідно провести аналіз причин, оскільки схожа ситуація може показати,
що:
• вимоги до функціоналу можна трактувати по-різному
• тестувальник не точно описав проблему
• неякісне поверхневе вирішення проблеми (виправлення дефекту)
137
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
10. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ ТЕСТУВАННЯ
💡 Приклад 2
Цей приклад продемонструє, для чого необхідна метрика "Rejected/Opened Bugs":
Ми спостерігаємо, що процент відхилених (Rejected) багів дуже великий. Це може
означати:
• вимоги до функціоналу можна трактувати по-різному
• тестувальник не точно описав проблему
• розробник не бажає виправляти допущену помилку або не вважає це
помилкою.
МЕТРИКИ ЗАВДАНЬ
138
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
10. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ ТЕСТУВАННЯ
3. РИЗИКИ В ТЕСТУВАННІ
Ризики проєкту
Ризики проєкту – це ризики, які впливають на здатність проєкту досягнути його
цілей, та містять:
Організаційні фактори:
• Нестачу кваліфікації, підготовки та співробітників;
• Особисті проблеми співробітників;
• Політичні проблеми, такі як:
139
𝑁
𝐸
𝑡
𝑁
𝑁
𝑡
𝑡
𝑁
𝑁
𝑒
𝑒
Технічні проблеми:
• Проблеми у визначенні правильних вимог;
• Вчасно не готове тестове середовище;
• Пізнє перетворення даних, планування міграції та розробки тестових даних
та засобів перетворення/міграції тестових даних;
• Низька якість проєктування, коду, конфігураційних та тестових даних та
тестів;
Проблема постачальника:
• Відмова третьої сторони;
• Проблеми контракту.
Під час аналізу, управління та зменшенні цих ризиків тест менеджер повинен
слідувати добре обґрунтованим принципам управління проєктом.
Ризики продукту
Ризики продукту – це потенційні області збою (неблагонадійні майбутні події або
небезпека) у ПЗ або системі, оскільки вони ризикують якістю продукту,
наприклад:
• Поставка потенційно ненадійного ПЗ;
• Ймовірність того, що програмне/апаратне забезпечення може нашкодити
людині або компанії;
• Погані характеристики ПЗ (наприклад, функціональність, надійність,
зручність використання або продуктивність);
• Неповнота та низька якість даних (наприклад, проблеми міграції,
перетворення та переміщення даних, відхилення від стандарту даних); ПЗ,
яке не виконує передбачених функцій.
140
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
10. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ ТЕСТУВАННЯ
141
Питання до заняття:
Тестування верстки
https://www.youtube.com/watch?v=GfPmWGU0vI0 Scan and watch
142
IT GLOSSARY
IT GLOSSARY
Item Description
Approve підтвердження відповідальним співробітником певного питання,
документа, процедури і т.д. У тестуванні це може бути апрув кейсів
бізнес-аналітиком
Authentication процедура перевірки автентичності, наприклад, ідентифікація
користувача шляхом порівняння введеного ним пароля з паролем,
який збережений у базі даних користувачів
Authorization надання певній особі чи групі осіб прав на виконання певних дій; а
також процес перевірки (підтвердження) даних прав під час спроби
виконання цих дій
BackUp процес створення резервної копії продукту, програми і т.д.
Build готовий для тестування програмний продукт
Checkout вилучення існуючої версії коду для роботи з нею локально (приклад:
прийшов новий розробник у команду)
Commit внесення змін у спільний бранч проєкту (гілку коду), для того, щоб у
майбутньому цей код був протестований
Compare порівняння даних, коду і т. д. з метою визначення різниці
Compile перетворення програмного коду в машинно-орієнтовану мову
Deadline дата, до якої певні активності повинні бути завершені
Debug відтворення крок за кроком дій для того, щоб перевірити, що
повертає функція, ділянки коду (і в цілому розібратися, як працює код)
Demo демонстрація замовнику, менеджменту проєкту, команді, реалізованої
функціональності
Deployment процес постачання оновленої версії продукту (приклад з версії 1.0 до
1.1), який включає виправлені дефекти і/або новий функціонал
E2E виконання тестового сценарію від самого початку і до кінця (приклад:
вхід у додаток, створення звіту, редагування, експорт, вихід з додатку)
Escalate підняття певного питання на рівні вище (керівника відділу, тімліду,
проджект менеджера), використовується у випадку, якщо проблема
або питання виходять за рамки вашої компетенції
Evidence доказ того, що дії були дійсно виконані (тест кейс був протестований)
Execute виконання певної команди (наприклад, в SQL)
Feature сленгове визначення функції, програмної можливості (іншими
словами – фішка, також може застосовуватися для бага, який описує
нову поведінку ПЗ, яке немає необхідності виправляти, тому що
замовник згоден з даною поведінкою ПЗ)
Log le (logs) файл, у якому записуються дані про виконання певних дій
(використовується для визначення причин дефекту)
Merge злиття існуючого коду (гілки коду) з новою
143
fi
IT GLOSSARY
IT GLOSSARY
Item Description
Work ow опис процесу, дії від початку до кінця, або окремої незалежної функції
144
fl
f
Mодуль IV. ЗАВЕРШЕННЯ ПРОЦЕСУТЕСТУВАННЯ ТА ЗВІТНІСТЬ
10. КОНФІГУРАЦІЙНИЙ МЕНЕДЖМЕНТ, РИЗИКИ ТА МЕТРИКИ ТЕСТУВАННЯ
145