3.96M
Категория: ПрограммированиеПрограммирование

Тестирование. Part III

1.

BY PETROV S.V.
Организация
тестирования
Press F

2.

Жизненный цикл тестирования
Жизненный цикл тестирования
состоит
из
нескольких
ключевых
этапов,
которые
обеспечивают систематический
подход к проверке качества
программного обеспечения.

3.

Этапы жизненного цикла
1. Анализ требований: детальное изучение требований к проекту для
того, чтобы тестировщики понимали, что должно быть протестировано.
Важно убедиться, что требования понятны, полны и реализуемы.
Обычно на этом этапе участвуют аналитики и тестировщики, которые
разрабатывают вопросы к функциональным и нефункциональным
требованиям, а также выявляют потенциальные зоны риска.

4.

Этапы жизненного цикла
2. Планирование тестирования: здесь составляется детальный план,
определяющий стратегию и подход к тестированию. Разрабатываются такие
документы, как тест-план, в котором указаны цели, приоритеты, объем и
методы тестирования.
Также определяются ресурсы, временные рамки и инструменты, которые
будут использоваться, а также распределяются роли и обязанности среди
членов команды.

5.

Этапы жизненного цикла
3. Планирование тестирования: на данном этапе тестировщики
составляют конкретные сценарии для тестирования различных
функциональностей продукта. В каждом сценарии описываются входные
данные, ожидаемые результаты и критерии успешности.
Тест-кейсы должны быть хорошо документированы и охватывать как
положительные, так и отрицательные сценарии. Этот этап помогает
структурировать процесс тестирования и гарантирует, что ни одна область
продукта не останется без проверки.

6.

Этапы жизненного цикла
4. Планирование тестирования: этот этап включает подготовку
инфраструктуры, на которой будут проводиться тесты, например, настройку
серверов, баз данных, конфигурацию операционных систем и установку
необходимых приложений.
Важно, чтобы среда тестирования соответствовала условиям реальной
среды, чтобы результаты тестирования были достоверными.

7.

Этапы жизненного цикла
5. Выполнение тестирования: в этом этапе тестировщики запускают тесткейсы и фиксируют результаты. В процессе выполнения фиксируются все
обнаруженные дефекты и сравниваются с ожидаемыми результатами.
Тестирование может быть ручным или автоматизированным, в зависимости
от типа тестов и требований проекта. На этом этапе также начинается
исправление ошибок, после чего тесты повторяются.

8.

Этапы жизненного цикла
6. Отчетность и анализ результатов: после выполнения всех тестов
команда анализирует полученные результаты, чтобы оценить, насколько
продукт соответствует требованиям. Создается отчет о результатах,
который включает найденные ошибки, их приоритетность, статус
исправления и основные метрики тестирования.
Этот этап позволяет выявить области, требующие доработки, и принять
решение о готовности продукта к выпуску.

9.

Этапы жизненного цикла
7. Отчетность и анализ результатов: когда все запланированные тесты
пройдены и все критичные дефекты устранены, проводится завершение
процесса тестирования. Создается финальный отчет, содержащий ключевые
выводы, и проводится ретроспектива, где обсуждаются проблемы и успехи
проекта.
Итоги тестирования помогают оптимизировать последующие процессы и
улучшают качество дальнейших проектов.

10.

Планирование тестирования
Планирование тестирования — важнейший этап
в организации процесса, так как именно здесь
определяется, что и как будет тестироваться.
Основные цели планирования включают выбор
оптимальной стратегии, разработку документов
и определение всех аспектов будущего
тестирования.

11.

Зачем планировать? Давай так жахнем!
Определение стратегии. На этапе планирования выбираются методы,
инструменты и подходы, которые будут использоваться. Например, будет ли
проект тестироваться вручную, автоматизированно или комбинированным
способом, какие виды тестирования необходимо провести.
Управление рисками. Планирование позволяет выявить потенциальные
риски и разработать меры для их минимизации.
Оптимизация ресурсов и затрат. Подробный план помогает точно рассчитать
затраты времени и ресурсов, что позволяет более эффективно управлять
бюджетом и выделить нужное количество сотрудников для выполнения
тестов.

12.

Основные документы для тестирования
• Тест-план. Это основной документ, определяющий стратегию и подходы к
тестированию, его объем и цели. Тест-план включает описание всех
аспектов тестирования: типы тестов, инструменты, критерии завершения
тестирования, риски, ограничения и распределение обязанностей среди
членов команды.
• Чек-листы. Чек-лист — это упрощенный перечень действий и условий,
которые нужно проверить, чтобы убедиться в правильной работе
функционала. Чек-листы помогают не упустить ни одного аспекта
тестирования, особенно при проверке базовых требований или
повторяющихся задач. Они позволяют проводить тестирование быстро и
эффективно, не погружаясь в детали.

