На перший погляд, розробка та тестування програмного забезпечення можуть здатися абсолютно різними, не пов’язаними між собою процесами. Але деякі їхні аспекти є надзвичайно важливими для обох цих сфер.
У цій статті ми зосередимося на деяких популярних патернах і методологіях веб-тестування, які будуть корисними для автоматизації UI загалом і для розробки тестових фреймворків зокрема.
Список популярних патернів для автоматизації тестування інтерфейсу користувача
Шаблони проектування - це незавершена частина коду, яку можна легко застосувати до програмних проектів. Швидше за все, це компоненти шаблону рішення.
Перевага цих патернів полягає в тому, що з їх допомогою тестувальники або розробники можуть спростити комунікацію з іншими членами проектної команди, залученими до процесу розробки програмного забезпечення. Якщо всі розуміють, як повинен правильно функціонувати патерн, то досить вимовити його назву, і всі зрозуміють, про що буде йти мова. Не потрібно буде показувати програмний код.
Візерунок декоратора
Допомагає помістити компоненти в спеціальні “конверти”, що відповідають за переписування та підтримку лише певного набору параметрів (дуже важливо для проектів, де автоматизовані компанії використовують A/B-тестування). Тестувальнику не потрібно писати новий клас для всіх наступних характеристик компонента, реалізуються тільки ті зміни, які використовуються. Подібна техніка також може бути використана при редагуванні веб-компонентів в залежності від розміру веб-браузера або типу пристрою.
Об’єкт сторінки + Елементи сторінки
Патерн Page Object - найпопулярніший і базовий патерн автоматизації UI у сфері тестування програмного забезпечення. Адже в ньому весь функціонал конкретного веб-інтерфейсу “перетворюється” в спеціальний клас. Це чудово підходить для простих представлень, де немає особливих можливостей для взаємодії з системою - патерн Page Object простий в управлінні.
Однак, якщо в проекті є сторінки з великою кількістю параметрів, класи об’єктів сторінок можуть стати величезними і перетворитися на складний програмний код. Саме тут стають у нагоді компоненти сторінок. Логіка тут полягає в тому, щоб обернути в клас функціональність X елемента компонента, а не всієї сторінки.
Схема ін’єкції залежності
Цей патерн з’явився завдяки концепції інверсії управління. У ній виділені об’єкти можуть отримувати інші необхідні їм об’єкти ззовні, замість того, щоб розробляти їх самостійно. Така процедура значно спрощує вкладеність класів і процес модульного тестування.
Підбиваючи підсумки: Принципи використання патернів
Чим простіше, тим краще
Найпростіші системи завжди працюють краще, ніж складні. Ці принципи можна використовувати не тільки для розробки програмного забезпечення, але і для GUI. Що стосується тестових фреймворків для тестування UI, то розробка тестового сценарію повинна бути очевидною і простою. [highlight dark=”no”]Основна мета будь-якого фреймворку - спростити складні завдання.[/highlight]
Ми не робимо нічого складного!
Чи є щось схоже на принцип, описаний вище? Що треба працювати з найпростішим, і з тим, що точно спрацює. Іншими словами, нові параметри слід встановлювати тоді, коли користувач впевнений, що вони потрібні, а не в ситуаціях, коли вони можуть колись знадобитися.
Якщо ви будете дотримуватися цього принципу, то зможете швидше завершити процес розробки фреймворку, оскільки вам не доведеться обдумувати всі доступні варіанти перед виконанням сервісів автоматизованого тестування.










0 коментарів