Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Testirovanie_programmnogo_obespechenia.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.08 Mб
Скачать

8. Модульное тестирование и его методы

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

Модуль – ограниченная часть кода программы с одной точкой входа и одной точкой выхода, выполняющая одну и только одну первичную функцию.

Методы модульного тестирования:

  1. по степени автоматизации: ручные, автоматизированные.

  2. по форме представления модуля: тест-е программ, написанных на языке программирования; -//- на машинном коде.

  3. по компонентам программы, на которое направлено тестирование: тест-е структуры программы; тест-е преобразования данных.

  4. по запускаемости модуля: динамическое, статическое.

Последовательность тестирования модуля:

  1. обзор кода

  2. тестирование структуры (диаграммы Чейпина, диаграммы Неси-Шнайдермана, ориентированные графы Мак-Кейна).

  3. тестирование обработки данных

  4. функциональное тестирование

Цикломатическое число графа (метрический показатель сложности программы): G=R(ребра) – V(вершины) + 2 G>=15 недопустимо.

Преимущества:

Поощрение изменений

Юнит-тестирование позже позволяет программистам проводить рефакторинг, будучи уверенными, что модуль по-прежнему работает корректно (регрессионное тестирование). Это поощряет программистов к изменениям кода, поскольку достаточно легко проверить, что код работает и после изменений.

Упрощение интеграции

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

Документирование кода

Юнит-тесты можно рассматривать как «живой документ» для тестируемого класса. Клиенты, которые не знают, как использовать данный класс, могут использовать юнит-тест в качестве примера.

Отделение интерфейса от реализации

Поскольку некоторые классы могут использовать другие классы, тестирование отдельного класса часто распространяется на связанные с ним. Например, класс пользуется базой данных; в ходе написания теста программист обнаруживает, что тесту приходится взаимодействовать с базой. Это ошибка, поскольку тест не должен выходить за границу класса. В результате разработчик абстрагируется от соединения с базой данных и реализует этот интерфейс, используя свой собственный mock-объект. Это приводит к менее связанному коду, минимизируя зависимости в системе.

Этот тип тестирования обычно выполняется программистами.

Этапы модульного тестирования.

  1. Планирование модульного тестирования;

  2. Разработка тестов;

  3. Формирование отладочных заданий;

  4. Процесс тестирования;

  5. Обработка результатов тестирования;

9. Структурное тестирование.

Изучение структуры программы. Как правило, тестирование структуры модуля происходит с помощью графического отображения модуля. Например, диаграммы Чейпина, диаграммы Насси-Шнайдермана, ориентированные графы Мак-Кейна.

В основу принято понятие, что узел – оператор, ребро – связь между узлами (операторами).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]