Автоматические модульные тесты Gen Tools для .NET - PullRequest
5 голосов
/ 05 сентября 2008

Хотите получить свой инструмент автоматического тестирования (голосование должно привести к хорошим результатам)

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

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

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

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

  • TestGen4J
  • AgitarOne

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 17 сентября 2008

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

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

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

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

2 голосов
/ 06 сентября 2008

Я пробовал некоторые из этих инструментов на других языках, и имхо, они почти пустая трата времени. Причина? Они не могут догадаться о семантике вызова метода каким-либо значимым способом. Здесь есть очень хорошая статья об этом здесь , которую стоит прочитать.

0 голосов
/ 06 июня 2015

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

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

)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...