РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ЯЗЫКЕ AUTOIT ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ GUI ИНТЕРФЕЙСА ПРОГРАММНОГО ПРОДУКТА

SOFTWARE DEVELOPMENT IN AUTOIT LANGUAGE FOR AUTOMATED GUI TESTING OF SOFTWARE PRODUCT INTERFACE

Введение

Статья покажет лишь начальное тестирования GUI другой программы (к коду, которого мы не имеем доступа), так как развернутое тестирование займет очень большое количество страниц. Для разработки наглядного примера использования аудита используется язык программирования AutoIt — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows [2]. Согласно стандартному глоссарию терминов ISTQB (версия 2.0 от 4 декабря 2008), тестирование – процесс, содержащий в себе все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки программного продукта и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они подходят для заявленных целей и для определения дефектов. Данная статья является актуальной для малых и крупных компаний, так как при покупки либо создании программ, может произойти так, что программа не выполнена до конца либо не стабильно работает что может привести к большим затратам ресурсов, поэтому требуется окончательная проверка что бы убедиться в надежности, стабильности и безопасности программы.

 

Ряд требований к программному продукту:

1)      Тестирование GUI интерфейса, проверка каждой кнопоки, и всего функционала;

2)      Проверка соединения, к серверу;

3)      Ошибки (Error), записывать в отдельный журнал, после каждого запуска тестера, он должен перезаписываться;

4)      Успех/Ошибки (Error/Ok), пошагового выполнения, записывать в отдельный журнал, после каждого запуска тестера этот журнал так же должен очищать;

5)      Журнал истории тестирования (History the test), где хранятся все ошибки, успехи, количество запуска тестера. Этот журнал не очищается;

6)      Возможность каждый журнал удалить, и создавать новый, во время тестирования.

 

Программа для пользователей

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

 http://meridian-journal.ru/uploads/2020/02/3862-1.PNG

Рисунок 1 – авторизация пользователя для тестирования

 

Программа имеет в себе два вида пользователей:

1)      Обычные пользователи;

2)      Супер-администраторы.

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

 

Рисунок 2 – рабочая область программы

 

Разработка графического интерфейса

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

#include <GUIConstantsEx.au3> - Для GUI;

#include <WindowsConstants.au3> - Для GUI;

#Include <GuiButton.au3> - Для GUI;

#Include <EditConstants.au3> - Для Edit формы;

#Include <GUIConstants.au3> - Создание формы GUI;

#Include <File.au3> - Для работы с файлами;

#Include <Date.au3> - Работа со временем компьютера. Пригодиться для обозначения возникновения ошибок, в период какого-то времени.

Заранее можно создать переменные, которые пригодятся для работы с файлами. Удобство обозначения переменных в том, что в начале каждая переменная подстраивается под обозначения, то есть каждый раз писать тип данных как int, string, var и другие, не обязательно.

Global $a..$b = 0 - переменные счетчик, которые будут номеровать ошибки в текстовых файлов.

Код будет выглядеть следующим образом:

$Form1 = GUICreate("Тестр Тихомиров Попова Увакин ©.",447,520,-1,-1,-1,-1)

GUICtrlCreateLabel("Входные данные:",19,15,228,26,-1,-1)

GUICtrlSetFont(-1,15,400,0,"Times New Roman")

GUICtrlSetColor(-1,"0xFF0000")

GUICtrlSetBkColor(-1,"-2")

$Button1 = GUICtrlCreateButton("Путь к программе",312,55,102,30,-1,-1)

$Put = GUICtrlCreateInput($text,33,61,260,20,-1,BitOr($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))

$TCP = GUICtrlCreateInput($IP,55,116,72,20,-1,BitOr($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))   ;IP GUI

GUICtrlCreateLabel("IP:",33,119,18,15,-1,-1)                                                                                            ;IP LABLE

$Llog = GUICtrlCreateInput($Log,184,116,72,20, $ES_READONLY,BitOr($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))

GUICtrlCreateLabel("Login:",141,119,40,15,-1,-1)

$Pas = GUICtrlCreateInput($Password,339,116,72,20, 0x0820, BitOr($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))

GUICtrlCreateLabel("Password:",274,119,54,15,-1,-1)

GUICtrlCreatelistview("",10,180,420,4,-1,$WS_EX_CLIENTEDGE) ;/////-Разделитель

GUICtrlCreateLabel("Выходные данные и очистка журналов:",19,197,500,26,-1,-1)

GUICtrlSetFont(-1,15,400,0,"Times New Roman")

