Тестируемый код Докладчик: Голубев Александр Зачем нужны тесты? Зачем нужны тесты? Упрощение отладки Зачем нужны тесты? Упрощение отладки Подтверждение корректности кода Зачем нужны тесты? Упрощение отладки Подтверждение корректности кода Облегчение интеграции Как тестировать? Как тестировать? Проще всего – интеграционно! NUnit в помощь Проблемы Двойное тестирование Проблемы Двойное тестирование Вызовы на внешние сервисы Модульные тесты Используем “фальшивые” реализации интерфейсов (mocks) Описываем свои ожидания на: параметры методов порядок вызовов возвращаемые значения генерируемые исключения Mock frameworks Примеры Всемогущи ли модульные тесты? Всемогущи ли модульные тесты? SQL Файловая система Работа с сетью Нагрузочные тесты Как тестировать GUI? Как тестировать GUI? Функциональные тесты Функциональные тесты WatiN Selenium Кто должен писать тесты? Разработчик Кто должен писать тесты? Разработчик Тестировщик (приёмочные тесты) Заключение. Виды тестирования. Заключение. Виды тестирования. Модульное Заключение. Виды тестирования. Модульное Интеграционное Заключение. Виды тестирования. Модульное Интеграционное Нагрузочное Заключение. Виды тестирования. Модульное Интеграционное Нагрузочное Функциональное Заключение. Виды тестирования. Модульное Интеграционное Нагрузочное Функциональное Приёмочное Вывод Написание тестов – не панацея от ошибок. Однако, тесты помогают существенно сократить их количество и повысить надёжность кода.