13.

Основные документы для тестирования
• Тест-кейсы. Тест-кейс — это детальный сценарий для тестирования
конкретного функционала. являются основой для повторяемого и
систематичного тестирования и помогают команде фиксировать
результаты, легко идентифицировать ошибки и вносить правки по мере
необходимости. Каждый тест-кейс включает:
• цель тестирования, то есть, что конкретно проверяется (например,
вход в систему, добавление товара в корзину);
• входные данные и шаги (то, что пользователь или тестировщик должен
выполнить в системе);
• ожидаемый результат (описание того, как система должна отреагировать
на действия пользователя).

14.

Итоги этапа планирования тестирования
Этап планирования завершает создание
четкого,
структурированного
плана
действий, который станет ориентиром для
всех участников тестирования. Документы,
составленные на этом этапе, позволяют
эффективно управлять процессом, снижать
риск ошибок и ускорять процесс выявления
и устранения дефектов, что делает
планирование обязательным элементом
организации тестирования.

15.

Определение требований и критериев качества
Этап определения требований и критериев качества является основой для
успешного тестирования, так как от четкости и понятности требований
зависит эффективность проверки функциональности продукта. На этом
этапе команда тестировщиков работает в тесном сотрудничестве с
аналитиками, разработчиками и другими заинтересованными сторонами
для того, чтобы формулировать точные критерии, которые должен
удовлетворять продукт.

16.

Определение требований к тестированию
• Функциональные требования. Описывают конкретные функции, которые продукт
должен выполнять. Например, в e-commerce проекте функциональные требования
могут включать возможность добавления товара в корзину, оформление заказа и
обработку платежей.
• Нефункциональные требования. Указывают, как продукт должен выполнять свои
функции, и включают требования к производительности, удобству использования,
безопасности и совместимости. Например, продукт может быть должен
обрабатывать 1000 запросов в минуту или обеспечивать надежность работы на
различных браузерах.
• Бизнес-требования. Представляют ожидания и цели заказчика. Бизнес-требования
являются более высокоуровневыми и определяют ценность, которую продукт
должен принести бизнесу. Например, увеличить конверсию пользователей на 20%
за первый год.

17.

Создание критериев качества
• Критерии приемлемости. Это основные параметры, на основании которых
принимается решение о готовности продукта к релизу. Критерии приемлемости
позволяют определить, готов ли продукт к использованию. Например, отсутствие
критических дефектов, 95% успешного выполнения всех тестов и полное покрытие
функциональных требований.
• Критерии успешности тестирования. Определяют, что конкретный тест или тесткейс успешно пройден. Например, для функции регистрации критерием успешности
будет отображение сообщения об успешной регистрации после ввода корректных
данных.
• Пороговые значения для нефункциональных показателей. Это показатели
производительности, безопасности, совместимости и других характеристик
продукта, которые проверяются на соответствие минимально допустимым
значениям. Например, критерии для производительности могут включать
максимальное время ответа сервера или количество одновременных пользователей.

18.

Важность определения критериев качества
• Избежание недопонимания. Четко сформулированные требования и критерии
позволяют тестировщикам, разработчикам и заказчикам иметь единое
представление о том, что считается успешной реализацией продукта.
• Минимизация рисков. Качественно сформулированные критерии позволяют
выявить недочеты на ранних этапах тестирования, что снижает риск критических
ошибок на финальной стадии.
• Оценка готовности к релизу. Критерии качества дают возможность объективно
оценить, готов ли продукт к выпуску или он нуждается в доработке.

19.

Основы разработки тест-кейсов: структура,
критерии, сценарии.
Тест-кейсы позволяют детально
описать шаги и условия, при
которых должна быть проверена
функциональность
продукта.
Тест-кейсы помогают не упустить
ни
одной
важной
детали,
обеспечивают
повторяемость
тестирования и облегчают поиск
и исправление дефектов.

20.

Структура тест-кейса
• Идентификатор. Уникальный номер или код тест-кейса, который позволяет
легко ссылаться на него и упрощает его поиск. Например, "TC-001".
• Название. Краткое описание того, что проверяется в тест-кейсе. Название
должно быть понятным и отображать суть теста, например, "Проверка
авторизации с верными данными".
• Предусловия (Preconditions). Условия, которые должны быть выполнены перед
началом теста. Например, "Пользователь зарегистрирован и находится на
странице входа". Эти условия гарантируют, что тест-кейс начнется с правильного
состояния системы.
• Шаги выполнения (Steps). Подробное описание каждого действия, которое
тестировщик должен выполнить. Шаги должны быть изложены по порядку,
чтобы избежать путаницы.

21.

Структура тест-кейса
• Ожидаемый результат (Expected Result). Описание того, что должно произойти
после выполнения каждого шага. Ожидаемый результат помогает понять, прошел
ли тест успешно. Например, "Пользователь видит приветственное сообщение на
главной странице".
• Фактический результат (Actual Result). Заполняется после выполнения теста.
Здесь фиксируется фактическое поведение системы, что помогает сравнить с
ожидаемым результатом. Если тест не прошел, фактический результат позволяет
понять, где возникла ошибка.
• Статус теста. Итоговая отметка, которая указывает, был ли тест-кейс успешен
(Pass) или провален (Fail). Это помогает следить за прогрессом тестирования.
• Примечания. Дополнительная информация, которая может помочь при анализе
тест-кейса. Например, уточнения по версии браузера, операционной системы или
описания ошибок.

22.

Критерии для разработки качественных тест-кейсов
• Полнота и четкость. Каждый тест-кейс должен содержать всю необходимую информацию
для выполнения теста. Структура и описание должны быть достаточно полными, чтобы
любой тестировщик мог его выполнить без дополнительных пояснений.
• Повторяемость. Тест-кейс должен быть составлен так, чтобы его можно было повторить
на разных этапах разработки и тестирования, получая одинаковые результаты при
одинаковых условиях.
• Однозначность. Формулировки должны быть ясными и исключать возможность
неправильного толкования. Слова и термины должны быть точными и однозначными,
чтобы не возникло разночтений.
• Изолированность. Тест-кейсы должны быть независимыми друг от друга, чтобы их можно
было выполнять отдельно. Это упрощает тестирование и ускоряет процесс, так как
тестировщику не нужно выполнять связанные тесты.
• Актуальность. Тест-кейсы должны обновляться по мере изменения функционала
продукта. Если продукт модифицируется, важно актуализировать тест-кейсы, чтобы они
соответствовали новым требованиям.

23.

Виды тест-кейсов
• Позитивные сценарии. Эти тест-кейсы проверяют, что система работает корректно при
введении корректных данных. Например, успешный вход в систему с правильным логином
и паролем.
• Негативные сценарии. Проверяют систему на устойчивость к некорректным данным и
действиям пользователя, например, введение неверного логина или пароля, использование
спецсимволов вместо цифр.
• Пограничные значения. Эти тест-кейсы проверяют систему на поведение при крайних
значениях, например, ввод пароля длиной в минимально и максимально допустимое число
символов.
• Регрессионные тесты. Проверяют, что изменения в одной части системы не повлияли на
корректную работу других частей. Эти тест-кейсы помогают избежать неожиданных сбоев
при внесении новых функций или исправлении багов.
• Интеграционные тесты. Тест-кейсы, проверяющие взаимодействие между различными
модулями системы, особенно когда функции зависят от нескольких компонентов.

24.

Инструменты для тестирования
Существует несколько категорий инструментов, которые охватывают
различные этапы и аспекты тестирования:
Инструменты для автоматизации тестирования
• Предназначены для автоматизации тест-кейсов, что сокращает
время на тестирование и обеспечивает повторяемость. Используются
для регулярного запуска тестов, особенно в рамках регрессионного
тестирования.
• Примеры: Selenium (для веб-приложений), Appium (для мобильных
приложений), JUnit (для тестирования Java-приложений), Robot
Framework.

25.

Инструменты для тестирования
Инструменты для тестирования производительности
• Помогают оценить, насколько система справляется с нагрузкой и
масштабируемостью. Такие инструменты полезны для определения скорости,
стабильности и других нефункциональных характеристик продукта.
• Примеры: JMeter (для веб-приложений и API), LoadRunner (для комплексных
нагрузочных тестов), Gatling.
Инструменты для тест-менеджмента
• Эти инструменты помогают управлять тестовыми сценариями, планировать
тесты, хранить и анализировать результаты. Они упрощают процесс
организации тестирования и позволяют легко отслеживать прогресс и
метрики.
• Примеры: TestRail, HP ALM (Application Lifecycle Management), Zephyr.

