КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО...

Preview:

Citation preview

Владимир Гусаров, Quest Software 30 марта 2012

Quality Assurance Day ’12 КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО КАЧЕСТВО

ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Обзор новых возможностей

юнит-тестирования в среде

Visual Studio 11

Юнит-тестирование в Visual

Studio 11 ориентировано на

разработчиков, которые пишут

и запускают юнит-тесты во время создания кода.

Анализ жалоб и пожеланий

• Использовать альтернативные системы юнит-тестирования – Репутация MS-Test как медленной системы для .Net – Отсутствие поддержки тестирования нативного

кода – MS-Test очень медленно развивается по

сравнению с остальными (xUnit.net, BDD frameworks, mocking frameworks, и т.д.)

• Юнит-тестирование в Visual Studio оптимизировано для тестировщиков

• Плохо поддерживаются Agile и TDD

ЗНАКОМСТВО С НОВЫМ ОБОЗРЕВАТЕЛЕМ ЮНИТ-ТЕСТОВ

Демонстрация

Архитектура

Сделано для разработчиков

Используйте любую систему

• В комплекте поставляется: – MS-Test для управляемого кода – MS-Test для неуправляемого кода (**НОВОЕ**)

• Плагины сторонних разработчиков – NUnit – xUnit.net – MbUnit – Юнит-тесты SQL Server – Другие

• Напишите свой плагин! – Customizing for Testing By Using the Visual Studio SDK

• Производительность и масштабируемость

• Поддержка асинхронного запуска (Async)

[TestMethod]

public async Task MyAsyncTest()

{

var result = await SomeLongRunningOperation();

Assert.IsTrue( result );

}

• Нормальная поддержка 64-бит и .Net multi-targeting

• Доступно в редакции Express!

Улучшения в MS-Test

ЮНИТ-ТЕСТИРОВАНИЕ АСИНХРОННЫХ МЕТОДОВ В MS-TEST

Демонстрация

Строгая совместимость с VS 2010

• Юнит-тест проекты VS 2010 будут «просто работать» в VS 11

– Не нужно обновление

– Двустороння обратная совместимость с VS 2010

• TeamBuild в TFS 11 настраивается

– Запуск тестов, совместимых с VS 2010

– Запуск новых VS 11 тестов

Изоляция для лучшего тестирования

• Новый VS 11 Fakes Framework – Позволяет тестировать практически ВСЁ в изоляции

• На основе научно-исследовательской разработки “Moles” (проект Microsoft Research)

• Две концепции – Заглушки (Stubs) – реализация интерфейсов или

абстрактных классов – Прослойки (Shims) – сгенерированные классы

• Перехват и подмена вызовов существующих объектов, включая .Net BCL!

ИСПОЛЬЗОВАНИЕ FAKES ДЛЯ ИЗОЛИРОВАННЫХ ЮНИТ-ТЕСТОВ

Демонстрация

Рекомендации

• Заглушки – Естественное расширение широко известных стратегий

тестирования – Основной способ для поддержки изоляции

• Прослойки – Невообразимо мощный и иногда единственный способ

протестировать… и огромное зло! – Начинайте использовать для тестирования существующего

кода – Но не останавливайтесь на этом… – Старайтесь сделать рефакторинг кода, чтобы прослойки

больше не понадобились – Затем уберите их

Покрытие кода в VS 11

• Анализ покрытия одним нажатием

• Анализ для выбранных тестов

– Как конкретные тесты покрывают систему

• Поддержка неуправляемого кода (через MS-Test Native Framework)

• Работает с системами тестирования сторонних производителей

ПОКРЫТИЕ КОДА

Демонстрация

Поддержка Team Build

• Если это работает в VS – будет работать и в Team Build

– Поддержка систем сторонних производителей

– Изоляция от Visual Studio Fakes Framework

– Покрытие кода

• Плюс…

– Оценка влияния на тесты (Test Impact Analysis)

Непрерывное тестирование

• Запуск тестов это естественная часть сборки продукта

• Опция “Запустить тесты после сборки” запускает все тесты после каждой успешной сборки

НЕПРЕРЫВНОЕ ТЕСТИРОВАНИЕ

Демонстрация

Юнит-тестирование в Visual

Studio 11 ориентировано на

разработчиков, которые пишут

и запускают юнит-тесты во время создания кода.

Спасибо за внимание!

• Ресурсы – Visual Studio Managed Unit Testing

Framework (aka MS-Test) • http://aka.ms/mstest-dev11

– xUnit.net • Информация: http://xunit.codeplex.com/ • Скачать: http://aka.ms/xunit-vs11

– NUnit • Информация: http://nunit.org/ • Скачать: http://aka.ms/nunit-vs11

– MbUnit • Информация: https://github.com/Gallio/Gallio-

VS2011-Integration • Скачать: http://aka.ms/mbunit-vs11

• Контакты – http://vstsblog.ru