Реферат за темою випускної роботи
Зміст
- Вступ
- 1. Актуальність теми
- 2. Мета і завдання дослідження, плановані результати
- 3. Аналіз технологій автоматизованого тестування програм
- 3.1 Побудова сценаріїв тестування ієрархічного віконного інтерфейсу програми
- Висновки
- Список джерел
Вступ
У сучасній IT-сфері великі компанії потребують технологій і засобах перевірки якості розроблюваного програмного продукту. Якісно валідувати новий функціонал програмного забезпечення, писати загальну документацію, тест-плани перевірки функціоналу, критерії входу і виходу з тестування, конкретні тестові випадки для розроблюваного функціоналу допомагає галузь Quality Assurance (QA) [1].
1. Актуальність теми
Актуальність даної галузі полягає в тому, щоб вирішувати проблему підтримки якості продукту в цілому. В основному, це робиться ручним тестуванням програмних продуктів, що надходять від відділу розробки. Але в такому підході можуть бути такі недоліки:
- людський фактор;
- швидкість перевірки функціоналу;
- неможливість пройти складні тестові сценарії;
- трудомісткість повторного регресійного тестування;
- неможливість проведення навантажувального тестування вручну.
2. Мета і завдання дослідження, плановані результати
Недоліки ручного тестування частково вирішує автоматизоване тестування продукту. Завдання і переваги даного підходу:
- швидкість виконання тест-кейсів може в рази і на порядки перевершувати можливості людини;
- відсутня вплив людського фактора в процесі виконання тест-кейсів (втоми, неуважності);
- засоби автоматизації здатні виконати тест-кейси, непосильні для людини в силу своєї складності, швидкості чи інших факторів;
- засоби автоматизації здатні збирати, зберігати, аналізувати, агрегувати і представляти в зручній для сприйняття людиною формі колосальні обсяги даних;
- засоби автоматизації здатні виконувати низькорівневі дії з додатком, операційною системою, каналами передачі даних.
Тому основною метою роботи є аналіз ефективності автоматизованого тестування віконного інтерфейсу програмної системи, порівняння актуальних інструментів для автоматизації тестування, опис платформи для автоматизованого тестування, опис прикладів побудови призначених для користувача сценаріїв [2].
3. Аналіз технологій автоматизованого тестування програм
Для розгляду основних інструментів були розглянуті найбільш сучасні види написання коду програми: BDD (Behavior-driven development) і TDD (Test-driven development) [3].
Основною ідеєю BDD-методології є поєднання в процесі розробки чисто технічних інтересів і інтересів бізнесу, дозволяючи тим самим керуючому персоналу і програмістам говорити на одній мові. Для спілкування між цими групами персоналу використовується предметно-орієнтована мова, основу якого становлять конструкції з природної мови, зрозумілі неспеціалісту, зазвичай виражають поведінку програмного продукту і очікувані результати.
У свою чергу TDD — техніка розробки програмного забезпечення, яка ґрунтується на повторенні дуже коротких циклів розробки: спочатку пишеться тест, що покриває бажану зміну, потім пишеться код, який дозволить пройти тест, і під кінець проводиться рефакторинг нового коду до відповідних стандартів. Дана техніка в більшості випадків не орієнтована на тестування користувальницьких інтерфейсів віконного інтерфейсу.
В основному, автоматизаторів тестування інтерфейсів користуються BDD-інструментами. BDD підхід спільно з інженерними практиками дозволяє відмовитися від legacy-документації, що містить неактуальну інформацію і отримувати нову документацію нальоту, зберігати її разом з проектом.
Приклад циклів розробки з використанням BDD і TDD підходів зображений на рис. 1.
Розглянуті підходи засновані на застосуванні таких інструментів автоматизації тестування.
Selenium — Java-додаток, яке може аналізувати файли певної структури, щоб знаходити команди для управління браузером і команди для виконання певних дій і перевірок. Основні плюси: інструмент є безкоштовним, підтримує багато мов програмування, портативність, кроссплатформенность, кроссбраузерность (з використанням Selenium Grid), інтегрується з веб-автоматизацією і мобільного автоматизацією тестування, найчастіше застосовується з BDD.
Watir — це інструмент для автоматизації тестування, який використовується для тестування веб-додатків. Це бібліотека Ruby з відкритим вихідним кодом. Так як базовим протоколом інструменту є OLE, то він вміє взаємодіяти з Microsoft IE (що, на жаль, не можуть більшість інших інструментів автоматизації). Основні плюси: кроссбраузерность, взаємодіє з BDD-фреймворками і фреймворками для юніт-тестування. З мінусів можна відзначити те, що інструмент допомагає автоматизувати тільки веб-інтерфейси, використовується з мовою Ruby, найчастіше застосовується з BDD [3].
Katalon Studio — це ефективний інструмент для автоматизації процесу тестування веб-додатків, мобільних додатків і веб-сервісів. Katalon Studio є нащадком таких фреймворків, як Selenium і Appium. Він перейняв у останніх безліч переваг, пов'язаних з інтегрованою автоматизацією тестування ПО, найчастіше застосовується з BDD.
Unified Functional Testing або UFT - це популярний комерційний інструмент для функціонального тестування.
TestComplete - це ефективний інструмент для тестування десктопних, мобільних і веб-додатків [4].
Сравнительная характеристика рассмотренных инструментов автоматизации тестирования интерфейсов изображена на рис. 2.
3.1 Побудова сценаріїв тестування ієрархічного віконного інтерфейсу програми
Найбільш складним об'єктом для тестування є призначений для користувача інтерфейс [5]. Тому завдання автоматизованого тестування віконного інтерфейсу була вирішена новими програмними засобами — платформою, що використовує такі інструментальні засоби: JavaScript, TypeScript, Selenium WebDriver, Jasmine, Protractor, Node JS, Gulp.
Jasmine — це BDD фреймворк для тестування JavaScript коду.
Selenium WebDriver — це драйвер браузера, який дозволяє розробляти програми, що керують поведінкою браузера.
Protractor - e2e тест-фреймворк зроблений на основі WebDriverJS, який приходить на зміну первісним e2e тестів AngularJS [6].
Цією платформою передбачено на початку спроектувати сценарій у вигляді повноцінного тестового випадку. Після цей сценарій представляється у вигляді псевдокоду, але за шаблоном обраного інструменту автоматизації тестування. Автоматизація процесу спрямована на максимально точне покриття тестових сценаріїв програмним кодом (скриптом). Шаблон побудова сценаріїв зображений на рис. 3.
Таким чином практично всі тести дозволяють затверджувати певні кроки, також емулювати призначені для користувача сценарії.
Як приклад розглянемо сценарій взаємодії користувача з сайтом ДонНТУ з метою тестування його інтерфейсу. Користувач заходить на сторінку і повинен чекати, поки вона завантажиться. Він розуміє, що сторінка завантажилася тоді, коли, наприклад, з'являється кнопка Реєстрація q>. Після чого він клікає на цю кнопку і чекає появи вікна з формою введення даних. Відповідно, якщо щось з цього не відобразиться на інтерфейсі, то автоматизований тест дасть про це знати.
Для такого способу реалізації даного сценарію необхідно псевдокод перевести в програмний код, який буде виконуватися в середовищі інструменту автоматизації. Сама платформа є надбудовою над основним інструментом автоматизації тестування інтерфейсів, а саме Selenium Webdriver [7]. Таким чином, Автоматор тестування може налаштовувати параметри запускається драйвера браузера (дозвіл вікна, режим), вказувати тільки ті специфікації, які хоче перевірити автоматизованими тестами, налаштувати показ даних після проходження тесту, встановлювати час, після якого тест завершиться в разі його падіння.
Висновки
При аналізі ефективності автоматизованого тестування віконного інтерфейсу програмної системи були розглянуті основні проблеми тестування, підходи до ефективного автоматизованого тестування користувальницьких інтерфейсів, підготовка бази для покриття тестових випадків автоматизованими тестами.
Як розглянутих підходів до розробки автоматизованих тестів були обрані методології BDD і TDD, а також застосований один з найсучасніших інструментів для автоматизації тестування — Selenium Webdriver. Розроблено шаблон написання тестових сценаріїв на псевдокоді, який автоматично транслювався в програмний код (скрипт). Виконана апробація розробленої платформи на тестуванні віконного інтерфейсу реального сайту. Таким чином, запропонований спосіб, що забезпечує високу ефективність автоматизованого тестування віконного інтерфейсу програмних систем.
При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: травень 2020 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.
Список джерел
- Специальность QA Software Tester или кто такой Quality Assurance Engineer — Режим доступа: https://itvdn.com/ru/specialities/qa — Загл. с экрана;
- Автоматизированное тестирование. Обоснование применения автоматизации в тестировании, её основные преимущества и недостатки. — Режим доступа: http://www.protesting.ru/automation/functional/whytoauto.html — Загл. с экрана;
- Каковы основные различия между TDD и BDD? - unit-testing | Qaru – Режим доступа: http://qaru.site/questions/50262/what-are-the-primary-differences-between-tdd-and-bdd — Загл. с экрана;
- Лучшие инструменты для автоматизации тестирования в 2017 году: фреймворки для автоматизации тестирования – Режим доступа: https://geteasyqa.com/ru/blog/best-automation-testing-tools/ — Загл. с экрана;
- Тестирование пользовательского интерфейса - QA evolution – Режим доступа: https://qaevolution.ru/testirovanie-po/vidy-testirovaniya-po/testirovanie-polzovatelskogo-interfejsa/ — Загл. с экрана;
- Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine – Режим доступа: https://habr.com/ru/post/451522/ — Загл. с экрана;
- Что такое Selenium WebDriver? – Режим доступа: https://habr.com/ru/post/152971/ — Загл. с экрана.