.NET Test Harness, что он должен иметь
-
23-09-2019 - |
Вопрос
У нас есть компания, занимающаяся разработкой программного обеспечения для проекта, .NET Web Service (WCF), и мы также платим за создание тестового пакета в качестве отдельной оплачиваемой задачи по ежедневной ставке.Я только что присоединился к компании и просматриваю то, что мы получаем от компании-разработчика программного обеспечения, и хотел узнать, что вы, ребята из отрасли, думаете об этом?
По сути, мы получили WinForm, который вызывал w/s, у которого была область ввода (запрос веб-службы), чтобы поместить в наш XML кнопку «Отправить» вместе с областью ответа для результата веб-ответа, и все...Наш внутренний BA создал все документы запросов XML, поэтому в эту систему не было вложено никакой логики.
Покопавшись в сети в поисках определения тестового жгута, я получил следующее: http://en.wikipedia.org/wiki/Test_harness
В нем говорится, что у него должны быть следующие три вещи:
- Автоматизируйте процесс тестирования.
- Выполнять наборы тестовых примеров.
- Создавайте соответствующие отчеты об испытаниях.
Очевидно, что у нас нет ничего из этого, кроме частичной «автоматизации процесса тестирования» через WinForm.
Хорошо, исходя из моего опыта разработки, я ожидал, что кто-то создаст WinForm в качестве тестового пакета 5 лет назад, и действительно должен использовать какой-то инструментарий для этого, я прямо сказал Software House, что ожидаю какого-то инструмента (NUnit, NBUnit, SOAPIU), чтобы мы могли создать пакет регрессионного тестирования для будущего использования.[Не понял, но попросил об этом уже после того, как были подписаны требования, так как тогда я еще не работал :)]
Сможет ли кто-нибудь уточнить у меня, является ли мое требование слишком реалистичным? Я знаю, что если бы я сделал это, я бы использовал NUnit и TDD, а затем повторно использовал бы тестовый комплект в качестве пакета регрессионного тестирования в будущем?
Мне интересно узнать, что думает сообщество.
Ваше здоровье
Обновлено:
Привет, Бениамин, спасибо за ответ, рад видеть, что я не сошел с ума, ну, во всяком случае, пока :) То, что нам дали, - это скорее базовый WinForm для "модульного теста", который я бы использовал в .NET 1.1 " Модульное тестирование», а не тестовое оборудование, за которое мы платим как Заказчик.
Конечно, мы заплатили разработчикам всего за 1 день работы над тестовым набором, но веб-сервис довольно прост, и, судя по разговору с BA, всего было 10 тестов (положительных и отрицательных).
Я думаю, что для WinForm потребовалось бы максимум 2 часа/2 получаса, 30 минут для пользовательского интерфейса и 1 час для добавления веб-ссылки, создания прокси-объекта на стороне клиента и вызова службы и 30 минут для его тестирования.
Я думаю, они могли бы запустить NUnit, создать 10 тестов TestFixture для чтения XML из файловой системы (созданной BA), затем вызвать веб-службу из NUnit и проанализировать результат (пройден/не пройден) с помощью утверждения ответа, ну, это во всяком случае, чего я ожидал :)
Решение
Я думаю, что на самом базовом уровне тестовая программа — это просто небольшая программа, которая позволяет вам протестировать что-то, не имеющее пользовательского интерфейса.Однако базовая программа, которую я мог бы использовать, чтобы увидеть результаты работы моего веб-сервиса по мере ее разработки, — это не та тестовая программа, которую я ожидал бы получить от того, что покупаю.
Если бы я предоставлял набор средств тестирования кому-то другому, я бы, вероятно, сделал гораздо больше, чтобы предоставить серию тестовых примеров, изучить крайние случаи и обеспечить автоматизацию.Таким образом, подобный тестовый пакет будет документировать и давать примеры использования API в сервисе.
В конечном итоге было бы иметь набор тестов NUnit.Особенно если бы я уже написал тестовую библиотеку NUnit, то предоставление этого кода кому-то другому было бы бесплатным и позволило бы четко изучить и задокументировать API.
Итак, я не считаю ваше требование использования автоматизированного тестирования разумным.Но без предварительного определения вы, вероятно, редко получите такое тестовое оборудование.