Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

2. 3 График выполнения проекта




2. 3 График выполнения проекта

В настоящем разделе представлен график выполнения проекта по внедрению автоматизированного тестирования в компанию на проект VBC pro.

Разработка календарного плана выполнения проекта выполнена с использованием средств среды MS Prоject (см. Рисунок 2. 8). Планирование осуществлено с даты начала проекта - 09. 08. 2021, завершение проекта планируется 06. 10. 21, суммарная продолжительность выполнения проекта – 43 дня. Предполагается, что компанией уже принято решение о необходимости внедрения системы.

Жизненный цикл внедрения информационной системы включает в себя следующие этапы:

1. Анализ предметной области (10 дней). В него входит построение модели бизнес-процессов «AS-IS», анализ готовых решений по автоматизации тестирования, а также выбор подходящей программы. Задачей этого этапа является выяснение, как организованы основные процессы в компании, какие виды тестирования используются, какие аппаратные и программные средства необходимы для реализации проекта.

2. Проектирование (9 дней). Он состоит из построения модели бизнес-процессов «TO-BE», формирования технических и функциональных требований к системе, описание регламентов работы с документами и составления технического задания.

3. Разработка и настройка (18 дней). В него входит подготовка к внедрению автоматизированного тестирования, настройку системы Selenium под требования компании и интеграция с другими фреймворками для лучшего взаимодействия с системой. И в завершении этого этапа – обучение ручных тестировщиков.

4. Заключительными этапами являются тестирование системы и её ввод в эксплуатацию, что вместе занимает 6 дней.


 

Рисунок 2. 8 – Диаграмма Ганта проекта внедрения процесса автоматизации ПО в компании ООО «ВБЦ»


2. 4 Модель функционирования ключевых процессов тестирования «TO-BE»

Был реализован полный жизненный цикл внедрения системы автоматизированного тестирования на проекте VBC pro от создания схемы хранения и расширения стандартных методов до запуска и получения отчетов о прохождении тестов.

На рисунках 2. 9 - 2. 12 отображена функциональная модель после внедрения процесса автоматизации тестирования ПО. Разработанная система заметно упростила жизнь ручным тестировщикам. Рутинная работа по многократному ручному прогону тест-кейсов стала редким исключением, так как автотесты в программе Selenium полностью покрывает все регрессионные виды тестирования.

Ниже представлена реализация описанных тест-кейсов в таблицах 2. 1-2. 4. Скрипты созданы с помощью Selenium IDE и экспортированные в Selenium WebDriwer для редактирования и актуализации кода.

Тест «TestLogclient» проверяет возможность авторизации пользователя в личном кабинете клиента.

class TestLogclient():
def setup_method(self, method):
self. driver = webdriver. Chrome()
self. vars = {}

def teardown_method(self, method):
self. driver. quit()

def test_logclient(self):
self. driver. get(" https: //test. vbc. loc/resources/secured/app/entry/login/client" )
self. driver. set_window_size(1532, 758)
self. driver. find_element(By. CSS_SELECTOR, " #email-tab > span" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, " #email-tab > span" )
actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
element = self. driver. find_element(By. CSS_SELECTOR, " body" )
actions = ActionChains(self. driver)
self. driver. find_element(By. ID, " email-input" ). click()
self. driver. find_element(By. ID, " email-input" ). send_keys(" test377@vbc. loc" )
self. driver. find_element(By. ID, " password-input" ). click()
self. driver. find_element(By. ID, " password-input" ). send_keys(" 123" )
self. driver. find_element(By. ID, " email_sign-in-button" ). click()


Рисунок 2. 9 – Модель «TO-BE» деятельности маркетплейса ООО «ВБЦ»

Рисунок 2. 10 – Модель «TO-BE» декомпозиции диаграммы бизнес-процессов ООО «ВБЦ»


Тест «TestBgclient» проверяет возможность подачи заявки Банковской гарантии в качестве клиента.

class TestBgclient():
def setup_method(self, method):
self. driver = webdriver. Chrome()
self. vars = {}

def teardown_method(self, method):
self. driver. quit()

def test_bgclient(self):
self. driver. get(" https: //test. vbc. loc/resources/secured/app/client/home? redir=1" )
self. driver. set_window_size(1532, 765)
self. driver. find_element(By. CSS_SELECTOR, ". cl-nav-menu: nth-child(3) > . cl-nav-menu-link" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". pr-2" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". nav-item: nth-child(1)" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ng-empty" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ng-filled" ). send_keys(" 32110043829" )
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". col: nth-child(1). ng-filled" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". floating-input-required > . ng-dirty: nth-child(1)" ). send_keys(" 7 654 333" )
self. driver. find_element(By. CSS_SELECTOR, ". floating-input-required > . ng-untouched" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". right > . btn" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". right > . btn" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". right > . btn" )
actions = ActionChains(self. driver)
actions. double_click(element). perform()
self. driver. find_element(By. CSS_SELECTOR, ". right > . btn" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ngb-dp-week: nth-child(4) > . ngb-dp-day: nth-child(6) > . btn-light" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". success" )
actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". success" )
actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
element = self. driver. find_element(By. CSS_SELECTOR, " body" )
actions = ActionChains(self. driver)
actions. move_to_element(element, 0, 0). perform()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()


