2008-09-05 6 views
5

Хотите получить взять на автоматизированном инструмент тестирования (голосования должны принести хорошие к началу)Автоматизированная модульное тестирование Gen Инструменты для .NET

Идеальный инструмент будет:

  • Устранить необходимость представления набор значений значений для метода.
  • методы применяют такие как Interactive Исследовательское тестирование, где код исследуется для определения, какие значения должны осуществлять весь код пути. т.е. модульные тесты для метода определяются по сложности кода

Например, если метод проверяет, что целочисленный аргумент равен 123, генерируется по меньшей мере 2 модульных теста: один, где этот аргумент равен 123 и один, где это не так.

Для Java я понимаю это некоторые варианты, но не .NET

  • TestGen4J
  • AgitarOne

слышали о Pex - для .NET от Microsoft Research, но это имеет не -Коммерческая лицензия

Thanks

ответ

2

У меня есть пробовал некоторые из этих инструментов на других языках, а ИМХО - это почти полная трата времени. Причина? Они не могут догадываться о семантике вызова метода каким-либо значимым образом. Там очень хорошая статья об этом here - хорошо стоит прочитать.

+0

модульные тесты описывают поведение программного обеспечения и поэтому не могут быть сгенерированы – 2010-10-11 09:49:12

3

Pex позволяет параметризовать модульное тестирование и использует динамическое символическое исполнение (какое-то автоматическое разведочное тестирование) для генерации входных данных. Pex может понять семантику MSIL, т. Е. Любого вызова управляемого метода. В примере «123» Pex найдет оба теста.

Это позволяет разработчикам написать параметризованные модульные тесты - поэтому он полностью вписывается в тестовый первый стиль разработки.

Для коммерческого программного обеспечения Pex требуется лицензия MSDN. Более подробная информация на http://research.microsoft.com/pex

разработчик PEX :)

0

Еще один хороший инструмент, который автоматически генерирует модульных тестов является Randoop.

Randoop доступен для Java (http://mernst.github.io/randoop/) и для .NET (https://github.com/abb-iss/Randoop.NET).

Randoop обнаружил ранее неизвестные ошибки в широко используемых библиотеках, включая Sun и JDK от IBM, а также в основных компонентах Microsoft .NET.

Смежные вопросы