Тестирование и контроль качества программного обеспечения
Работаете в тестировании? Хотите получить фундамент, необходимый для построения успешной карьеры? Хотите узнать, из чего состоит эта область деятельности, чтобы быстрее стать в ней профессионалом?
Именно для вас – наш курс «Тестирование и контроль качества ПО». С этим курсом вы:
-
Получите широкий кругозор в сфере тестирования;
-
Научитесь основным техникам и познакомитесь с основными инструментами тестирования;
-
Узнаете, как построен процесс тестирования в ведущих компаниях;
-
Создадите план развития на год, чтобы стать успешным тестировщиком.
Рекомендуемая подготовка слушателя
Курс предназначен для специалистов, имеющих начальные знания в сфере IT. Опыт работа в сфере тестирования желателен, но не обязателен.
Программа обучения
1. Введение в тестирование ПО
-
Основные определения тестирования,«что такое тестирование?»
-
Цели и задачи процесса тестирования.
-
Полный цикл тестирования. Фазы тестирования.
-
Когда тестирование полезно, а когда - нет. Определение цены ошибки. График изменения цены ошибки.
-
Различные области тестирования: функционал, производительность, безопасность, нагрузка, надежность, совместимость, юзабилити.
-
Различные способы организации тестирования: зависимое и независимое, валидация и верификация, контроль качества и обеспечение качества.
-
Различные тесты: позитивные, негативные и исследовательские.
-
Стратегии: тесты белого, чёрного и серого ящика.
Практическое задание: придумываем, как тестировать интернет-магазин.
2. Требования (requirements)
-
Зачем тестировщику требования?
-
Определение требования.
-
Характеристики требований.
-
Классификация требований.
-
Требования по уровням детализации.
-
Методы сбора требований.
-
Документирование требований, версионирование, трассируемость.
-
Стандарты документирования требований.
3. Баг-трекинг
-
Жизненный цикл (Workflow) ошибок: каким бывает? Что от него зависит, как подстроиться?
-
Глоссарий баг-трекинга в различных компаниях.
-
Формулирование ошибок: как сделать так, чтобы нас поняли?
-
Идеальное оформление баг-репорта.
-
Критичность и приоритет ошибок.
-
Severity vs. Priority.
-
Инструменты баг-трекинга: Bugzilla, Jira, Redmine.
Практическое задание: регистрируем ошибки в BTS
4. Тест-анализ
-
Что такое тест-анализ, кому и когда он нужен. Как сокращать количество тестовых проверок, увеличивая количество находимых ошибок?
-
Покрытие входных данных. Допустимые и недопустимые данные.
-
Эквивалентное разбиение.
-
Анализ граничных значений.
-
Попарное комбинирование.
-
Предположение ошибок.
-
Учебный проект: составление набора входных данных для тестирования учебной программы.
-
Комбинаторное тестирование (ДП3 и Pairwise).
-
Тестирование состояний и переходов (State & Transition Testing).
Практическое задание: тестируем сайт.
5. Тест-дизайн
-
Когда и каким образом надо документировать тесты?
-
Роли в документировании тестовых наборов.
-
Тест-кейсы и чек-листы: что использовать?
-
Test case: Правила написания, степень детализации, независимость.
-
Эффект пестицида и способы борьбы с ним.
-
Инструментарий для документирования тестов: sitechco, testrail, testlink.
-
Отчет о тестировании.
Практическое задание: пишем тесты для интернет-магазина.
6. Исследовательское тестирование
-
Отличия исследовательского, ad hoc и monkey-testing.
-
Как тестировать продукт, по которому нет документации?
-
Помощники от более опытных: чит-листы и тест-туры.
-
Майнд-мапы как средство хранения схем тестирования.
-
Мнемоники и эвристики исследовательского тестирования.
Практическое задание: тестируем интернет-магазин.
7. Регрессионное тестирование
-
Определение регрессии.
-
Регрессия ошибки (Bug regression).
-
Регрессия старых ошибок (Old bugs regression).
-
Регрессия побочного эффекта (Side effect regression).
-
Организация регрессионного тестирования.
8. Тестирование мобильных приложений
-
В чем сложности тестирования мобильных приложений?
-
Best-practices: получениеобратнойсвязи, Fabric.io: Crashlitycs, Beta, Answers.
9. Нефункциональное тестирование
-
Подготовка к нефункциональному тестированию: что нам важно учесть? Какие особенности продукта?
-
Проведение тестирования надежности.
-
Проведение тестирования юзабилити.
-
Проведение тестирования производительности (нагрузочное, Microsoft Load Testing, Jmeter). Типы нагрузки, симуляция поведения пользователей.
-
Проведение тестирования совместимости и окружений.
-
A/B - тестирование. Что это и какое отношение имеет к тестированию вообще?
Практическое задание: разрабатываем стратегию нефункционального тестирования для сервиса файлового хостинга.
10. Автоматизированное тестирование
-
Модульное тестирование. Драйверы. Заглушки.
-
Интеграционное тестирование. Способы интеграционного тестирования.
-
Системное тестирование.
-
Unit-тестирование: кому и насколько нужно? Драйверы. Заглушки.
-
Идеальное Соотношение Unit-тестов, автотестов интерфейса, и ручных тестов.
-
Метрика покрытия кода.
-
Codeception
-
Системы автоматизированного тестирования: Selenium, HP QC, TestComplete.
Практическое задание: автоматизируем тестирование интернет-магазина с помощью Selenium IDE.
11. Место тестирования в области Обеспечения качества (Quality Assurance)
-
Определения “качество”, “обеспечение качества", "управление качеством", "спираль качества”.
-
Стоимость обеспечения качества.
-
Достаточный уровень тестирования, правило Парето.
-
Запланированное старение, специалисты по параметризации.
-
ISO 9001, TQM, цикл PDCA.
-
ГОСТ 34.
12. Организация процесса тестирования в компании
-
Место тестирования в процессе разработки ПО.
-
Варианты организации процесса разработки в компании и место тестирования в них (Waterfall, Agile, V-Model, Iterative, Incremental, RAD, Spiral, DevOps).
-
Кто круче: программист или тестировщик?
-
Тестирование - общее дело.
-
Метрики тестирования и качества.
-
Подсчет стоимости тестирования: Оценка трудоемкости задач. Эмпирическое правило Брукса. Практические соображения. Метод анализа видов ошибок и их влияния (FMEA).
-
Ручное и автоматизированное тестирование: когда какое использовать? Формула для вычисления необходимости автоматизации тестирования.
-
Скриптовое и исследовательское тестирование: как выбрать и как совмещать?
-
Как выглядит процесс тестирования в различных компаниях ( Гиганты: Google и Microsoft, Стартапы: маленькие начинающие проекты, Аутсорсинговые компании).
-
Разработка, управляемая поведением (TDD, BDD).
-
Приемочное тестирование.
-
Организация тестовых сессий.
-
Организация получения автоматической обратной связи.
-
Построение инфраструктуры для обеспечения качества (ландшафт (dev-test-stage-prod), CI, Bugtracker).
-
Сохранение знаний по проекту.
-
Работа с техническим долгом.
Практическое задание: разрабатываем процесс тестирования своей мечты.
13. Построение карьеры в сфере тестирования
-
Почему уметь тестировать это круто? (ответ: эти знания всегда востребованы и практически не устаревают)
-
Почему тестировщики недооценены? (но приходит DevOps).
-
Какие бывают возможности роста в сфере тестирования?
-
Что требуется от тестировщиков разных уровней?
-
Чему важнее всего учиться?
-
Удовольствие от тестирования: от чего зависит? Как увеличить?
-
Как получить необходимый опыт для первого места работы?
-
Как тестировщику развиваться в любом проекте у любого работодателя.
-
Правила написания «правильного» резюме.
Практическое задание: делаем идеальное резюме и создаём план саморазвития на год.
14. Подведение итогов
-
Финальный экзаменационный тест по всему курсу (30 вопросов).
-
Дискуссия: чему мы научились за это время?
-
Как это использовать?
-
Для закрепления и развития: что смотреть/слушать/читать.
-
Какие есть конференции по теме тестирования.
-
Варианты сертификации в области тестирования - ISTQB, CSTE.
Продолжительность обучения
-
учебная программа: 72 часа;
-
продолжительность обучения: 2 месяца.
Форма обучения
Выдаваемые документы
-
удостоверение о повышении квалификации ведущего государственного технического вуза.