Здравствуйте!
Подскажите, пожалуйста, насколько оправдана идея написания собственного тестового контура для тестирования отдельной dll (около двух десятков функций и больше сотни входных аргументов) по сравнению с применением автоматизированных средств? Хотелось бы тестировать dll, вызывая ее экспортируемые функции в разном порядке и подавая на их входы различные комбинации значений аргументов. И есть ли вообще такое ПО?
Цель тестирования — убедиться в функционировании dll на нескольких типичных наборах данных перед интеграцией ее в состав проекта.
Здравствуйте, Othello, Вы писали:
O>http://ru.wikipedia.org/wiki/Юнит-тестирование
O>Внизу есть список программных средств.
Спасибо за быстрый ответ.
Как я понял, юнит-тестирование с использованием CPPunit и т.п. предполагает предварительную модификацию текста проекта. Но дело в том, что мне было бы удобнее тестировать dll-ку как готовый бинарник, как "черный ящик", для которого известны только прототипы экспортируемых функций. Чем тут может помочь юнит-тестирование?
Здравствуйте, moorgeist, Вы писали:
M>Здравствуйте, Othello, Вы писали:
O>>http://ru.wikipedia.org/wiki/Юнит-тестирование
O>>Внизу есть список программных средств. M>Спасибо за быстрый ответ. M>Как я понял, юнит-тестирование с использованием CPPunit и т.п. предполагает предварительную модификацию текста проекта. Но дело в том, что мне было бы удобнее тестировать dll-ку как готовый бинарник, как "черный ящик", для которого известны только прототипы экспортируемых функций. Чем тут может помочь юнит-тестирование?
Зачем модфицировать проект ? Я не использовал CPPunit, к сожалению, и не знаю как в нём. Но, например, в NUnit — тест может быть самостоятельной библиотекой — с самими тестами (вызовы функций в разном порядке с аргументами правильными и не правильными) — которые вы сами и пишите. И ваша DLL выглядит вполне чёрной. И тест в релиз не включается. По крайней мере — я так делаю — можно конечно всё напихать до кучи.
А ссылку я привёл — потому, что там есть список программных средств.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как протестировать отдельную dll?
От:
Аноним
Дата:
05.09.07 12:39
Оценка:
Здравствуйте, moorgeist, Вы писали:
M>Здравствуйте, Othello, Вы писали:
O>>http://ru.wikipedia.org/wiki/Юнит-тестирование
O>>Внизу есть список программных средств. M>Спасибо за быстрый ответ. M>Как я понял, юнит-тестирование с использованием CPPunit и т.п. предполагает предварительную модификацию текста проекта. Но дело в том, что мне было бы удобнее тестировать dll-ку как готовый бинарник, как "черный ящик", для которого известны только прототипы экспортируемых функций. Чем тут может помочь юнит-тестирование?
Вообще-то модульное тестирование (unit test) — это и есть тестирование модуля
по черному ящику. Твоя dll — это и есть модуль в твоем случае.
Тестировать функции, передавая в нее случайные параметры, конечно можно.
Но максимум, что ты сможешь так обнаружить — это грохается твоя dll или нет.
dll может вполне себе стабильно работать, но выдавать неверные результаты.
Потому тесты надо писать ручками имея под рукой спецификации,
чтобы бы можно было сказать, что верно, а что неверно.
Здравствуйте, moorgeist, Вы писали:
M>Как я понял, юнит-тестирование с использованием CPPunit и т.п. предполагает предварительную модификацию текста проекта. Но дело в том, что мне было бы удобнее тестировать dll-ку как готовый бинарник, как "черный ящик", для которого известны только прототипы экспортируемых функций. Чем тут может помочь юнит-тестирование?
Юнит-тестирование — мало чем, а вот frameworks изначально предназначенные для юнит-тестирования можно использовать и для вашего случая. Линкуйте вашу dll с тестовым проектом и вызывайте её функции в теле теста.