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

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



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

Виды и методы тестирования на разных стадиях разработки ПО.
Уровни тестирования Инна Исаева. Классификация видов тестирования По объекту тестирования: Функциональное тестирование (functional testing) Тестирование.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
ТЕСТИРОВАНИЕ МЕТОД «ЧЕРНОГО ЯЩИКА» ВЫПОЛНИЛ СТУДЕНТ ГР. ИВТ-51 з БАННИКОВА Н.Р.
Организация процесса тестирования ПО Петренко Ольга QA Team Leader.
Этапы решения задач на компьютерах Постановка задачи Формальное построение модели задачи Формальное построение модели задачи Построение математической.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА. Что такое тестирование? Тестирование процесс, подтверждающий правильность программы и демонстрирующий, что ошибок.
Testschool Тестирование ПО: Модели разработки ПО. Уровни и типы тестирования. Воронеж, 2012 год.
На основании курса Тестирования программных продуктов Терехов А. А. Слайд 1 Анализ стандартных методов тестирования. Применимость к разработке игр. Шишенин.
1С:Автоматическое тестирование конфигураций. Программный продукт представляет собой инструмент, предназначенный для максимально полной автоматической.
Тестирование программных средств Сафронов Сергей 2009 год.
Автоматизация тестирования. План 1.Применение автоматизированного тестирования 2.Выбор инструментария 3.Процесс автоматизации (IBM Rational) GUI тестирование.
Жизненный цикл программного обеспечения Подготовил студент 1 курса Лось Павел.
Жизненный цикл программного обеспечения Лекция 4.
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
24 декабря 2009 года Ознакомительный семинар. План Что такое тестирование? Роль тестировщика в проекте Обязанности тестировщика Инструменты Литература.
Сержантов Антон, Ведущий программист, JaNet systems LLC Москва, 2010 г. Тестирования программного обеспечения.
Testschool Классификация по уровням тестирования. Автоматизация тестирования.
Разработка программного обеспечения (Software Engineering) Часть 2. Создание ПО.
Транксрипт:

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

Уровни и виды тестирования Модульное тестирование (component testing) Интеграционное тестирование (integration testing) Системное тестирование (system testing) Приемочное тестирование (acceptance testing) – польз-ли smoke testing регрессионное тестирование

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

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

Интеграционное тестирование Интеграционное тестирование (тестирование сборки) - тестирование части системы, состоящей из двух и более модулей. Основная задача - поиск дефектов, связанных с ошибками в реализации и интерпретации взаимодействия между модулями. Основная разница между модульным и интеграционным тестированием состоит в типах обнаруживаемых дефектов. В частности, на уровне интеграционнойго тестирования часто применяются методы, связанные с покрытием интерфейсов Интеграционное тестирование использует модель «белого ящика» на модульном уровне.

Методы сборки модулей Монолитный, характеризующийся одновременным объединением всех модулей в тестируемый комплекс. Для замены неразработанных к моменту тестирования модулей необходимо дополнительно разрабатывать драйверы и/или заглушки Инкрементальный, характеризующийся по модульным наращиванием комплекса программ с пошаговым тестированием собираемого комплекса. В инкрементальном методе выделяют две стратегии добавления модулей: «Сверху вниз» (нисходящее тестирование) «Снизу вверх» (восходящее тестирование)

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

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

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

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

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

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

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

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

Комбинирование уровней тестирования В каждом конкретном проекте должны быть определены задачи, ресурсы и технологии для каждого уровня тестирования. Задача тестировщиков и менеджеров - оптимально распределить ресурсы между тремя уровнями тестирования так, чтобы каждый из возможных типов дефектов был «адресован» (в наборе тестов должны иметься тесты, направленные на выявление дефектов этого типа). Например, перенесение усилий на поиск фиксированного типа дефектов из области системного в область модульного тестирования может существенно снизить сложность и стоимость всего процесса тестирования.

Приемочное тестирование Unit Testing Integration Testing System Testing Acceptance Testing Приемочное тестирование (Acceptance testing) - тестирование готового продукта конечными пользователями в реальном окружении. Приемочные тесты разрабатываются пользователями (обычно в виде сценариев).