Pex: инструмент для автоматического "Whitebox" тестирования для .NET

среда, 11 марта 2009, Александр Краковецкий

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 Pex Channel9 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 Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии