Pex: инструмент для автоматического "Whitebox" тестирования для .NET
Pex (Program EXploration) - это новый инструмент (Add-In для Visual Studio) для тестирования кода от Microsoft Research.
Pex анализирует программный код и автоматически генерирует необходимое количество юнит-тестов. Результатом явлется привычный Visual Studio unit test проект с высоким процентом покрития кода (теоретически 100%).
Pex выполняет систематичный анализ, проверят на граничные условия, а также исключения, которые можно отлаживать. Pex дает возможность выполнять Parameterized Unit Testing, что, несомненно, снижает затраты на тесрирование.
Рассмотрим работу Pex на примере.
Необходимо протестировать некоторую функцию TestFunction:
public int TestFunction(int i)
{
if (i < 0)
return i;
if (i == 0)
throw new ArgumentException();
if (i > 0 && i < 100)
return i * i;
if (i == 100)
return 999;
return i;
}
Правый клик на методе - вызываем "Run Pex Explorations":
После чего получим следующие результаты:
Как мы видим, Pex правильно определил, что нужно проверить ключевые значения "0", "100", а также граничные значения типа Int32. Процент покрытия кода - 100%.
Также мы можем посмотреть stack trace, details каждого из кейсов, а также сохранить это все как test project и работать с ним напрямую.
Как всегда, хорошие новости для академического сектора: Academic Release можно скачать и использовать бесплатно (в учебных целях конечно)!
Ссылки по теме:
Официальная страница на сайте Microsoft Research "Pex - Automated White box Testing for .NET"
Watch the Channel9 'Getting Started' video
Watch the PDC 2008 talk on Channel9,
Download Pex
Read more documentation
DevLabs Pre-Release (for commercial evaluation)
Скачать пример String Capitalize Solution
Скачать пример Named Format String Solution
P.S. Кроме того, есть еще проект под названием Pex Extensions, который доступен на сайте CodePlex.
N.B. Так что можно смело добавлять еще один инструмент вот сюда.
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |