Уровни тестирования Инна Исаева. Классификация видов тестирования По объекту тестирования: Функциональное тестирование (functional testing) Тестирование.

Презентация:



Advertisements
Похожие презентации
Виды и методы тестирования на разных стадиях разработки ПО.
Advertisements

Виды и методы тестирования на разных стадиях разработки ПО.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
Организация процесса тестирования в Agile команде с помощью квадрантов тестирования.
24 декабря 2009 года Ознакомительный семинар. План Что такое тестирование? Роль тестировщика в проекте Обязанности тестировщика Инструменты Литература.
Организация процесса тестирования ПО Петренко Ольга QA Team Leader.
Виды и методы тестирования на разных стадиях разработки ПО.
ОСНОВЫ ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММ. Разработка программ - промышленное производство необходима технология разработки программ. Д. Кнут «Искусство программирования.
ТЕСТИРОВАНИЕ ПРОГРАММНЫХ ПРОДУКТОВ
Этапы решения задач на компьютерах Постановка задачи Формальное построение модели задачи Формальное построение модели задачи Построение математической.
Тестирование Обеспечение качества. Тема 7 тестирование2 Аттестация и верификация Обзоры Инспекционные проверки Сквозной контроль.
Жизненный цикл программного обеспечения Подготовил студент 1 курса Лось Павел.
2 Основным понятием программной инженерии является понятие жизненного цикла ПО. Жизненный цикл ПО (software lifecycle) – это период времени, который начинается.
Тестирование программных средств Сафронов Сергей, 2008 год.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА. Что такое тестирование? Тестирование процесс, подтверждающий правильность программы и демонстрирующий, что ошибок.
Тема 7. Отладка и тестирование программных средств.
Жизненный цикл программного обеспечения Лекция 4.
1. Принципы верификации и тестирования информационных систем 2. Технологические этапы и стратегии систематического тестирования информационных систем 3.
Информационные системы в экономике Лекция 1. Основные понятия и определения Автоматизированная информационная система это совокупность технических программных.
Транксрипт:

Уровни тестирования Инна Исаева

Классификация видов тестирования По объекту тестирования: Функциональное тестирование (functional testing) Тестирование производительности (performance testing) Нагрузочное тестирование (load testing) Стресс-тестирование (stress testing) Тестирование стабильности (stability / endurance / soak testing) Тестирование удобства использования (usability testing) Тестирование интерфейса пользователя (UI testing) Тестирование безопасности (security testing) Тестирование локализации (localization testing) Тестирование совместимости (compatibility testing)

Классификация видов тестирования По знанию системы: Тестирование чёрного ящика (black box) Тестирование белого ящика (white box) Тестирование серого ящика (gray box) По степени автоматизации: Ручное тестирование (manual testing) Автоматизированное тестирование (automated testing) Полуавтоматизированное тестирование (semiautomated testing)

Классификация видов тестирования По степени изолированности компонентов: Компонентное (модульное) тестирование (component/unit testing) Интеграционное тестирование (integration testing) Системное тестирование (system/end-to-end testing) По времени проведения тестирования: Альфа тестирование (alpha testing) Тестирование при приёмке (smoke testing) Тестирование новой функциональности (new feature testing) Регрессионное тестирование (regression testing) Тестирование при сдаче (acceptance testing) Бета тестирование (beta testing)

Классификация видов тестирования По признаку позитивности сценариев: Позитивное тестирование (positive testing) Негативное тестирование (negative testing) По степени подготовленности к тестированию: Тестирование по документации (formal testing) Эд Хок (интуитивное) тестирование (ad hoc testing)

Модульное тестирование Тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Процесс проверки корректностей модулей(классов) программы. Заключается в изолированной проверке каждого отдельного элемента путем запуска тестов в искусственной среде.

Что такое модуль?

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

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

Задачи модульного тестирования Поиск и документирование несоответствий требованиям Поддержка разработки и рефакторинга низкоуровневой архитектуры системы и межмодульного взаимодействия Поддержка рефакторинга модулей Поддержка устранения дефектов и отладки

Фазы модульного тестирования (Стандарт IEEE 1008 ) Фаза планирования тестирования Этап планирования основных подходов к тестированию, ресурсное планирование и календарное планирование Этап определения свойств, подлежащих тестированию Этап уточнения основного плана, сформированного на этапе (1) Фаза получения набора тестов Этап разработки набора тестов Этап реализации уточненного плана Фаза измерений тестируемого модуля Этап выполнения тестовых процедур Этап определения достаточности тестирования Этап оценки результатов тестирования и тестируемого модуля.

Преимущества Облегчение рефакторинга Легкость обнаружения ошибок Упрощение интеграции Устранение сомнений по поводу надежности отдельных модулей Документирование кода Позволяет уменьшить связность компонентов системы

Недостатки Увеличение срока разработки При изменении требований, ранее созданные тесты становятся ненужными

Размер теста Тестовый метод должен быть коротким Количество проверок должно быть минимальным иначе по падению теста сложно будет найти причину ошибки. Каждый тест должен покрывать одну единицу бизнес- логики: Простой метод Один из исходов конструкции if..else Один из случаев (case) блока switch Исключение, обрабатываемое блоком try…catch Исключение, генерируемое (throw) в методе

Интеграционное тестирование Интеграционное тестирование - это тестирование части системы, состоящей из двух и более модулей. Интеграционное тестирование - это тестирование корректности взаимодействия нескольких модулей, объединенных в единое целое.

Цель Удостовериться в корректности совместной работы компонентов системы Проверка соответствия проектируемых единиц функциональным, приёмным и требованиям надежности.

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

Методы проведения интеграционного тестирования восходящее тестирование; монолитное тестирование; нисходящее тестирование.

Восходящее тестирование Сначала тестируются все программные модули, входящие в состав системы и только затем они объединяются для интеграционного тестирования.

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

Недостатки очень трудно выявить источник ошибки (идентифицировать ошибочный фрагмент кода); трудно организовать исправление ошибок; процесс тестирования плохо автоматизируется.

Нисходящее тестирование Сначала тестируют только самый верхний управляющий уровень системы, без модулей более низкого уровня. Затем постепенно с более высокоуровневыми модулями интегрируются более низкоуровневые.

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

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

Категории тестов системного тестирования 1.Полнота решения функциональных задач. 2.Тестирование целостности (соответствие документации, комплектность). 3.Стрессовое тестирование - на предельных объемах нагрузки входного потока. 4.Корректность использования ресурсов (утечка памяти, возврат ресурсов). 5.Оценка производительности. 6.Эффективность защиты от искажения данных и некорректных действий. 7.Проверка инсталляции и конфигурации на разных платформах. 8.Корректность документации

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