26.

Инструменты для тестирования
Инструменты для отслеживания багов (дефектов)
• Способствуют быстрому обнаружению, фиксации и управлению ошибками.
Они упрощают процесс работы с дефектами, позволяют легко
коммуницировать внутри команды и контролировать статус исправления
багов.
• Примеры: JIRA, Bugzilla, Redmine, YouTrack.
Инструменты для тестирования безопасности
• Помогают проверить продукт на уязвимости и защищенность от внешних
атак. Такие инструменты анализируют безопасность системы, выявляя
потенциальные слабые места, которые могут быть использованы
злоумышленниками.
• Примеры: OWASP ZAP, Burp Suite, Nessus.

27.

Инструменты для тестирования
Инструменты для управления тестовыми данными
• Позволяют эффективно управлять данными, используемыми в тестировании.
Это важно, когда тесты требуют больших объемов данных или
конфиденциальных данных, которые нужно анонимизировать.
• Примеры: Informatica, Delphix, IBM Optim.

28.

Примеры
• Selenium — один из самых популярных инструментов для автоматизации
тестирования веб-приложений. Он поддерживает различные браузеры и языки
программирования
(Python,
Java,
C#,
Ruby).
Selenium
позволяет
автоматизировать пользовательские действия, проверяя корректность работы
веб-интерфейсов. Этот инструмент позволяет писать тесты для интерфейсов и
интеграций, что полезно для регрессионного и функционального тестирования.
• Apache JMeter — инструмент для тестирования производительности, который
симулирует нагрузку на сервер, приложение или сеть. С его помощью можно
проверять производительность и масштабируемость системы при различных
уровнях нагрузки. JMeter поддерживает тестирование веб-приложений и API,
работает с различными протоколами (HTTP, FTP, JDBC) и позволяет
анализировать поведение системы при высокой нагрузке.

29.

Примеры
• TestRail — система для управления тестовыми сценариями и отчетностью. Она
предоставляет интерфейс для создания и управления тест-кейсами, а также
инструмент для отслеживания прогресса тестирования. TestRail интегрируется с
другими системами, такими как JIRA, и помогает организовать процесс
тестирования, повышая прозрачность и удобство для всех членов команды.
• JIRA — система для управления проектами и отслеживания багов. Она позволяет
не только регистрировать и управлять дефектами, но и планировать спринты,
распределять задачи между участниками и отслеживать прогресс. JIRA часто
используется для управления задачами в Agile-проектах и интегрируется с
различными инструментами для тестирования и CI/CD.

30.

Примеры
• OWASP ZAP — инструмент для
анализа
безопасности
вебприложений.
Он
помогает
выявлять уязвимости, такие как
SQL-инъекции,
XSS,
неправильная
настройка
безопасности и другие риски.
OWASP ZAP подходит для ручного
и
автоматизированного
тестирования безопасности, что
делает его полезным на всех
этапах разработки.

31.

Автоматизация тестирования
• Определение областей автоматизации. На этом этапе решается, какие тесты
нужно автоматизировать. Например, автоматизировать можно рутинные или
критически важные тесты, которые регулярно используются (регрессионное
тестирование). Часто автоматизируются юнит-тесты и тесты, выполняемые при
каждом обновлении.
• Выбор инструментов. Инструменты выбираются исходя из задач проекта,
особенностей тестируемой системы и компетенций команды. Например, для вебприложений часто выбирают Selenium, а для мобильных приложений — Appium.
• Подготовка среды. Создаются все необходимые тестовые данные, конфигурации
и
окружение
для
выполнения
автоматизированных
тестов.
Также
устанавливаются инструменты и обеспечивается возможность интеграции с
другими компонентами CI/CD (Continuous Integration / Continuous Delivery).

32.

Автоматизация тестирования
• Разработка тестов. На этом этапе создаются тестовые скрипты в соответствии с
разработанными тест-кейсами. Скрипты должны быть написаны так, чтобы их
можно было легко адаптировать к изменениям системы.
• Запуск и анализ. После разработки тестов их запускают на тестовой среде.
Инструменты для автоматизации позволяют проводить параллельные запуски,
что ускоряет процесс тестирования. После выполнения тестов собираются и
анализируются результаты. Это помогает найти и исправить дефекты до выпуска
продукта.
• Поддержка тестов. Поддержка автоматизированных тестов важна, так как
изменения в продукте требуют адаптации существующих тестов. Поддержка
включает в себя обновление тестов при изменениях требований, исправление и
оптимизацию тестовых скриптов.

