Телефон +7 (812) 718-6184
СПб, Московский пр. 118
  1. О центре
  2. Статьи преподавателей
  3. Модульное тестирование

Модульное тестирование

11.01.2019

Зачем писать unit-тесты? Большинство программистов избегают модульного тестирования, говоря:
 

  • «Это долго и нудно»;
  • «Это бесполезно»;
  • «Пусть проверяет отдел тестирования»;
  • «Я пишу код без ошибок».

Исследования говорят, что модульные или unit-тесты, позволяющие проверить на корректность единицы исходного кода (классы, методы), составляют 70% всех автоматизированных тестов проекта. И это действительно так, модульное тестирование дает множество преимуществ:
 

  • раннее обнаружение ошибок в программном обеспечении;
  • упрощение изменений, отладки и интеграции;
  • предоставление источника документации;
  • сокращение затрат.

А самое главное, что при добавлении новых функций в приложение (что является рискованным и дорогостоящим делом), модульные тесты можно снова запустить - ведь это код, тестирующий код. Следовательно, unit-тестирование делает процесс разработки частью методологии Agile, а разработчик сможет уверенно приступить к рефакторингу.
Теперь мануальным тестировщикам, которые ведут себя как реальные пользователи, стало гораздо сложнее искать баги – ведь с помощью unit-тестов программист уже исправил свои банальные ошибки. При этом, за то же время работы, тестировщики находят гораздо больше сложных багов, которые раньше уходили к заказчику.
Если Ваши программные продукты написаны на языке программирования C#, то курс «Автоматизация тестирования в MS Visual Studio» в первую очередь будет полезен программистам для исключения ошибок на этапе разработки кода. При этом функциональные тесты (тестирование интерфейса) тоже могут быть автоматизированы уже на следующем уровне разработки.
Visual Studio предоставляет широкий спектр инструментов для автоматизации тестирования: unit-тестирование «из коробки», автоматическая генерация unit-тестов с помощью IntelliTest, закодированные тесты пользовательского интерфейса (Coded UI Tests), использование Microsoft Fakes или сторонних изоляционных фреймворков и многое другое. Часть этих возможностей также доступна в веб-версии совместной разработки Visual Studio Team System (VSTS) – Azure DevOps.
Преимущества автоматизации тестирования в MS Visual Studio включают в себя:
 

  • Эффективное взаимодействие разработчиков и тестировщиков в рамках одного инструментального средства и языка программирования;
  • Генерация кода (включая автоматическую) на языке C#;
  • Локальные или удаленные запуски, сбор отчетности;
  • Наличие средств записи и воспроизведения тестовых последовательностей;
  • Возможность программирования неограниченно сложных тестов.

Да, чтобы тестировать приложения, нужно жертвовать своим временем. Но не сдавайтесь, превратите написание тестов в часть разработки программного обеспечения, ведь в дальнейшем возможность повторять тесты одним нажатием кнопки, подтверждая работоспособность ПО, дает уверенность в качестве продукта.
Помните, что важная характеристика продукта с будущим – это возможность его расширения и долгосрочной поддержки, которые невозможны без качественного тестирования на всех этапах разработки ПО.
Если вы хотите узнать больше о возможностях, которые предоставляет среда Visual Studio для тестирования, понять, как и зачем писать unit-тесты, что такое test-driven development, качество и рефакторинг кода, посетите курс «Автоматизация тестирования в MS Visual Studio», по окончании которого Вы с успехом сможете:
 

  • Создавать проект модульного теста (unit test project), тестовый класс и тестовый метод с помощью фреймворков MSTest, xUnit;
  • Использовать изоляционные фреймворки (isolation frameworks);
  • Настраивать и выполнять тестовый проект;
  • Анализировать результаты выполненного теста;
  • Использовать методологию TDD при проектировании приложений;
  • Работать с обозревателем тестов (Test Explorer) в среде MS Visual Studio;
  • Использовать покрытие кода;
  • Рассчитывать и анализировать метрики кода;
  • Создавать закодированные тесты пользовательского интерфейса (Coded UI Tests);
  • Создавать отчеты и управлять результатами по объемам протестированного кода.