Автоматизированное интеграционное тестирование приложение C++ с базой данных

Что именно мне нужно изучить?

Минимально

  • Java язык
  • Java API , включая JDBC для доступа к базе данных
  • IDE или текстовый редактор + Ant
  • Java EE, в основном, сервлеты и JSP
  • Контейнер сервлетов (например, Tomcat)

Tomcat кажется хорошим веб-сервером для Java.

Он «приличный». Если вы не участвуете в EJB, возможно, вам не нужно будет ничего узнавать. В последнее время Glassfish 3 выглядит довольно круто, но я еще не играл с этим много. Обратите внимание, что это «больше», чем веб-сервер.

Какие параметры существуют для Интернета?

О zillion различных фреймворках , Действительно, выбор одного действительно «трудный».

Я знаю, что для ORM существует спящий режим.

Я несколько против ORM, но Hibernate - это то, что вам нужно, если вам нужен «полный» ORM. Вы также можете попробовать «частичные» ORM, такие как поддержка Spring JDBC или iBatis.

Есть ли у Java MVC? как насчет JSP? могут ли MVC и JSP быть вместе? beans?

Да, большинство веб-фреймворков Java делают MVC. Spring MVC хорош, но я не могу рекомендовать ничего другого (особенно, не Struts 1!). JSP - это всего лишь HTML (или XML) механизм шаблонов. Старая школа JSP, со встроенным кодом Java - uncool; современный JSP с файлами тегов и библиотеками довольно хорош.

Я полагаю, что большинство фреймворков позволят вам использовать JSP для визуализации ваших Vs; Spring MVC и Struts делают. Некоторые также позволят вам использовать что-то еще (Velocity, Freemarker и т. Д.).

Бобы - это просто соглашение для объектов. В основном это означает, что вы используете геттеры и сеттеры (или некоторые альтернативы), и вы выполняете некоторые правила. Это должно позволить вашему объекту манипулировать определенными инструментами. Типичным примером является GUI, некоторые инструменты позволят вам создавать компоненты GUI для редактирования произвольных bean-компонентов (т. Е. Они будут визуализировать форму для редактирования своих полей).

7
задан Peter 17 September 2008 в 20:59
поделиться

6 ответов

Как Вы проверяете результаты?

Если необходимо запросить DB (и он кажется, что Вы, вероятно, делаете) для результатов затем, я соглашаюсь с Крисом K, кроме я пытался бы восстанавливать DB после каждого тестового сценария, не только каждого комплекта.

Это помогает избежать опасных взаимодействующих тестов

Что касается инструментов, я рекомендовал бы CppUnit. Вы действительно не делаете модульных тестов, но это не должно иметь значения, поскольку xUnit платформа должна дать Вам набор и платформу разрушения, необходимо будет автоматически настроить тестовое приспособление

Очевидно, это может привести к медленно рабочим тестам, в зависимости от Вашего размера базы данных, население и т.д. Вы можете присоединять/отсоединять базы данных вместо отбрасывания/восстановления.

Если Вы интересуетесь дальнейшим исследованием, проверяете Тестовые Шаблоны XUnit. Это - прекрасная книга и хороший веб-сайт для такого рода вещи.

И благодарит автоматизировать :)

Nick

3
ответ дан 7 December 2019 в 14:39
поделиться

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

1
ответ дан 7 December 2019 в 14:39
поделиться

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

Для автоматизации тестирования многие люди используют Perl, но мы нашли, что программы Perl растут как Topsy и становятся замысловатыми. Использование Python как язык сценариев (мы запускаем тесты C++) стоит, при попытке создать серию структурированных тестов.

0
ответ дан 7 December 2019 в 14:39
поделиться

Как @Kris K. говорит, что дамп и восстановление базы данных между каждым тестом, вероятно, будут способом пойти.

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

При создании среды тестирования в Java, Вы могли бы использовать в своих интересах JUnit и потенциально даже что-то как FitNesse.

Не думайте, что просто, потому что приложением под тестом является C++, который означает, Вы застреваете с помощью C++ для автоматизированного тестирования.

0
ответ дан 7 December 2019 в 14:39
поделиться

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

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

1
ответ дан 7 December 2019 в 14:39
поделиться

Пожалуйста, попробуйте AnyDbTest, я думаю, что это именно тот инструмент, который вы найдете. ( www.anydbtest.com ).

Особенности:

  • 1. Написание контрольного примера с использованием XML, а не кода Java / C ++ / C # / VB. Не нужны эти дорогие инструменты программирования.

  • 2.Поддерживает все популярные базы данных, такие как Oracle / SQL Server / My SQL

  • 3.Поддержка многих видов утверждений, таких как StrictEqual, SetEqual, IsSupersetOf, Overlaps и RecordCountEqual. и т.д. Кроме того, большинство утверждений может содержать префикс логики, а не оператора.

  • 4. Позволяет использовать электронную таблицу Excel / Xml в качестве источника данных для тестов. Как вы знаете, электронная таблица Excel позволяет легко создавать / редактировать и поддерживать тестовые данные.

  • 5.Поддерживает тестовую модель песочницы, если один тест будет выполнен в песочнице, все операции с базами данных в каждой БД будут откатываться, означая любые изменения. будет отменен.

  • 6. Позволяет выполнять передачу данных из одной базы данных / Excel в целевую базу данных на этапе инициализации и завершения тестирования. Это простой способ подготовить тестовые данные для тестирования.

  • 7. Уникальное перекрестное тестирование баз данных разных типов, что означает, что целевой и эталонный набор результатов могут поступать из двух баз данных, даже одна из которых является SQL Server, а другая - Oracle.

  • 8. Сравнение стилей набора записей. AnyDbTest скажет вам, что является пересечением, или избытком, или отсутствием между двумя наборами записей.

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

  • 10. Позволяет экспортировать набор результатов оператора SQL в файл Xml / Excel.

-1
ответ дан 7 December 2019 в 14:39
поделиться
Другие вопросы по тегам:

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