Рисунок 2. 11 – Модель «TO-BE» декомпозиция бизнес-процесса «Подача заявки»


Тест «TestLogoper» проверяет возможность авторизации пользователя в личном кабинете оператора.

class TestLogoper():
def setup_method(self, method):
self. driver = webdriver. Chrome()
self. vars = {}

def teardown_method(self, method):
self. driver. quit()

def test_logoper(self):
self. driver. get(" https: //test. vbc. loc/resources/secured/app/entry/login/oper-or-partner" )
self. driver. set_window_size(1532, 758)
self. driver. find_element(By. ID, " email-input" ). click()
self. driver. find_element(By. ID, " email-input" ). send_keys(" oper@email. ru" )
self. driver. find_element(By. CSS_SELECTOR, ". form-row" ). click()
self. driver. find_element(By. ID, " password-input" ). click()
self. driver. find_element(By. ID, " password-input" ). send_keys(" 123" )
self. driver. find_element(By. ID, " email_sign-in-button" ). click()

Тест «TestBgoper» проверяет валидацию заявки клиента по Банковской гарантии и отправляет квалицированную заявку в банки партнеров.

class TestBgoper():
def setup_method(self, method):
self. driver = webdriver. Chrome()
self. vars = {}

def teardown_method(self, method):
self. driver. quit()

def test_bgoper(self):
self. driver. get(" https: //test. vbc. loc/resources/secured/app. operator/index. html#! /account" )
self. driver. set_window_size(1532, 762)
self. driver. find_element(By. CSS_SELECTOR, ". fa-arrow-right" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". op-nav-menu: nth-child(7) > . op-nav-menu-link" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". open. op-nav-sub: nth-child(4)" ). click()
self. driver. find_element(By. CSS_SELECTOR, " tr: nth-child(2) > td: nth-child(7)" ). click()
self. driver. find_element(By. CSS_SELECTOR, " tr: nth-child(2) > td: nth-child(7)" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, " tr: nth-child(2) > td: nth-child(7)" )
actions = ActionChains(self. driver)
actions. double_click(element). perform()
self. driver. execute_script(" window. scrollTo(0, 0)" )
self. driver. find_element(By. CSS_SELECTOR, ". primary" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". light > . mr-2" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". warning" )
 actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
element = self. driver. find_element(By. CSS_SELECTOR, " body" )
actions = ActionChains(self. driver)
actions. move_to_element(element, 0, 0). perform()
self. driver. find_element(By. CSS_SELECTOR, ". h-100" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". light > . mr-2" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
self. driver. find_element(By. CSS_SELECTOR, " vbc-stop-factor-v2: nth-child(15). border-white > . stop-factor-icon-wrapper" ). click()
self. driver. find_element(By. CSS_SELECTOR, " vbc-stop-factor-v2: nth-child(16). border-white > . stop-factor-icon-wrapper" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". light > . mr-2" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ng-invalid > . p-0. af-success-value" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". light > . mr-2" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". light > . mr-2" )
actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
self. driver. find_element(By. CSS_SELECTOR, ". ng-star-inserted: nth-child(1) > . p-0. ng-fa-icon: nth-child(1) > . svg-inline--fa" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ng-star-inserted: nth-child(2) > . p-0. ng-fa-icon: nth-child(1) > . svg-inline--fa" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". ng-star-inserted: nth-child(3). align-items-center" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". success" ). click()
self. driver. find_element(By. CSS_SELECTOR, ". fa-times" ). click()
element = self. driver. find_element(By. CSS_SELECTOR, ". in-progress" )
actions = ActionChains(self. driver)
actions. move_to_element(element). perform()
element = self. driver. find_element(By. CSS_SELECTOR, " body" )
actions = ActionChains(self. driver)
actions. move_to_element(element, 0, 0). perform()


 

 

 

Рис. 2. 12 – Модель «TO-BE» декомпозиция бизнес-процесса «Рассмотрение заявки»


Испытания автоматизированной системы представляют собой процесс проверки выполнения заданных функций системы, определения и проверки соответствия требованиям технического задания количественных и (или) качественных характеристик системы, выявления и устранения недостатков в действиях системы, в разработанной документации [12].

Регрессивное и модульное тестирование производится по тест-плану, который разработан в программе TestRail. После прохождения автотеста в программе Selenium, результат теста подкрепляется в TestRail, где подробно можно рассмотреть процесс тестирования тест-кейса, а также выгрузить результат в Jira и закрыть задачу, если тест был выполнен успешно. Все упомянутые выше программы интегрированы между собой, что позволяет сократить время на написание отчетов о прохождении тестирования и автоматизировать процесс. На рисунке 2. 13 представлен экран программы TestRail c пройденными тест-кейсами.

Рисунок 2. 13 – Программа TestRail

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...