Научная статья на тему 'Инструмент управления тестовыми данными'

Инструмент управления тестовыми данными Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
189
73
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТЕСТОВЫЕ ДАННЫЕ / АВТОМАТИЗИРОВАННЫЕ ТЕСТЫ / УПРАВЛЕНИЕ ТЕСТОВЫМИ ДАННЫМИ / ОБЕСПЕЧЕНИЕ КАЧЕСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / ИНСТРУМЕНТ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ / TEST DATA / AUTOMATED TESTS / TEST DATA MANAGEMENT / SOFTWARE QUALITY ASSURANCE / AUTOMATED TESTING TOOL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кунгуров Д.Е., Шульга М.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Testing Data Management Tool

When developing software, testing takes one of the key places and is necessary to ensure the best quality of the manufactured product. Test data directly affects test success and is an important artifact. Today there are a small number of tools for working with test data, which, in turn, are paid or do not fully or partially fit the solution of the problems that have been set, which leads engineers to develop their own solutions or integrate with existing ones. The purpose of this article is to demonstrate the test data management tool.

Текст научной работы на тему «Инструмент управления тестовыми данными»

1п1е11гс1ыа1 Technologies оп ТтитроН. 2019. N0 2

Инструмент управления тестовыми данными

студент магистратуры Д.Е. Кунгуров, студент магистратуры М.В. Шульга Петербургский государственный университет путей сообщения Императора Александра I

Санкт-Петербург, Россия decokungurov@mail.ru, maxvik2507@gmail.com

Аннотация. При разработке программного обеспечения тестирование занимает одно из ключевых мест и является необходимым для обеспечения наилучшего качества выпускаемого продукта. Тестовые данные напрямую влияют на успех в тестировании и являются важным артефактом. На сегодняшний день существует небольшое количество инструментов для работы с тестовыми данными, которые в свою очередь являются платными либо не подходят полностью или частично к решению поставленных задач, что принуждает инженеров к разработке собственных решений или к интеграции с существующими. Целью данной статьи является демонстрация инструмента управления тестовыми данными.

Ключевые слова: тестовые данные, автоматизированные тесты, управление тестовыми данными, качество программного обеспечения, инструмент автоматизированного тестирования.

Введение

Тестирование программного обеспечения — процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта [1, с. 8].

Автоматизированное тестирование — это отдельная дисциплина искусства тестирования. Значительная часть эффективности работы отдела тестирования зависит от того, какие задачи отданы для автоматизации и как эта автоматизация была осуществлена. Автоматизация может как принести огромное облегчение всем тестировщикам, так и завалить работу всего отдела и отложить релиз, премию, отпуск и другие приятные вещи [2, с. 166].

При проектировании тестов наиболее ресурсоемкая часть — это подготовка тестовых данных. Они зависят от типа и цели тестирования, стадии разработки проекта и т. д. Тестовые данные сами по себе не являются артефактом, но заметно влияют на успех или неудачу теста. Тестирование не может быть выполнено без данных для тестов, а именно:

• входных данных для создания условия;

• выходных данных для оценки требования;

• вспомогательных данных (как предварительное условие для теста).

Поэтому необходимо иметь решение для управления тестовыми данными и их хранения.

Анализ и идея

На сегодняшний день существует небольшое количе -ство инструментов для работы с тестовыми данными, они

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

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

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

Идея инструмента лежит в шаблонах, где будет непосредственно храниться метаинформация и/или тестовые данные разного рода, необходимые для прохождения тестов. Разработанные шаблоны, первый из которых предназначен для зависимых тестовых данных, участвующих в подготовке необходимых условий перед тестом (рис. 1), второй — для тестовых данных, участвующих в тесте (рис. 2), имеют гибкую структуру и хранятся в файлах формата .json.

Под гибкой структурой понимается следующее: можно удалять ненужные узлы в файле или добавлять новые, удалять или добавлять значения в узлах; также наименования являются регистронезависимыми. Данные шаблоны преобразуются, и на выходе пользователь получает объекты, которые предоставляют набор различных методов для работы с тестовыми данными.

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

"FILE": С

Î I {

i "IDENTIFIER": "".

"FILE*: "I "SRC_PATH": "D5T_PATH": '", "PARAMETERS": ; '/

» J

10 ], 11 "SQL" : [

И f

"IDENTIFIER"r "",

11 "SQl": [],

"PARAMETERS" : \}

16 I }

j,

15 "OBJECT": [

19 I I

38 "IDENTIFIER": "", SI "OBJECT": £f.

33 "PARAMETERS"; О

23 I Í

It ],

