Навіщо вивчати тестування ПЗ (QA - quality assurance)?
Тестування програмного забезпечення - процес дослідження та випробування програмного продукту, що має дві різні цілі:
- продемонструвати розробникам та замовникам, що програма відповідає технічним вимогам.
- виявити ситуації, в яких поведінка програми є неправильною, небажаною або не відповідною специфікації.
Без роботи спеціаліста з тестування (QA Engineer) неможливий випуск жодного програмного продукту.
Програма курсу QA Manual (Тестування ПЗ)
Знайомство з тестуванням
- Знайомство з групою. Опис структури курсу. План курсу. Знайомство з Google Class.
- Що таке тестування?
- Що таке якість?
- Помилка, дефект та збій.
- Як знайти баг? Джерела очікуваного результату.
- QA, QC, тестування, поняття верифікації та валідації.
- Цілі, задачі, принципи та етапи тестування.
- Стандарти, що відповідають за тестування.
Життєвий цикл ПЗ. Методології розробки ПЗ. І трохи корисної інформації про сферу інформаційних технологій.
- Види IT компаній.
- Професії у сфері IT.
- Ієрархія рівнів фахівців.
- Що таке проєкт і хто є його учасником? Що таке портфель проєктів та програма проєктів?
- Потрійна обмеженість.
- Як розставляти пріоритети при тестуванні?
- Як розрахувати час на написання та виконання тестів? Ризики позитивні та негативні.
- Життєвий цикл програмного забезпечення.
- Моделі життєвого циклу ПЗ.
- Каскадна модель.
- V-модель.
- Інкрементальна модель.
- Ітеративна модель.
- Спіральна модель.
- Agile (Scrum, Kanban, XP).
- Види контрактів в IT.
Тестування вимог та документації
- Бізнес вимоги.
- Вимоги користувачів (Use Case, User Story, що таке Epic).
- Функціональні вимоги.
- Нефункціональні вимоги.
- Системні вимоги.
- Бізнес правила.
- Acceptance Criteria.
- Definition of Done.
- Definition of Ready.
- Характеристики якісних вимог.
- Специфікація та технічне завдання, в чому різниця.
- Guidlines та Brandbook.
- Погана та хороша специфікація (чи завжди вона має бути хороша).
- Матриця трасування.
- Методи збору вимог.
- Графічне представлення вимог.
- Як правильно оформити повідомлення про помилку.
Класифікація видів тестування та рівні тестування
- Функціональні види тестування.
- Нефункціональні види тестування.
- Тестування пов'язане зі змінами.
- Рівні тестування.
- Тестування локалізації.
- Класифікація по об'єкту тестування.
- Класифікація за знанням системи.
- Класифікація за ступенем автоматизації.
- Класифікація за ступенем ізольованості компонентів.
- Класифікація за часом проведення тестування.
- Класифікація за ознакою позитивності сценаріїв.
- Класифікація за рівнем підготовленості до тестування.
- Статичне та динамічне тестування.
- A/B тестування.
- Тестування доступності.
- Дослідницьке тестування.
- Випробування на основі ризиків.
Життєвий цикл бага
- Поняття статусів та резолюцій.
- Оформлення повідомлення про помилку у Jira.
- Тестове оточення. Чисте та брудне. Також розберемось, яке краще використовувати.
- Інструменти для зняття логів.
Техніки тест дизайну
- Тестове покриття.
- Еквівалентний поділ.
- Аналіз граничних значень.
- Тестування станів та переходів.
- Створення тестів на основі варіантів використання.
- Таблиці прийняття рішень.
- Попарне тестування.
- Дерево рішень.
- Припущення про помилку.
- Структурні критерії.
Тестова документація
- Види тестової документації.
- План тестування.
- Рекомендації з написання плану тестування.
- Чи можна обійтись без плану тестування?
- Рецензія та затвердження плану тестування.
- Тестові сценарії (test case). Тест комплекти.
- Поля тестового сценарію.
- Приклади тест кейсів.
- Деталізація тест кейсів.
- Чек-лист.
- Що краще використовувати чек-лист чи тест кейси?
Особливості тестування Web-додатків
- Що таке сайт і що таке веб додаток, у чому різниця?
- Які типи веб додатків бувають?
- Як працює веб додаток?
- Що таке клієнт, сервер, хостинг та хмара?
- Як відбувається передача даних? І які є протоколи передачі?
- З чого складається URL?
- З чого складається HTTP запит та відповідь?
- Що таке база даних? Де знаходяться БД та СУБД?
- Поняття front-end. Що таке HTML, знайомство з основними тегами, що таке CSS та JS і як вони працюють. Що таке back-end і як це все разом працює.
- Формати передачі даних JSON та XML.
- Що таке AJAX і навіщо він потрібен?
- Що таке веб сокети?
- Що таке cache та cookies? Навіщо їх треба видаляти?
- Механізми ідентифікації, аутентифікації та авторизації.
- Система керування контентом. Що це і навіщо вони потрібні?
- Що таке API і як воно працює?
- Тестування баз даних (CRUD та ACID).
- Знайомство з SQL.
- На що треба звертати увагу при тестуванні веб додатків?
- Елементи вебінтерфейсу.
- Консолі розробника і як їх використовувати для тестування?
- Поняття адаптивного та респонсивного дизайну, як його тестувати?
- Тестування SEO.
Особливості тестування мобільних додатків
- Що таке мобільний додаток і які вони бувають?
- Мобільні платформи та операційні системи.
- Елементи інтерфейсу мобільних додатків.
- Жести у мобільних додатках.
- На що треба звертати увагу при тестуванні мобільних додатків?
- Кросплатформна сумісність.
- Guidlines магазинів.
- Тестування ресурсів, що використовує програма. Витоки пам'яті.
- Статичне тестування білда мобільного додатка.
- Формат файлів збірок програм (iOS, Android, Amazon). Особливості, обмеження магазинів. Специфіка роботи з ними.
- Android manifest, info plist — що там є і як тестувати.
- Види Provisioning Profile.
Тестова інфраструктура
- Проблеми та складності, пов’язані з тестуванням мобільних додатків.
- Емулятори, симулятори, віртуальні машини.
- Командні рядки Windows, Linux та macOS. Практика з рядком Windows.
- Інструменти для Android, Amazon, iOS.
- Штучний інтелект у мануальному тестуванні.
- Автоматизоване тестування, коли застосовувати, знайомство з інструментами.
- Основи роботи з Postman.
- Корисні інструменти для мануального тестувальника JQL.
- Системи контролю версій. Як їх використовує мануальний тестувальник?
Тестування ігор
- На що звертати увагу при тестуванні гри?
- Ігрова термінологія.
- Види специфічних багів та тестів.
- Елементи ігрового інтерфейсу.
- Види ігрових компаній.
- Професії в ігровій індустрії.
Екзамен
- Тест з теорії.
- Усна співбесіда з ментором.
- Практичне завдання.