Использование автогенерации кода для тестирования...

8
Использование автогенерации кода для тестирования драйверов ОС Windows Дипломная работа студента 545 группы Комольцева Дмитрия Владимировича Научный руководитель: Сабашный В.Е. Рецензент: Лабутин И.А. 2008 год Санкт-Петербургский Государственный Университет Математико-Механический Факультет Кафедра Системного Программирования

Upload: kacy

Post on 05-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

Санкт-Петербургский Государственный Университет Математико-Механический Факультет Кафедра Системного Программирования. Использование автогенерации кода для тестирования драйверов ОС Windows. Дипломная работа студента 545 группы Комольцева Дмитрия Владимировича - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Использование автогенерации кода для тестирования драйверов ОС  Windows

Использование автогенерации кода для тестирования драйверов ОС Windows

Дипломная работа студента 545 группыКомольцева Дмитрия Владимировича

Научный руководитель: Сабашный В.Е.Рецензент: Лабутин И.А.

2008 год

Санкт-Петербургский Государственный Университет

Математико-Механический Факультет

Кафедра Системного Программирования

Page 2: Использование автогенерации кода для тестирования драйверов ОС  Windows

Автоматическое тестирование Быстрее, чем ручное Некоторые области неудобно тестировать

вручную Удобно проводить регрессионное тестирование Перехват функций

Тестирование путей обработки ошибок Эмуляция ситуации нехватки системных ресурсов Формирование «специфических» запросов системе

Page 3: Использование автогенерации кода для тестирования драйверов ОС  Windows

Существующая система

Операционная система

Тестируемый драйвер

Wrapper

ExAllocatePool(…)

Ker

nel

mod

eU

ser

mod

e Тестовое окружениеУстановка параметров перехвата.

w_ExAllocatePool(…){ изменение параметров; задержка; ExAllocatepool(…); Возврат кода ошибки;}

…ExAllocatePool(…);…

Page 4: Использование автогенерации кода для тестирования драйверов ОС  Windows

WDF как среда разработки драйверов OS Windows Самая новая технология разработки драйверов

от Microsoft Поддерживаются версии Windows начиная с

Windows 2000 Kernel Mode Driver Framework и User Mode Driver

Framework Простота разработки драйверов Берет на себя работу с PnP, WMI, DMA,... Поддержка версий

Page 5: Использование автогенерации кода для тестирования драйверов ОС  Windows

Проблема WDF поддерживает одновременную работу с

разными версиями окружения Требуемая версия определяется в процессе

загрузки драйвера Старый метод перехвата не работает

Требуется добавить поддержку перехвата WDF функций

Нельзя нарушать работу старой системы перехвата

Page 6: Использование автогенерации кода для тестирования драйверов ОС  Windows

Решение

Wrapper

Ker

nel

mod

e

w_WdfDriverCreate (…){ Изменение параметров; ws_WdfDriverCreate (…); Возврат кода ошибки;}

Тестируемый драйвер

Работа…WdfDriverCreate(DG,…);Снова работа;…

Операционная система

WdfDriverCreate(DG,…)

ts_WdfDriverCreate(DG,…){ return w_WdfDriverCreate(…);}

ws_WdfDriverCreate(…){ return WdfDriverCreate(DG, …);}

Page 7: Использование автогенерации кода для тестирования драйверов ОС  Windows

Схема генерации

Заголовочные файлыWindows DDK

Заголовки функций

Шаблоны функций-перехватчиков

Выбранные заголовки

Сгенерированные функции-перехватчики для всех функций

Исходные коды драйвера-перехватчика

Готовый драйвер

Сгенерированные функции-обертки для WDF функций

Выбранные заголовки с помеченными WDF функциями

Page 8: Использование автогенерации кода для тестирования драйверов ОС  Windows

Результаты

В тестовое окружение добавлена поддержка перехвата WDF функций

Вспомогательный код генерируется автоматически

Сохранена совместимость со старыми тестами Найдены критические ошибки в коммерческом

продукте