Организация процесса тестирования ПО Петренко Ольга QA Team Leader
Немного о себе Донецкий университет интеллекта (кафедра программного обеспечения интеллектуальных систем) Донецкий университет интеллекта (кафедра программного обеспечения интеллектуальных систем) Специалист по тестированию ПО, SoftLine (Киев), 1.5 года Специалист по тестированию ПО, SoftLine (Киев), 1.5 года QA Team Leader, QuartSoft, 1.5 года QA Team Leader, QuartSoft, 1.5 года Skype: petr_olya Skype: petr_olya
Тестирование. Что это? Тестирование программного обеспечения процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта. Баг (bug) это отклонение фактического результата (actual result) от ожидаемого результата (expected result). Т.е. программа не делает то, что должна или делает, что не должна. Кто такой тестер (тестировщик)? Это человек, в профессиональные обязанности которого входит обнаружение, локализация и отслеживание различных ошибок в программе, описание их самих, а также шагов для их воспроизведения. Это специалист, который способен рассматривать проблему с точки зрения пользователя.
Что такое качество ПП Отсутствие «ошибок» (bugs) в продукте? Соответствие требованиям? Пригодность к использованию? Составляющие цены этого самого КАЧЕСТВА? Цена сбоев - затратами на выявление и исправление ошибок и выхода из строя. Цена оценки качества издержки на контроль качества: издержки на тестирование продукта. Цена превентивных усилий затраты на обучение, на проектирование процесса, на планирование качества.
Зачем нужно тестирование? Повысить качество продукта Оценить статус продукта Сократить затраты на разработку Сократить затраты на поддержку выпущенного продукта … Тестирование не повышает качество ПП, но может поспособствовать!
Кому нужно тестирование? Тестировщику? Разработчику –Качественное заведение дефектов –Своевременное заведение дефектов –Предоставление требуемой информации PM –Реальная картина готовности проекта; –Точное планирование; –Приемлемые проекту сроки. Заказчику Требуемое тестовое покрытие –Понимание пользователя, юз-кейзов, приоритетов; –Следование бюджету.
Кому и как помогает тестирование? Помогаем разработчикам исправлять баги (качественное заведение) Помогаем руководству принимать решения (наглядная отчётность) Помогаем бизнесу (не пропуская критичные баги) … Результаты работы тестировщика = помощь другим участникам проекта!
Кто должен тестировать? Разработчик? Заказчик? Пользователи?
Кто должен тестировать? Тестировщик – тестированием должны заниматься специально подготовленные люди!
Почему тестировщик не может отвечать за качество ПО Тестировщик не может обеспечивать качество работы других участников проекта Тестировщик не вносит изменения в код Тестировщик, как правило, не может организационно повлиять на решения об исправлении ошибок Тестировщик не управляет ресурсами проекта Тестировщик не управляет бюджетом проекта И как следствие, тестировщик не отвечает за качество ПО
Кто отвечает за качество? В проекте – менеджер проекта В подразделении разработчиков – руководитель подразделения На уровне компании –первое лицо компании В их руках ресурсы, бюджет, право на принятие решений
QA, QC, Testing Тестирование (TESTING) это «контроль качества» (поиск ошибок и дефектов) Контроль качества (QUALITY CONTROL) – это измерение качества продукта Обеспечение качества (QUALITY ASSURANCE) – это измерение и управление качеством процесса, который используется для создания качества продукта (или качественного продукта).
Виды тестирования
Уровни тестирования Модульное тестирование (Unit testing) позволяет проверить функционирование отдельно взятого элемента системы. Что считать элементом – модулем системы определяется контекстом. Интеграционное тестирование (Integration testing) – процесс проверки взаимодействия между программными компонентами/модулями. Системное тестирование (System testing) Системное тестирование охватывает целиком всю систему.
Функциональное тестирование Функциональное (ручное) тестирование - Основной вид тестирования, направленный на проверку всех требований. Регрессионное тестирование (regression testing) – тестирование, позволяющее убедиться в том, что изменения, внесенные с целью исправления обнаруженных ошибок, не породили новых.
Нефункциональное тестирование Тестирование производительности (performance testing) - тестирование, которое проводится с целью определения, как быстро работает система или её часть под определённой нагрузкой.
Нефункциональное тестирование Нагрузочное тестирование (load testing) – тестирование приложения при больших нагрузках, например, веб-сайта при предельных нагрузках, чтобы определить, при каком количестве подключений система не сможет выполнять свой функционал или будет это делать с недопустимым уровнем производительности.
Тестовые Артефакты План тестирования (Test Plan) - это документ описывающий весь объем работ по тестированию, начиная с описания объекта, стратегии, используемые для его тестирования, методики и необходимые ресурсы, с графиком выполнения запланированных работ, до необходимого в процессе работы оборудования, специальных знаний, а также оценки рисков с вариантами их разрешения.План тестирования (Test Plan) Набор тест кейсов и тестов (Test Case & Test suite) - это последовательность действий, по которой можно проверить соответствует ли тестируемая функция установленным требованиям.Набор тест кейсов и тестов (Test Case & Test suite) Чек лист (Check List) - Чек-лист (он же проверочный список) - это просто список пунктов, которые нужно обязательно проверить, например, перечень всех функций системы. Дефекты / Баг Репорты (Bug Reports / Defects) - это документы, описывающие ситуацию или последовательность действий приведшую к некорректной работе объекта тестирования, с указанием причин и ожидаемого результата.Дефекты / Баг Репорты (Bug Reports / Defects)
Вопросы? Спасибо за внимание!