25 "4U>": [ 36 I {

23 "IDENTIFIER": "*.

26 "DATA": {}r

39 "PARAMETERS" : 1 '(

IS I f

31 ]

12 1

3 "': [

3 I 1

"CONFIGURATION": { "IDENTIFIER": "", "DESCRIPTION": "МИНЕТЕ RS": H

6 h

"Sdl*: E

a I {

"IDENTIFIER":

2 "Sdt-QUERIES': (}. "PARHKEIEBS": f)

4 h 5 ],

"EXPECTED": Q

7 M {

"ÉNVIRONMENT" : "", "IDENTIFIER": "'. S "EXPECTED": [Ш

1 N}

3 h.

"DATASETS": [

' I 1

"IDENTIFIER": "". "DATASETS" : [(}]

7 Ii

a ]

5 t

a J

31 I

На первом шаге пользователь берет соответствующий шаблон и вносит всю необходимую информацию (подготовка тестовых данных). Данный файл будет иметь название testing-datajson (рис. 4).

"CONTEXT": i {

"CONFIGURATION": { "IDENTIFIER": "EXAMPLE",

"DESCRIPTION": "ПРОТЕР ТОЛЬКО С CONFIGURATION", "PARAMETERS": { "SOMETHING": "SOMETHING"

}

>

>

J

Рис. 4. Файл testing-data.json

Рис. 1. Шаблон зависимых тестовых данных

Рис. 2. Шаблон тестовых данных

Системные требования

Для работы с инструментом необходимы следующие требования:

• Java версии 8 и выше;

• TestNG;

• Apache Maven.

TestNG — это тестовый фреймворк, вдохновленный JUnit и NUnit, но вводящий некоторые новые функции, которые делают его более мощным и легким в использовании [3].

Провайдер данных (data provider) — один из способов передачи параметров в тестовые методы. Data Provider — это метод в вашем классе, который возвращает массив массивов объектов. Этот метод аннотирован @DataProvider [4].

Apache Maven — это инструмент управления и понимания программного обеспечения. Основываясь на концепции объектной модели проекта (POM), Maven может управлять сборкой проекта, составлением отчетов и документацией из центральной части информации [5].

Быстрый старт

Рассмотрим пример работы с данным инструментом. Пользователю необходимо проделать три простых шага.

Для начала установим инструмент, для этого нужно добавить зависимость в pom.xml (рис. 3).

<dependency?

<g roupld>ru.mts.qa.tools</g roupld> <artifactld>testing-data-fflanipulation-tool</artifactld> <vers ion>l■2■0</version> </dependency>

Рис. 3. Добавление зависимости

На втором шаге пользователь создает провайдер данных, используя класс TDMTTestCaseContext (рис. 5).

class DataProvider {

@org.testng.annotations,DataProvider public Iterator<Object[]> getTestCaseContext(Method method) { return TOMTTestC a s eCo n t ext. g et Da t a P rov itie r (met hod). iterator!);

}

Рис. 5. Создание провайдера данных (data provider)

На третьем шаге пользователь создает тестовый метод, где, используя аннотацию TDMTConfiguration для конфигурации, указывает путь к файлу с тестовыми данными (рис. 6). Объект context класса

TDMTTestCaseContext<Map, Map> содержит набор различных методов для централизованного и эффективного управления тестовыми данными.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

class Ex3«pleTest {

pMTCon figurât ion (datapath = "testing-data.json") @Test(dataP™idertlass : DataProvider.class, dataProvider = "getTestCaseContext") public void testlTDMTTestCaseCcintexMap, Hap> context) { <...>

String description = context.getConfigurationO.getttescriptionl);

Рис. 6. Использование инструмента в тестовом методе Заключение

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

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

Литература

1. Куликов С. С. Тестирование программного обеспечения. Базовый курс. — 2-е изд. — Минск : Четыре четверти, 2017. — 312 с.

2. Савин Р. Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах. — М. : Дело, 2007. — 312 с.

3. TestNG Overview // Tutorialspoint. — URL: http://www.tutorialspoint.com/testng/testng_overview.htm (дата обращения 06.05.2019).

4. TestNG. URL: http://testng.org/doc/documentation-main.html (дата обращения 06.05.2019).

5. Maven Documentation. — URL: http://maven.apache.org/ guides/index.html (дата обращения 06.05.2019).

Testing Data Management Tool

Graduate Student D.Ye. Kungurov, Graduate Student M.V. Shulga Emperor Alexander I Petersburg State Transport University Saint Petersburg, Russia decokungurov@mail.ru, maxvik2507@gmail.com

Abstract. When developing software, testing takes one of the key places and is necessary to ensure the best quality of the manufactured product. Test data directly affects test success and is an important artifact. Today there are a small number of tools for working with test data, which, in turn, are paid or do not fully or partially fit the solution of the problems that have been set, which leads engineers to develop their own solutions or integrate with existing ones. The purpose of this article is to demonstrate the test data management tool.

Keywords: test data, automated tests, test data management, software quality assurance, automated testing tool.

References

1. Kulikov S.S. Software testing. Basic course [Testirovanie programmnogo obespecheniya. Bazovyy

kurs], 2nd edition, Minsk, Four Fourths Publishing House, 2017, 312 p.

2. Savin R. Testing Dot Com, or A Guide to the Abuse of Bugs in Internet Startups [Testirovanie Dot Kom, ili Posobie po zhestokomu obrashcheniyu s bagami v internet-startapakh], Moscow, Delo Publ. House, 2007, 312 p.

3. TestNG Overview. Tutorialspoint. Available at: http://www.tutorialspoint.com/testng/testng_overview.htm (accessed 06 May 2019).

4. TestNG. Available at: http://testng.org/doc/docu-mentation-main.html (accessed 06 May 2019).

5. Maven Documentation. Available at: http://maven.apache.org/guides/index.html (accessed 06 May 2019).

i Надоели баннеры? Вы всегда можете отключить рекламу.