Software Testing
Тестирование программного обеспечения:
Лабораторная работа #1
1. Для указанной функции провести модульное тестирование разложения функции в степенной ряд. Выбрать достаточное тестовое покрытие.
2. Провести модульное тестирование указанного алгоритма. Для этого выбрать характерные точки внутри алгоритма, и для предложенных самостоятельно наборов исходных данных записать последовательность попадания в характерные точки. Сравнить последовательность попадания с эталонной.
3. Сформировать доменную модель для заданного текста. Разработать тестовое покрытие для данной доменной модели
Вопросы к защите лабораторной работы:
- Понятие тестирования ПО. Основные определения.
- Цели тестирования. Классификация тестов.
- Модульное тестирование. Понятие модуля.
- V-образная модель. Статическое и динамическое тестирование.
- Валидация и верификация. Тестирование методом "чёрного" и "белого" ящика.
- Тестовый случай, тестовый сценарий и тестовое покрытие.
- Анализ эквивалентности.
- Таблицы решений и таблицы переходов.
- Регрессионное тестирование.
-
Библиотека JUnit. Особенности API. Класс
junit.framework.Assert
. - Отличия JUnit 3 от JUnit 4.
Правила выполнения работы:
- Все составляющие систему функции (как тригонометрические, так и логарифмические) должны быть выражены через базовые (тригонометрическая зависит от варианта; логарифмическая - натуральный логарифм).
- Структура приложения, тестируемого в рамках лабораторной работы, должна выглядеть следующим образом (пример приведён для базовой тригонометрической функции sin(x)):
- Обе "базовые" функции (в примере выше - sin(x) и ln(x)) должны быть реализованы при помощи разложения в ряд с задаваемой погрешностью. Использовать тригонометрические / логарифмические преобразования для упрощения функций ЗАПРЕЩЕНО.
- Для КАЖДОГО модуля должны быть реализованы табличные заглушки. При этом, необходимо найти область допустимых значений функций, и, при необходимости, определить взаимозависимые точки в модулях.
- Разработанное приложение должно позволять выводить значения, выдаваемое любым модулем системы, в сsv файл вида «X, Результаты модуля (X)», позволяющее произвольно менять шаг наращивания Х. Разделитель в файле csv можно использовать произвольный.
Порядок выполнения работы:
- Разработать приложение, руководствуясь приведёнными выше правилами.
- С помощью JUNIT4 разработать тестовое покрытие системы функций, проведя анализ эквивалентности и учитывая особенности системы функций. Для анализа особенностей системы функций и составляющих ее частей можно использовать сайт https://www.wolframalpha.com/.
- Собрать приложение, состоящее из заглушек. Провести интеграцию приложения по 1 модулю, с обоснованием стратегии интеграции, проведением интеграционных тестов и контролем тестового покрытия системы функций.
Отчёт по работе должен содержать:
- Текст задания, систему функций.
- UML-диаграмму классов разработанного приложения.
- Описание тестового покрытия с обоснованием его выбора.
- Графики, построенные csv-выгрузкам, полученным в процессе интеграции приложения.
- Выводы по работе.
Вопросы к защите лабораторной работы:
- Цели и задачи интеграционного тестирования. Расположение фазы интеграционного тестирования в последовательности тестов; предшествующие и последующие виды тестирования ПО.
- Алгоритм интеграционного тестирования.
- Концепции и подходы, используемые при реализации интеграционного тестирования.
- Программные продукты, используемые для реализации интеграционного тестирования. Использование JUnit для интеграционных тестов.
- Автоматизация интеграционных тестов. ПО, используемое для автоматизации интеграционного тестирования.
Лабораторная работа #3
Сформировать варианты использования, разработать на их основе тестовое покрытие покрытие и провести функциональное тестирование интерфейса сайта (в соответствии с вариантом).
Требования к выполнению работы:
- Тестовое покрытие должно быть сформировано на основании набора прецедентов использования сайта.
- Тестирование должно осуществляться автоматически - с помощью системы автоматизированного тестирования Selenium.
- Шаблоны тестов должны формироваться при помощи Selenium IDE и исполняться при помощи Selenium RC в браузерах Firefox и Chrome.
- Предполагается, что тестируемый сайт использует динамическую генерацию элементов на странице, т.е. выбор элемента в DOM должен осуществляться не на основании его ID, а с помощью XPath.
Требования к содержанию отчёта:
- Текст задания.
- UseCase-диаграмму с прецедентами использования тестируемого сайта.
- CheckList тестового покрытия.
- Описание набора тестовых сценариев.
- Результаты тестирования.
- Выводы.
Вопросы к защите лабораторной работы:
- Функциональное тестирование. Основные понятия, способы организации и решаемые задачи.
- Система Selenium. Архитектура, принципы написания сценариев, способы доступа к элементам страницы.
- Язык XPath. Основные конструкции, системные функции, работа с множествами элементов.
Лабораторная работа #4
С помощью программного пакета Apache JMeter провести нагрузочное и стресс-тестирование веб-приложения в соответствии с вариантом задания.
В ходе нагрузочного тестирования необходимо протестировать 3 конфигурации аппаратного обеспечения и выбрать среди них наиболее дешёвую, удовлетворяющую требованиям по максимальному времени отклика приложения при заданной нагрузке (в соответствии с вариантом).
В ходе стресс-тестирования необходимо определить, при какой нагрузке выбранная на предыдущем шаге конфигурация перестаёт удовлетворять требованиями по максимальному времени отклика. Для этого необходимо построить график зависимости времени отклика приложения от нагрузки.
Приложение для тестирования доступно только во внутренней сети кафедры.
Если запрос содержит некорректные параметры, сервер возвращает HTTP 403.
Если приложение не справляется с нагрузкой, сервер возвращает HTTP 503.
Отчёт по работе должен содержать:
- Текст задания.
- Описание конфигурации JMeter для нагрузочного тестирования.
- Графики пропускной способности приложения, полученные в ходе нагрузочного тестирования.
- Выводы по выбранной конфигурации аппаратного обеспечения.
- Описание конфигурации JMeter для стресс-тестирования.
- График изменения времени отклика от нагрузки для выбранной конфигурации, полученный в ходе стресс-тестирования системы.
- Выводы по работе.
Вопросы к защите лабораторной работы:
- Тестирование системы целиком - системное тестирование
- Тестирование возможностей, стабильности, отказоустойчивости, совместимости
- Тестирование производительности - CARAT
- Альфа и Бета тестирование. Приемочное тестирование
- Нагрузочное тестирование - виды, цели и решаемые задачи.
- Принципы реализации нагрузочного тестирования ПО.
- Инструменты для реализации нагрузочного тестирования.
- Apache JMeter - архитектура, поддерживаемые протоколы, особенности конфигурации.
- Стресс-тестирование - основные понятия, виды стресс-сценариев.
- Стресс-тестирование ПО. Виды стресс-тестов ПО. Тестирование ёмкости.