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

21
Владимир Гусаров, Quest Software 30 марта 2012 Quality Assurance Day ’12 КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО КАЧЕСТВО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Обзор новых возможностей юнит-тестирования в среде Visual Studio 11

Upload: others

Post on 24-Jul-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

Visual Studio 11

Page 2: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

Page 3: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

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

Page 4: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

Page 5: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

Архитектура

Page 6: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

Page 7: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

Page 8: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

[TestMethod]

public async Task MyAsyncTest()

{

var result = await SomeLongRunningOperation();

Assert.IsTrue( result );

}

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

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

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

Page 9: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

Page 10: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

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

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

Page 11: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

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

Page 12: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

Page 13: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

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

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

Page 14: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

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

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

Page 15: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

Page 16: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

Поддержка Team Build

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

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

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

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

• Плюс…

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

Page 17: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

Page 18: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

Page 19: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

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

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

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

Page 20: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование

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

• Ресурсы – 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

Page 21: КОНФЕРЕНЦИЯ ДЛЯ ТЕХ, КОМУ НЕБЕЗРАЗЛИЧНО …download.microsoft.com/documents/rus/visualstudio/... · frameworks, mocking frameworks, и т.д.) •Юнит-тестирование