33.

Анализ результатов тестирования
• Сбор данных и подготовка отчетов;
• Классификация и приоритизация дефектов;
• Анализ причин возникновения дефектов;
• Подведение итогов выполнения тестов;
• Разработка рекомендаций.

34.

Подведение итогов выполнения тестов
• Покрытие тестами. Определяется, какие области системы были
протестированы, и были ли учтены все критические функции.
• Уровень ошибок. Оценивается количество и типы дефектов, что
позволяет понять стабильность продукта.
• Риски. Оценка рисков, связанных с выпуском, основывается на тяжести и
количестве выявленных дефектов.

35.

Метрики для анализа результатов тестирования
• Процент успешных тестов: показывает долю тестов, пройденных успешно. Чем
выше этот показатель, тем более стабильной считается система.
• Количество дефектов по приоритетам: помогает понять, насколько серьезные
проблемы были обнаружены и какие из них нужно решить в первую очередь.
• Время выполнения тестов: позволяет оценить эффективность и
продолжительность тестирования, выявить долгие или неэффективные тесты.
• Покрытие кода тестами: показывает, какой процент кода был протестирован, и
помогает понять, насколько полно тестирование охватывает функциональность
продукта.
• Среднее время на исправление дефектов: показывает, сколько времени
занимает исправление ошибок, и может указывать на эффективность команды в
устранении проблем.

36.

Типичные ошибки
• Недостаток планирования и чёткой стратегии тестирования:
Ошибка: отсутствие четкого плана тестирования может привести к дублированию
тестов, пропущенным важным областям, недостаточному охвату требований и
неэффективному использованию ресурсов.
Как избежать:
• Разработайте подробный план тестирования, включающий цели, критерии
завершения, необходимые ресурсы, сроки и распределение задач.
• Определите методологию и подходы для каждого типа тестов (ручные,
автоматизированные, регрессионные и т.д.), что поможет избежать путаницы и
оптимизировать процесс.
• Регулярно пересматривайте и корректируйте план по мере изменений в
проекте, чтобы стратегия тестирования всегда соответствовала текущим
требованиям.

37.

Типичные ошибки
• Недостаточное тестовое покрытие требований
Ошибка: пропуск важной функциональности, критичных сценариев или исключений
приводит к недостаточному покрытию тестами и увеличивает риск того, что
значимые дефекты останутся незамеченными.
Как избежать:
• Создавайте тест-кейсы, опираясь на анализ требований. Важно проверять
каждую функциональность и не пропускать негативные сценарии и углы, где
могут скрываться дефекты.
• Используйте техники покрытия требований, такие как анализ эквивалентных
классов, граничные значения и комбинаторное тестирование, чтобы покрыть
все возможные сценарии.
• Применяйте покрытие кода тестами в автоматизированных тестах для оценки
уровня покрытия и выявления областей, требующих дополнительного
тестирования.

38.

Типичные ошибки
• Неоптимальная автоматизация тестирования
Ошибка: Автоматизация тестов без четкого понимания целей и приоритетов
приводит к дублированию тестов, завышенным затратам и трудоемкому
обслуживанию.
Как избежать:
• Выберите для автоматизации рутинные, стабильные и регрессионные тесты,
которые часто повторяются и подходят для автоматизации, оставляя редкие или
нестабильные тесты для ручного выполнения.
• Создайте архитектуру автотестов, которая легко масштабируется и
поддерживается. Это поможет избежать сложностей при добавлении новых
тестов или изменении старых.
• Оцените рентабельность автоматизации: автоматизируйте тесты только при
достаточном объеме повторений или ожидаемой экономии времени.

39.

Совет дня
Избежать типичных ошибок в процессе
тестирования
позволяет
грамотное
планирование, системный подход к анализу
рисков,
документирование,
а
также
постоянное
улучшение
процессов.
Внедрение правильных практик контроля
качества и управления дефектами поможет
создать эффективную, надежную систему
тестирования, что в конечном итоге
повысит
качество
продукта
и
удовлетворенность пользователей.

40.

Выводы
• Четко определите цели и стратегию тестирования;
• Планируйте тестирование на ранних этапах;
• Покрывайте по возможности все уровни тестирования;
• Оптимизируйте автоматизацию;
• Используйте метрики для оценки качества и управления процессом;
• Фокусируйтесь на критических зонах и управлении рисками;
• Документируйте и систематизируйте тест-кейсы и результаты тестирования.
English     Русский Правила