Зачем нужно тестирование ПО (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). Тестовые комплекты.
- Поля тестового сценария.
- Примеры тест кейсов.
- Детализация тест кейсов.
- Чек-лист.
- Что лучше использовать: чек-лист или тест кейсы?
Особенности тестирования веб-приложений
- Что такое сайт и что такое веб-приложение, в чем разница?
- Какие типы веб-приложений бывают?
- Как работает веб-приложение?
- Что такое клиент, сервер, хостинг и облако?
- Как происходит передача данных? Какие протоколы передачи существуют?
- Из чего состоит 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.
- Системы контроля версий. Как их использует мануальный тестировщик?
Тестирование игр
- На что обращать внимание при тестировании игры?
- Игровая терминология.
- Виды специфических багов и тестов.
- Элементы игрового интерфейса.
- Виды игровых компаний.
- Профессии в игровой индустрии.
Экзамен
- Тест по теории.
- Устное собеседование с ментором.
- Практическое задание.