Должны мы веб-сервис модульного теста?

Первый подход оптимален, только если оптимальный путь к любому повторному состоянию является всегда первым, чтобы сопровождаться. Это свойство содержит, если эвристическая функция имеет свойство [1 115] непротиворечивость (также названный monoticity). Эвристическая функция последовательна, если, для каждого узла n и каждый преемник n' из n, ориентировочная стоимость достижения цели от n не больше, чем стоимость шага получения к n' от n плюс ориентировочная стоимость достижения цели от n.

второй подход оптимален, если эвристическая функция просто допустима, то есть, это никогда не переоценивает стоимость для достижения цели.

Каждая последовательная эвристическая функция также допустима. Хотя непротиворечивость является более строгим требованием, чем допустимость, нужно вполне упорно работать для фабрикации эвристических функций, которые допустимы, но не последовательны.

Таким образом, даже при том, что второй подход является более общим, поскольку он работает со строго большим подмножеством эвристических функций, первый подход обычно достаточен на практике.

Ссылка: подраздел * поиск: Уменьшение общего предполагаемого решения стоило в разделе 4.1 Информированных (Эвристических) Поисковых Стратегии из книги Искусственный интеллект: современный Подход .

13
задан Kevin LaBranche 20 August 2009 в 20:40
поделиться

8 ответов

Модульное тестирование кода, вызываемого веб-службой, определенно является хорошей идеей, поскольку оно гарантирует стабильность (и хорошо продуманную конструкцию) «внутренней части» вашего кода. Однако также рекомендуется проверить вызовы веб-службы, особенно если несколько из них вызываются последовательно для выполнения определенной задачи. Это обеспечит возможность использования предоставленных вами веб-служб, а также их правильную работу при вызове вместе с вызовами других веб-служб. (Не уверен, что вы пишете эти тесты до или после написания кода, но вам действительно стоит подумать о написании тестов веб-сервисов перед реализацией фактических вызовов, чтобы убедиться, что они пригодны для использования, до написания кода, стоящего за ними.)

11
ответ дан 1 December 2019 в 22:08
поделиться

Почему бы не сделать и то, и другое? Вы можете выполнить модульное тестирование кода веб-службы, а также выполнить его модульное тестирование с точки зрения клиента веб-службы.

5
ответ дан 1 December 2019 в 22:08
поделиться

Тестировать API веб-службы легко (у него есть API) и полезно. Однако это не модульный тест - это «интеграционный», «подсистемный» или «системный» тест (зависит от того, кого вы спросите).

Нет необходимости откладывать тестирование до некоторого волшебного периода, называемого «интеграция» тестирование ", просто проведите несколько простых тестов сейчас и сразу же воспользуйтесь преимуществами.

1
ответ дан 1 December 2019 в 22:08
поделиться

Мне нравится идея написания модульных тестов, которые вызывают вашу веб-службу через один из ее общедоступных интерфейсов. Например, данная веб-служба WCF может предоставлять привязки HTTP, TCP и «веб». Такие модульные тесты доказывают, что веб-сервис может быть вызван через привязку .

Интеграционное тестирование будет включать тестирование всех привязок сервиса, тестирование с конкретными клиентскими сценариями, и с определенными клиентскими инструментами. Например, было бы важно показать, что клиент Java может быть создан с помощью IBM Rational Web Developer, который может обращаться к службе при использовании WS-Security.

1
ответ дан 1 December 2019 в 22:08
поделиться

Если можете, попробуйте использовать вашу веб-службу с помощью некоторых инструментов разработки, которые будут использовать ваши клиенты (Delphi, C #, VB.Net, ColdFusion, созданный вручную XML и т. Д.). В разумных пределах, конечно.

1) У различных инструментов могут возникнуть проблемы с использованием вашего веб-сервиса. Лучше вам столкнуться с этим до того, как это сделают ваши клиенты.

2) Если клиент столкнется с проблемой, вы можете легко доказать, что ваша веб-служба работает должным образом. За последний год или около того это перестало указывать пальцем в нужное русло, по крайней мере, дюжину раз.

Хуже всего был разработчик, работавший в другом часовом поясе, который вручную создавал XML для вызовов SOAP и анализировал ответы. Каждый раз, когда он сталкивался с проблемой, он настаивал, что это наша сторона, и требовал (серьезно), чтобы мы доказали обратное. Я сделал очень простое приложение Delphi для использования веб-службы,

1
ответ дан 1 December 2019 в 22:08
поделиться

относительно вашего обновленного вопроса.

Интеграционное тестирование и модульное тестирование только внешне похожи, так что да, их следует проводить и продумывать отдельно.

Реорганизация существующего кода, чтобы сделать это testable может быть рискованным. Вам решать, перевешивают ли выгоды время и усилия, которые потребуются. В моем случае я бы непременно попробовал, даже если вы будете делать это понемногу.

С другой стороны, веб-сервис имеет определенный интерфейс, поэтому вам не нужно ничего менять, чтобы добавить интеграционное тестирование. Сходить с ума. Если можете, попробуйте сделать это до того, как развернете веб-службу для клиентов. Есть большая вероятность, что использование веб-службы приведет к изменениям в интерфейсе, и вы не хотите, чтобы это слишком запутало клиентов.

0
ответ дан 1 December 2019 в 22:08
поделиться

По моей концепции, WS - это просто инкапсуляция метода объекта центрального бизнес-уровня, другими словами, веб-метод - это просто «ворота» для доступа к методам, находящимся на более глубоком уровне. модель.

С учетом первого, я выполняю обе операции:

  1. Внутри сервера я создаю приложение Winform, которое выполняет нагрузочное тестирование по методу бизнес-уровня.

  2. Вне сервера (а именно, машина вне сервера). LAN, в которой «живет» веб-приложение), я создаю тестер (Winform или Web), который использует WS, выполняя таким образом нагрузочное тестирование.

Таким образом я могу оценить производительность своего решения, учитывая и отбрасывая «Интернет». Эффект »(т.е. время прохождения данных и достижения WS, создание объекта WS и т. Д.).

Все вышесказанное, конечно, ИМХО. По крайней мере, мне это очень помогло!

Хадж .-

2
ответ дан 1 December 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: