Блок / Автоматизированное тестирование в системе документооборота - PullRequest
12 голосов
/ 27 сентября 2008

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

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

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

Ответы [ 5 ]

3 голосов
/ 27 сентября 2008

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

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

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

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

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

2 голосов
/ 11 марта 2009

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

1 голос
/ 15 июля 2009

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

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

0 голосов
/ 25 января 2011

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

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

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

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

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

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

0 голосов
/ 09 декабря 2008

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

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

...