2008-08-28 3 views
2

Я кодирую клиент-серверное приложение с использованием RCP Eclipse. У нас возникли проблемы с тестированием взаимодействия между двумя сторонами , так как они содержат много графического интерфейса и не предоставляют никакой командной строки или другого удаленных API.Тестирование клиент-серверного приложения

Есть идеи?

ответ

3

У меня около 1,5 лет опыта работы с каркасом RCP, мне очень понравилось. Мы просто JUnit для тестирования ...

Это своего рода клише, но если это непросто проверить, может быть, дизайн нуждается в рефакторинге?

Java и RCP framework обеспечивают отличные возможности для сохранения кода GUI и логического кода отдельно. Мы использовали шаблон MVC с наблюдателем, наблюдаемые конструкции, доступные в Java ...

Если вы не знаете о конструкторе наблюдателя/наблюдаемого, который находится на Java, я бы настоятельно рекомендовал вам взглянуть на это: http://www.javaworld.com/javaworld/jw-10-1996/jw-10-howto.html, вы будете использовать его все время, и ваши приложения будут легче протестировать.

1

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

Если это совершенно невозможно, я бы настроить тестовый прокси-сервер, на котором вы сможете:

  • ничего не делать (прозрачный прокси). Ваше приложение должно вести себя нормально.
  • Шпион/журнал данных. Добавьте механизм фильтра, чтобы вы не захватили все.
  • Заблокировать определенные сообщения. Ваша система фильтрации является очень полезной здесь
  • Коррумпированных конкретными сообщениями (это сложнее)

Если вам нужно какой-тестирования сети:

  • Ограничить общую пропускную способность (некоторые библиотеки делают это)
  • сообщения задержки (то же самое замечание)
  • Изменение порядка пакетов (довольно сложно)
1

Считаете ли вы использование инструмента для тестирования пользовательского интерфейса? Вы можете проверить HP's QuickTest Professional, который охватывает широкий спектр технологий пользовательского интерфейса.

1

Мы разрабатываем одно клиентское серверное приложение с использованием технологии EJB (J2EE), Eclips и MySQL (Database). pl предлагает любой инструмент тестирования с открытым исходным кодом для функционального тестирования. thanks Hitesh Shah

0

Отделите ваше взаимодействие клиент-сервер в чистый логический модуль (или пакет). Протестируйте это отдельно - либо имейте тестовый сервер, либо используйте макетные объекты.

Затем ваши действия пользовательского интерфейса вызывают уровень связи. Кроме того, посмотрите на command design pattern, используя его может помочь вам.