Testschool Классификация по уровням тестирования. Автоматизация тестирования
Содержание лекции 1 Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации
Классификация по уровням тестирования. Автоматизация тестирования 1 Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации
–streng vertraulich, vertraulich, intern, öffentlich– Autor / Thema der Präsentation4 Компонентное тестирование (Komponententest) Компонентное тестирование – тестирование отдельной составной части (компонента) приложения. Компонент – минимальная часть приложения, которую можно протестировать изолированно. Синонимы : – Modultest -Unit-Test- Einzeltest - Klassentest-Entwicklertest- Programmtest Как правило компонентное тестирование проводится разработчиками => найденные дефекты сразу исправляются (без документирования). Могут использоваться специальные инструменты. Область для применения техник белого ящика.
Компонентное тестирование (Komponententest) Цели и объекты Функции модуля Структура (модуля, класса, компонента) Тест на устойчивость компонента – проверяем, что при некорректных входных данных и/или окружении компонент корректно работает. Что может обнаружить тест на этом уровне Ошибки структуры Ошибки вычисления Недостаточная производительность Недостаточная эффективность Ошибки использования памяти
Классификация по уровням тестирования. Автоматизация тестирования Уровни тестирования: компонентное тестирование Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации 2 1
–streng vertraulich, vertraulich, intern, öffentlich– Autor / Thema der Präsentation7 Интеграционное тестирование (Integrationstest) Интеграционное тестирование предназначено для проверки связи между компонентами, а также взаимодействия с различными частями системы. Уровни интеграционного тестирования: Компонентный интеграционный уровень (Component Integration testing) - Проверяется взаимодействие между компонентами системы после проведения компонентного тестирования. Системный интеграционный уровень (System Integration Testing) - Проверяется взаимодействие между разными системами после проведения системного тестирования. Для проведения тестов используют драйвера (Treiber) и заглушки (Platzhalter).
–streng vertraulich, vertraulich, intern, öffentlich– Autor / Thema der Präsentation8 Интеграционное тестирование (Integrationstest) Основные стратегии интеграции компонентов при проведении интеграционного тестирования: «Big Bang» Integration – всё сразу - все или практически все разработанные модули собираются вместе в виде законченной системы или ее основной части, и затем проводится интеграционное тестирование. Хорошо – экономим время. Плохо – сложно локализовать ошибки. Последовательная интеграция компонентов Top-Down Integration – сверху вниз - вначале тестируются все высокоуровневые модули, и постепенно один за другим добавляются низкоуровневые. Все модули более низкого уровня симулируются заглушками с аналогичной функциональностью, зачем по мере готовности они заменяются реальными активными компонентами. Bottom-Up Integration – снизу вверх - все низкоуровневые модули, процедуры или функции собираются воедино и затем тестируются. После чего собирается следующий уровень модулей для проведения интеграционного тестирования. Данный подход считается полезным, если все или практически все модули, разрабатываемого уровня, готовы. Также данный подход помогает определить по результатам тестирования уровень готовности приложения.
Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации Классификация по уровням тестирования. Автоматизация тестирования InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
–streng vertraulich, vertraulich, intern, öffentlich– Autor / Thema der Präsentation10 Системное тестирование (Systemtest) Системное тестирование - это тестирование системы в целом с целью удостовериться, что требования, описанные в спецификации выполняются. Проверяем выполнение как функциональных, так и нефункциональных требований (функциональное и нефункциональное тестирование). Тестовое окружение должно быть максимально приближенное к тому, на которое будет установлен продукт после выдачи. Работа тестировщика чаще всего подразумевает системное тестирование.
1 Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации Классификация по уровням тестирования. Автоматизация тестирования InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Приемочное тестирование (Abnahmetest) Приемочное тестирование - формальный процесс тестирования, который проверяет соответствие системы требованиям и проводится с целью: определения удовлетворяет ли система приемочным критериям; вынесения решения заказчиком или другим уполномоченным лицом принимается приложение или нет. Фаза приемочного тестирования длится до тех пор, пока заказчик не выносит решение об отправлении приложения на доработку или выдаче приложения. InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Приемочное тестирование (Abnahmetest) Тест проводится при участии заказчиков и возможных конечных пользователей системы. База для проведения теста Спецификация (z.B. Pflichtenheft, Fachkonzept) Ожидания заказчика в соответствии с областью применения продукта Оценка рисков Тесткейсы подобны тестам системного уровня, могут быть менее подробными и обширными Цель приемочного тестирования Обосновать доверие (показать качество продукта) Показать готовность к использованию Оценить возможные остаточные риски InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
1 Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации Классификация по уровням тестирования. Автоматизация тестирования InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Тестирование в условиях эксплуатации (Wartungstest) Случай: программный продукт, который уже какое то время находится в эксплуатации (im Betrieb) требует изменений или доработки Изменения в рабочей системе требуют дополнительного теста Запланированное изменение спецификации (например расширение функциональности) Быстрые изменения в чрезвычайной ситуации (Hotfix) Изменение hardware или software (база данных, операционная система) Миграция данных в новую систему также требует теста (например тест архивации данных) Изменения, дополнения, быстрые изменения (Hotfix) также могут быть причиной нежелательных побочный эффектов InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Уровни тестирования: компонентное тестирование 2 Уровни тестирования: интеграционное тестирование 3 Уровни тестирования: системное тестирование 4 Уровни тестирования: приемочное тестирование 6 Автоматизированное тестирование 5 Тестирование в условиях эксплуатации Классификация по уровням тестирования. Автоматизация тестирования InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Автоматизированное тестирование(Testautomatisierung) Автоматизация тестирования – использование для проведения и проверки результатов теста специальных инструментов (программных средств) с целью сократить время тестирования и упростить его процесс. Автоматизация тестирования: На уровне кода (модульное тестирование) На уровне пользовательского интерфейса (имитация действий пользователя) InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
–streng vertraulich, vertraulich, intern, öffentlich– Autor / Thema der Präsentation18 Автоматизированное тестирование (Testautomatisierung). Автоматизация на уровне пользовательского интерфейса Создается скрипт (сценарий), который представляет тестовые шаги: Данные, вводимые пользователем записываются инструментом («тулом») Скрипты могут быть также созданы в редакторе вручную Скриптовый язык – «язык программирования теста» Перед использование скрипты также должны быть протестированы и отлажены (как приложение) Структуризация скрипта на модули делает его применение эффективней Возможность использовать один и тот же скрипт для разных входных данных Создание последовательности тестов Скрипт запускается инструментом автоматизации (тулом) Автоматически происходит проверка соответствия фактического результата ожидаемому Автоматическое протоколлирование полученного результата
Автоматизированное тестирование (Testautomatisierung). Применение Чаще всего для повторения функциональных тестов Полезно для регрессионного тестирования Возможно дешевле ручного тестирования Применяется при частом повторении определённого набора тестов Запись действий пользователя при exploratives Testen (тестирование без заранее написанных тесткейсов) – для того чтобы иметь возможность воспроизвести и задокументировать тест (например при нахождении дефекта) Некоторые нефункциональные тесты Multi-User-Test (например одновременный доступ к записе в базе данных нескольких пользователей) Оценка производительности (малое количество пользователей) Для большей эффективности применения автоматизированного тестирования могут применяться следующие подходы Data-driven (Datengetriebener Ansatz) Keyword-based (Schlüsselwortgetriebener Ansatz) InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Автоматизированное тестирование (Testautomatisierung). Datengetriebener Ansatz Подход разработки скриптов для автоматизации тестирования, при котором вводимые данные и ожидаемые результаты сохраняются в отдельную таблицу или базу данных. Скрипт содержит параметры, которые при запуске заменяются значениями из таблицы. Для запуска не обязательны знания скриптового языка Schlüsselwortgetriebener Ansatz Тестовые данные (Testdaten) и действия (Testaktionen) сохраняются в таблице или базе данных отдельно от скрипта Тестовые шаги строятся с помощью специальных ключевых слов (Schlüsselwörte, Aktionswörte) Тестировщики могут создавать новые тесты, не имея глубоких знаний используемого инструмента Написание скриптов и создание тестов отделены друг от друга InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Автоматизированное тестирование (Testautomatisierung). Автоматизация на уровне пользовательского интерфейса Преимущества автоматизации тестирования: Повторяемость – все написанные тесты всегда будут выполняться однообразно, то есть исключен «человеческий фактор». Тестировщик не пропустит тест по неосторожности и ничего не напутает в результатах. Быстрое выполнение – автоматизированному скрипту не нужно сверяться с инструкциями и документациями, это сильно экономит время выполнения. Меньшие затраты на поддержку – когда автоматические скрипты уже написаны, на их поддержку и анализ результатов требуется, как правило, меньшее время чем на проведение того же объема тестирования вручную. Отчеты – автоматически рассылаемые и сохраняемые отчеты о результатах тестирования. Выполнение без вмешательства – во время выполнения тестов инженер- тестировщик может заниматься другими полезными делами, или тесты могут выполняться в нерабочее время (этот метод предпочтительнее, так как нагрузка на локальные сети ночью снижена). InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Автоматизированное тестирование (Testautomatisierung). Автоматизация на уровне пользовательского интерфейса Недостатки автоматизации тестирования: Повторяемость – все написанные тесты всегда будут выполняться однообразно. Это одновременно является и недостатком, так как тестировщик, выполняя тест вручную, может обратить внимание на некоторые детали и, проведя несколько дополнительных операций, найти дефект. Скрипт этого сделать не может. Затраты на поддержку - чем чаще изменяется приложение, тем они выше. Большие затраты на разработку – все это нужно тестировать и отлаживать, а это требует времени. Стоимость инструмента для автоматизации – в случае если используется лицензионное ПО, его стоимость может быть достаточно высока. Свободно распространяемые инструменты как правило отличаются более скромным функционалом и меньшим удобством работы. Пропуск мелких ошибок - автоматический скрипт может пропускать мелкие ошибки на проверку которых он не запрограммирован. Это могут быть неточности в позиционировании окон, ошибки в надписях, которые не проверяются. InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Ваши вопросы InternAnastasiya Kuzmina/ Классификация по уровням тестирования. Автоматизация тестирования
Санкт-Петербург, 19 октября 2011 Спасибо за внимание!