GUICtrlSetColor(-1,"0xFF0000")

GUICtrlSetBkColor(-1,"-2")

$Button2 = GUICtrlCreateButton("№3.История Теста",299,236,111,44,-1,-1)

$Button3 = GUICtrlCreateButton("№2.Ошибки",168,236,111,44,-1,-1)

$Button4 = GUICtrlCreateButton("№1.Ошибки\Удача",33,236,111,44,-1,-1)

$Button6 = GUICtrlCreateButton("Очистить",100,339,260,40,-1,-1)

GUICtrlSetImage(-1, @ScriptDir & "\Иконка\Gloss.ico")

$CheckBox1 = GUICtrlCreateCheckbox("№1",78,297,43,20,-1,-1)

$CheckBox2 = GUICtrlCreateCheckbox("№2",212,297,41,20,-1,-1)

$CheckBox3 = GUICtrlCreateCheckbox("№3",341,297,41,20,-1,-1)

GUICtrlCreatelistview("",10,400,420,4,-1,$WS_EX_CLIENTEDGE) ;/////-Разделитель

GUICtrlCreateLabel("Тестирование:",19,415,228,26,-1,-1)

GUICtrlSetFont(-1,15,400,0,"Times New Roman")

GUICtrlSetColor(-1,"0xFF0000")

GUICtrlSetBkColor(-1,"-2")

$Button5 = GUICtrlCreateButton("Начать Тест",80,455,300,40,-1,-1)

GUICtrlSetImage(-1, @ScriptDir &  "\Иконка\x33.ico")

GUISetState(@SW_SHOW)

HotKeySet("{PAUSE}", "TogglePause")

HotKeySet("{ESC}", "Terminate")

 

После компиляции (сборки кода программы):

 

Рисунок 3 – графический интерфейс тестера

Ведение ошибок в тестере

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

 

Таблица №1 номера возможных ошибок

№ Ошибки

Описание

Решения для исправления

 

Самостоятельное тестирование

 

0x101

Во время тестирования произошел обрыв с сервисом.

См. Указание №1,№2,№3.

0x102

Ошибка подключения к серверу.

См. Указание №1,№2, №3.

0x103

Кнопка повторного подключения.

См. Указание №1,№2.

0x104

Кнопка отмены не работает.

См. Указание №1,№2.

0x105

Кнопка входа не работает, либо не правильный логин или пароль или произошёл обрыв с сервисом.

См. Указание №1,№2,№3.

0x106

Кнопка перелогиниться.

См. Указание №1,№2.

0x107

Кнопка База данных пользователей.

См. Указание №1,№2.

0x108

Кнопка База данных паролей.

См. Указание №1,№2.

0x109

Наличие окна Network passwords storage, ТЕСТ ПРЕРВАН.

См. Указание №1,№2.

 

Указание №1 - Данная ошибка связано с разработкой, для её решение нужно обратиться к разработчику приложения.

Указание №2 - Перезагрузите программу, и сервис.

Указание №3 - Проверьте сеть между сервером. Возможно ошибка в сети.

 

Заключение

Программа тестирования индивидуальна, поэтому подходит только для определённой программы. Плюсы разработки — это постоянное тестирование нужной программы, что дает постоянный тонус тестирующей программы. Недостатки программы, следующие: если во время визуального тестирования произойдёт обрыв, этот момент нужно запомнить, и заново начинать тестирования. Работа со стороны, посредством вопросов. Если имя в образе совпадёт, начнётся проверка не нужной программы. Разработанная программа доступна для свободного скачивания по адресу:  https://drive.google.com/open?id=1R0Du1gQ30lvZnz_jPsv-eqmYfBupx39O.

 

Список литературы

  1. Forum russkogo soobshhestva AutoIt. URL: http://autoit-script.ru/ (Data obrashhenija 12.03.2020)
  2. Andy Flesner. Autoit v3: your quick guide. – "O'Reilly Media, Inc.", 2007. 56p.
  3. Fedorova G.V. Informacionnye tehnologii buhgalterskogo ucheta, analiza i audita Izdatel'stvo: Omega-L, 2004. - 303.
  4. Kaner Kem, Folk Dzhek, Nguen Eng Kek. Testirovanie programmnogo obespechenija. Fundamental'nye koncepcii menedzhmenta biznes-prilozhenij. Izdatel'stvo «DiaSoft», 2001. — 544 s
  5. Lekcii V. V. Kuljamina. Metody avtomatizacii testirovanija.