Процесс тестирования ПО, бесспорно, является одним из наиболее важных компонентов на стадии разработки нового веб-продукта. Одновременно с ростом сложности и многогранности программ растет сложность проведения тестирования работоспособности создаваемого программного продукта.
Решить сложные задачи и повысить скорость проверки программных продуктов можно с помощью привлечения инструментов и техник автоматизации тестов.
Самая актуальная задача, возникающая при работе со сложными проектами, кроется в эффективном развертывании необходимых тестовых условий сложной иерархии для эффективного прогона среды, требующей максимально разностороннего подхода. Подобные задачи весьма характерны для продуктов, в которых применяются XML-технологии и SQL-интерфейсы для баз данных, а также большое число других разнообразных программных компонентов.
Любые тестовые данные необходимо готовить для каждого тест-кейса по отдельности. Не нужно постоянно рассчитывать на шаблонные варианты, проще создавать индивидуальные конструкции, в процессе работы над которыми можно не только покрыть тестами достаточное количество значений и логики проекта, но и сделать процесс проверки более эффективным и производительным.
Традиционно в состав тестовых данных входят:
- Реальные тестовые данные: нужно выполнить проверку, соответствует ли система и ее функции установленным требованиям, хранятся ли данные так, как нужно;
- Вымышленные тестовые данные: стоит протестировать, правильно ли система считывает недопустимые значения, выводит верные сообщения для пользователя, говоря ему о том, что данные неверны;
- Пограничные значения;
- Неверные значения данных: необходимость тщательно проверить, как реагирует система на ввод информации в неправильном формате, есть ли данные об ошибках;
- Отсутствие значений: крайне важно протестировать продукт на использование полей без значений, а также прогон приложения при кроссплатформенном тестировании.
Далее мы детализировано рассмотрим, какие имеются на сегодняшний день инструменты для качественной генерации тестовых данных, и какие из них можно по праву считать востребованными продуктами, которые должны быть всегда под рукой умелого и квалифицированного QA.
Databene Benerator
Сегодня в сети можно встретить массу материалов, посвященных нагрузочному и юнит тестированию. Каждый пытается писать тесты, программный код создается только через TDD на основе jmeter/ab.
Но, как известно, любое тестирование, так или иначе, связанно с тестовыми данными. А их в обязательном порядке нужно правильно генерировать и создавать.
И да, в юнит тестировании проблема не стоит остро, а вот как быть с нагрузочным тестированием, где нужно проверить работу 1 или 10 миллионов возможных объектов?
На сцену выходит Databene Benerator. С его помощью можно добиться сразу 2 целей: правильно сгенерировать тестовые данные и максимально анонимно их «законсервировать».
Утилита работает на основе составленной вами XML-карты для быстрой генерации XML/CSV файлов прямиком в базу данных.
Поддерживает такие базы:
- DB2;
- Oracle;
- MS SQL Server;
- Derby;
- H2;
- PostgreSQL.
Созданный сценарий являет собой набор специализированных тегов, где тестировщик может внести сущности того, как именно будут создавать данные. На слух все просто, но есть некоторые особенности.
Плюсы использования:
- Все сгенерированные данные находятся в одном месте, в одном формате. Команды запускаются исключительно через 1 операцию;
- Для работы с программой не обязательно в идеале владеть языками программирования. К тому же область применения практически неограниченна;
- Быстрота составления сценария + скорость смены данных. Большое число встроенных функций, с помощью которых можно качественно и быстро покрыть до 80% кейсов проекта, и все это пройдет быстрее, нежели ждать пока будут готовы написанные скрипты.
Минусы:
- Специфический синтаксис;
- Непостоянная поддержка сообществ. Даже на Stack Overflow мало информации.
Datatect
Особенности этой утилиты:
- Применяет ODBC, для мгновенной генерации информации в любой удобный источник данных ODBC. Отлично подходит для базы данных в MS Access, Oracle, SQL;
- Функции расширения через VBScript. Позволяет создавать ключи в различных блоках генерации тестовой информации, для оптимального расширения возможности представленной утилиты;
- Оптимальное взаимодействие между ключами, когда столбцы внешнего ключа запрограммированы на «вытягивание» ключей их родительского списка или таблицы.
DTM Data Generator
Являет собой мультисовременный продукт, рассчитанный для разработчиков и тестировщиков, которые ответственны за управления качеством на проекте. Данная утилита является одним из безоговорочных лидеров на рынке быстрой автоматизации тестовых данных.
С помощью данного инструмента можно не только существенно сэкономить время на тестирование, но и повысить уровень реалистичности и качество разрабатываемых проектов.
Что интересно, разработчики DTM Data Generator всегда идут навстречу пользователям и постоянно стараются совершенствовать продукт именно так, как хотят этого клиенты.
Главная «фишка» утилиты – функция распознавания зависимости между родительскими и дочерними таблицами. Также Data Generator умеет распознавать установленные свойства check constrains для определенной группы популярных СУБД.
Данные возможности позволяют создавать генерацию тестовых данных качественной и понятной при дальнейшем использовании.
Кроме того, отдельно можно выделить:
- Функция Wizard – быстрое создание нужных правил генерации тестов;
- Работа с шаблонами для генерации тестовых данных – качественный инструмент для разработки сложных и многоуровневых значений внутри одной базы;
- Возможность генерации SQL сценария, отвечающего тестовым значениям.
EMS Data Generator for MySQL
Эта утилита являет собой производительную программу для быстрой генерации тестовой информации в базу данных MySQL с последующей функцией сохранения и редактирования написанных сценариев.
Этот инструмент позволяет взаимодействовать с разнообразными видами генерации, анализировать данные с консольного приложения и максимально автоматизировать процессы создания генерации тестов.
Структурно можно выделить следующие особенности данного приложения:
- Работа на основе кодировки Unicode;
- Взаимодействие с легко понятным внешним интерфейсом меню параметров;
- Оперирование созданными группами информации в сценарии SQL без функции выполнения запросов на стороне сервера;
- Создание таблиц для группы баз данных;
- Работа над поддержкой сразу нескольких видов данных MySQL;
- Круглосуточная поддержка.
dbForge Studio for SQL Server
Корпорация Devart выпустила довольно популярный инструментарий dbForge Studio for SQL Server, предоставляющий собой полезную утилиту для быстрой генерации тестовых данных, а также возможность быстрого сравнения информации и схем с разных БД.
Этот генератор данных – полезный инструментарий, помогающий разработчикам и тестировщикам, оказывающим услуги тестирования ПО быстро и удобно наполнять требуемые таблицы на SQL Server необходимыми данными:
- Мгновенная разработка большого числа тестируемых данных;
- Многошаблонная настройка нужных параметров для каждого вида таблиц;
- Оперативный просмотр тестовой информации;
- Возможность моментального экспорта информации в SQL-скрипт.
Ruby-plsql-spec
Специализированный фреймворк для проведения юнит-тестирования SQL с применением Ruby. В состав утилиты входят две библиотеки:
- Ruby-plsql;
- Фреймворк BDD.
SeLite
Данная утилита является современным расширением в семействе инструментов Selenium. Базовая суть – постоянная возможность оперировать базой данных, которая основывается на SQlite и максимально изолирована от приложения.
Работая с SeLite, вы сможете находить важные ошибки на сервере, а также делить скрипты между созданными тестами и работать с мгновенными снимками.
Приложение взаимодействует с такими базами: PostgreSQL, MySQL и SQLite.
Прочие программы
Остальные сегодняшние инструменты, такие как DBMonster, Turbo Data, Data Generator, позволяют комплексно обеспечивать заполнение таблиц базы данных значительным числом корректных данных.
В их возможности также входит:
- Автоматизированная генерация случайных значений с функцией задания интервала для числовых видов, формат строки и тип генерируемых значений;
- Создание значений из списка с технической функцией указать процентное соотношение каждой строки кода из всего перечня сгенерированных строк;
- Создание данных методом выбора из других таблиц или значений;
- Создание базы данных с параметрами выбора значений из предоставленного файла;
- Создание группы данных с автоматическим ростом значения, при указании начального значения и его последующего роста;
- Поиск данных для определенных таблиц;
- Поиск значений для таблиц в зависимости от желания пользователя самостоятельно создавать свои собственные процедуры проверки.
Есть группа инструментов, к примеру – AGENDA и HTDGen, которые могут генерировать данные не только на базе установленных ограничений, но и при использовании SQL-запросов внутри тестируемого продукта. Такой подход дает определенную гарантию того, что созданные SQL-запросы не будут возвращать пустые значения.
То есть при использовании подобного рода технологий и инструментов, компания по тестированию ПО может обещать полноценное тестирование ветвей продукта только на основании детализированного перебора всех доступных комбинаций и полей, в зависимости от которых и происходит фильтрация значений в программе.
Оставить комментарий