Подтвердить что ты не робот

Единица/Автоматическое тестирование в системе документооборота

Выполняете ли вы автоматическое тестирование в сложной системе документооборота типа K2?

Мы строим систему с обширной интеграцией между Sharepoint 2007 и K2. Я даже не могу представить, с чего начать автоматическое тестирование, поскольку рабочий процесс включает в себя несколько пользователей, взаимодействующих с рабочими процессами SharePoint, K2 и пользовательскими веб-страницами.

Кто-нибудь выполнил автоматическое тестирование на сервере рабочего процесса, таком как K2? Это больше усилий, чем стоит?

4b9b3361

Ответ 1

У меня есть аналогичное тестовое приложение для работы с тяжелыми приложениями на основе MOSS. Рабочие процессы в нашем случае основаны на WWF.

Моя идея состоит в том, чтобы издеваться над всем, что вы не можете контролировать из модульных тестов: хранение документов, аутентификация, права и действия пользователей, части рабочих потоков для sharepoint для sharepoint (эти макеты должны быть тщательно протестированы, чтобы отразить поведение действительные компоненты).

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

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

Этот подход, похоже, работает на тривиальных случаях, но я все же должен доказать, что он достоин использовать в реальных рабочих процессах.

Ответ 2

Здесь используется решение. Это простая оболочка вокруг среды выполнения, которая позволяет выполнять одно действие, упрощает передачу параметров, блокирует вызывающий поток до тех пор, пока не будет выполнен рабочий процесс или активность, а также переводит/отменяет исключения, если таковые имеются. Поскольку мой рабочий процесс отправляет или ждет сообщений только через специализированную службу рабочего процесса, я могу издеваться над сервисом, чтобы ожидать определенных сообщений из рабочего процесса и отправлять ему определенные сообщения, и здесь у меня есть настоящие модульные тесты для моего WF! Кредит на технологию принадлежит Майклу Кеннеди.

Ответ 3

Если вы собираетесь выполнять модульное тестирование, Typemock Изолятор - единственный инструмент, который в настоящее время может имитировать объекты SharePoint.

И, кстати, Ричард Феннелл работает над решением для заметок рабочего процесса.

Ответ 4

Мы только что записали приложение, которое контролирует наш рабочий список K2, выбирает из него определенные задачи, заполняет некоторые данные и отправляет задания для завершения. Это позволяет нам выполнять автоматическое тестирование, находить регрессии и прокладывать столько разных путей рабочего процесса за долю времени, сколько потребуется людям. Я бы предположил, что подобная программа может быть написана, чтобы претендовать на роль sharepoint.

Что касается модульного тестирования самих рабочих элементов, мы имеем dll, на который ссылается от k2, который содержит все наше правило линии и логику обработки. У нас нет никакого кода в рабочих процессах k2, на них все ссылаются из этих библиотек. Это позволяет нам легко писать на них единичные тесты для проверки всех отдельных правил линии.

Ответ 5

Я провел автоматическое тестирование интеграции в рабочих процессах K2 с использованием API K2ROM (возможно, SourceCode.Workflow.Client, если вы используете K2 blackpearl).

В основном вы запускаете процесс на тестовом сервере с известным фолио (я генерирую GUID), а затем с помощью API управления удаляю его впоследствии. Я написал вспомогательные методы, такие как AssertAtClientActivity (в основном вызывает критерии ProvideWorkItem).

Используйте параметр IsSynchronous для StartProcessInstance, WorklistItem.Finish и т.д., чтобы соответствующие вызовы методов не возвращались, пока экземпляр процесса не достиг стабильного состояния.

Ожидайте, что тесты будут медленными и иногда выходить из строя. Это не модульные тесты.

Если вы хотите написать модульные тесты для других систем, вы, вероятно, захотите обернуть K2 API.

Посмотрите на Windows Workflow 4 и новые функции рабочего процесса в SharePoint 2010. Вам может не понадобиться K2.