types automation testing
Вивчіть різні типи тестування автоматизації з деякими хибними уявленнями про автоматизацію тестів:
У цій другій частині серія підручників з автоматизації тестів , Я коротко опишу типи автоматизованих тестів, а потім найголовніше зроблю деякі помилкові уявлення про автоматизацію тестів.
Що таке автоматичне тестування?
Тестування автоматизації можна визначити як спосіб повторного запуску набору тестів без необхідності виконувати їх вручну. Введення тестів автоматизації у вашу стратегію тестування - це спосіб заощадити гроші та час.
Що ви дізнаєтесь:
Види автоматичного тестування
Типи тестів автоматизації визначають, який тип наборів тестів можна автоматизувати. Багато тестувальників плутають цю тему з типами систем автоматизації, які визначають, як ви розробите свій набір тестів у пакет автоматизації, який можна буде зручно виконувати.
У цій статті ми уважно розглянемо типи тестування автоматизації і, зрештою, коротко розглянемо основи автоматизації.
Давайте детально розберемося у вищезазначених класифікаціях:
Автоматизація на основі типу тестування
Автоматизація функціональних випробувань:
Функціональні тести написані для перевірки ділової логіки, що стоїть за додатком. Автоматизація цих засобів означає написання сценаріїв для перевірки ділової логіки та функціональних можливостей, які очікуються від програми.
Автоматизація нефункціональних тестів:
Нефункціональні тести визначають не комерційні вимоги програми. Це вимоги, що стосуються продуктивності, безпеки, баз даних тощо. Ці вимоги можуть залишатися незмінними або масштабуватися відповідно до розміру програмного забезпечення.
Автоматизація на основі фази тестування
Автоматизація модульних випробувань:
Ці тести проводяться під час самої фази розробки, в ідеалі розробник після завершення розробки та перед передачею системи тестувальникам на тестування.
Автоматизація тестів API:
Тести API запускаються на етапі інтеграції. Вони можуть бути запущені командою розробників або тестувань і можуть бути запущені до або після побудови рівня інтерфейсу користувача для програми. Ці тести націлені на тестування на основі запиту та відповіді, на яких побудована програма.
Автоматизація тестів на основі інтерфейсу користувача:
Тести на основі інтерфейсу користувача запускаються на етапі виконання тесту. Вони спеціально запускаються тестувальниками і запускаються лише один раз перед тим, як користувацький інтерфейс програми буде переданий їм. Вони перевіряють функціональність та ділову логіку програми з передньої частини програми.
Автоматизація на основі типу випробувань
Одиничні тести:
Запитання та відповіді на інтерв’ю для розробників pl sql
Unit Tests - це тести, які побудовані для тестування коду програми і зазвичай вбудовуються в сам код. Вони націлені на стандарти кодування, такі як написання методів та функцій.
Ці тести частіше пишуть самі розробники, однак у сучасному світі тестувальників автоматизації також можуть попросити їх написати.
Виконання цих тестів і відсутність помилок у них означатиме, що ваш код буде скомпільований і запущений без проблем з кодом. Ці тести, як правило, не націлені на функціональні аспекти програми, і оскільки вони націлені на код, доцільніше їх автоматизувати, щоб вони могли запускатися, як і коли вимагає розробник.
Тести на дим:
Тест на дим - це відомий тест, який проводиться у життєвому циклі тесту. Це тести після збірки, які виконуються відразу після видачі будь-якої збірки із програми, щоб переконатися, що програма все ще функціонує після завершення збірки.
Це невеликий набір тестів, і це те, що буде виконуватися кілька разів, і тому має сенс його автоматизувати. Ці тести, як правило, мають функціональний характер, і залежно від типу застосування для них можна вибрати інструмент.
Тести API:
Тестування API стало дуже відомим за останні кілька років. Програми, побудовані на архітектурі API, можуть виконувати це тестування.
Під час тестування API тестувальники перевіряють діловий рівень програми, перевіряючи комбінації запит-відповідь для різних API, на яких побудована програма. Тести API також можна проводити в рамках інтеграційних тестів нижче.
Інтеграційні тести:
Тест інтеграції, як випливає з назви, означає тестування програми шляхом інтеграції всіх модулів та перевірки функціональності програми.
Тестування інтеграції можна здійснити за допомогою тестування API або через рівень інтерфейсу програми.
Тести інтерфейсу користувача:
Тести інтерфейсу користувача виконуються на рівні інтерфейсу користувача або з інтерфейсу програми. Вони можуть бути націлені на тестування функціональних можливостей або просто на тестування елементів інтерфейсу програми.
Автоматизація інтерфейсу для перевірки функціональності є загальноприйнятою практикою. Однак автоматизація функцій графічного інтерфейсу є однією з найбільш складних засобів автоматизації.
Регресійні тести:
Одним з найчастіше автоматизованих наборів тестів є набір тестів регресії. Як ви вже знаєте, регресія - це тест, який проводиться в кінці тестування нового модуля, щоб переконатися, що жоден із існуючих модулів не зазнав впливу на нього.
Це повторюється після кожної нової ітерації тестування, а основні тестові кейси залишаються фіксованими, як правило, кілька нових доповнень після нової ітерації. Оскільки його часто запускають, майже всі тестові групи намагаються автоматизувати цей пакет.
Автоматизація як безперервна інтеграція:
Постійна інтеграція може знову працювати на самих автоматизованих тестах регресії, однак, для досягнення CI ми дозволяємо запускати регресію або ідентифікований набір тестів щоразу, коли робиться нове розгортання.
Тести безпеки:
Тестування безпеки може бути як функціональним, так і нефункціональним видом тестування, яке передбачає тестування програми на наявність уразливостей. Функціональні тести складатимуть тести, пов’язані з авторизацією тощо, тоді як нефункціональні вимоги, можливо, тест на ін’єкцію SQL, міжсайтовий сценарій тощо.
Тести продуктивності та контроль якості:
Тести продуктивності - це нефункціональні тести, які націлені на такі вимоги, як тестування навантаження, напруги, масштабованості програми.
Приймальні випробування:
Приймальні випробування знову підпадають під функціональні випробування, які зазвичай проводяться для того, щоб переконатися, що критерії прийнятності, надані клієнтом, виконані.
Наразі ми описали тип тестів, які можна автоматизувати, і різні класифікації однакових, усі класифікації врешті-решт призведуть до однакових кінцевих результатів автоматизованого набору тестів. Як ми вже говорили раніше, потрібно трохи зрозуміти, чим вони відрізняються від фреймворків.
Після того, як ви визначили тести, які ви хочете автоматизувати з наведеної вище класифікації, вам потрібно буде розробити свою логіку таким чином, щоб ці тести виконувались плавно, без особливого ручного втручання. Ця конструкція ручного тестового набору в автоматизований тестовий пакет - це місце, де входять рамки.
Тепер ми вивчимо 3 найкращих типи автоматизації тестів
- Одиничне тестування
- Тестування API
- Тестування графічного інтерфейсу
# 1) Автоматизовані одиничні тести
Автоматизовані модульні тести написані для перевірки рівня коду. Помилки визначаються у функціях, методах та підпрограмах, написаних розробниками.
Деякі компанії просять розробників провести модульне тестування самостійно, а деякі наймають спеціалізовані ресурси автоматизації тестування. Ці ресурси мають доступ до вихідного коду, і вони пишуть модульні тести, щоб зламати виробничий код.
Завдяки наявності модульних тестів, кожен раз, коли компілюється код, запускаються всі модульні тести і повідомляють нам результат, якщо всі функціональні можливості працюють. Якщо будь-який модульний тест не вдається, це означає, що тепер у виробничому коді присутня помилка.
Серед найбільш популярних інструментів, представлених на ринку, є NUnit і JUnit . Microsoft також надає власну структуру для модульного тестування MSTest . Перегляньте веб-сайти цих інструментів, і вони нададуть вам більше прикладів та навчальних посібників з написання модульних тестів.
# два) Автоматизовані тести веб-сервісів / API
Інтерфейс програмування програм (API) дає можливість програмному забезпеченню спілкуватися з іншими програмними програмами. Як і будь-яке інше програмне забезпечення, API потрібно протестувати. У цьому типі тестування графічний інтерфейс зазвичай не бере участі.
Ми тестуємо тут, як правило, проблеми функціональності, відповідності та безпеки. У веб-додатках ми можемо перевірити Запит та Відповідь нашої програми, якщо вони захищені та зашифровані чи ні.
Це один із прикладів, коли ми можемо використовувати тестування API. Найпопулярнішим інструментом для тестування API є МИЛО який має як безкоштовну, так і платну версію. Є й інші інструменти, якими ви можете користуватися відповідно до своїх потреб.
# 3) Автоматизовані тести графічного інтерфейсу.
Цей тип автоматизованого тестування є найскладнішою формою автоматизації, оскільки передбачає тестування інтерфейсу користувача програми.
алгоритм дерева рішень при видобутку даних
Це важко, оскільки графічний інтерфейс може сильно змінитися. Але цей тип тестування також є найближчим до того, що користувачі будуть робити з нашим додатком. Оскільки користувач буде використовувати мишу та клавіатуру, автоматизовані тести графічного інтерфейсу також імітують однакову поведінку, використовуючи мишу та клавіатуру для клацання або запису на об'єкти, присутні в інтерфейсі користувача.
Завдяки цьому ми можемо виявити помилки рано, і це може бути використано в багатьох сценаріях, таких як регресійне тестування або заповнення форм, що займає занадто багато часу.
Найпопулярніші засоби тестування графічного інтерфейсу включають Уніфіковане функціональне тестування з мікрофокусом (UFT) , Селен , Тест завершено і Інтерфейс із кодом Microsoft (що є частиною остаточних та преміум-версій Visual Studio).
Подібно до типів тестів автоматизації, існує також декілька типів фреймворків.
Рамки автоматизації
Деякі загальновживані рамки автоматизації включають:
- Лінійний (Запис і відтворення)
- Управління ключовими словами
- На основі даних
- Модель об'єкта сторінки
- Модульний
Подальше читання => Рамки автоматизації
Як ви можете бачити, першим кроком у процесі автоматизації є визначення типу автоматизації, тоді ви можете визначити структуру для проектування та враховуючи їх, ви можете вибрати інструменти, які відповідають вашим потребам.
Засоби автоматизації
Залежно від типу тестування, на яке ви націлюєтесь, і типу фреймворку, який ви можете побудувати навколо нього, доступні такі інструменти:
- Селен : Дуже потужний інструмент для тестування веб-додатків. Забезпечує підтримку декількох браузерів.
- Джуніт і Нуніт: Інструменти, які в основному використовуються для модульного тестування розробниками.
- QTP : Чудовий інструмент для невеб-додатків та постачається із вбудованим сховищем об’єктів.
- Сікулі: Інструмент з відкритим кодом для тестування графічного інтерфейсу.
- Інтерфейс мила: Інструмент для тестування API.
- Будьте впевнені: Бібліотека для створення тестової основи API.
- аппіум : Інструмент, що підтримує мобільне тестування, тестування власних додатків, гібридне тестування та тестування мобільних веб-додатків.
- Jmeter : Інструмент, який використовується для тестування продуктивності.
- TestNG: TestNG сам по собі не є інструментом автоматизації, однак він забезпечує велику підтримку платформ автоматизації, побудованих із селеном, аппієм, будьте впевнені тощо.
Подальше читання => Засоби автоматизації тестів
Помилки щодо автоматизації тестування
Протягом багатьох років я чув деякі помилкові уявлення про автоматизацію тестів. Думаю, мені також слід їх очистити в цій статті.
Помилка №1. Автоматизація тут, щоб замінити ручні тестери.
Автоматизація тестів допомагає тестувальникам зробити тестування швидшим та надійнішим. Він ніколи не може замінити людей.
Подумайте про автоматизацію тестів як про автомобіль. Якщо ви підете, вам знадобиться близько 20 хвилин, щоб дістатися до свого будинку. Але якщо ви користуєтесь автомобілем, то дійдете за дві хвилини. Водій автомобіля - це все-таки ви, людина, але .. автомобіль допомагає людині швидше досягти своєї мети. Крім того, більша частина вашої енергії зберігається, оскільки ви не ходили. Таким чином, ви можете використовувати цю енергію для здійснення більш важливих справ.
Те саме стосується тестування автоматизації. Ви використовуєте його для швидкого тестування більшості своїх повторних, тривалих і нудних тестів та економите свій час та енергію, щоб зосередитись і протестувати нові та важливі функції.
Як Джеймс Бах сказав чудову цитату:
'Інструменти не перевіряються. Тестують лише люди. Інструменти виконують лише ті дії, які “допомагають” людям перевірити. “
Інструменти можуть клацати на об'єктах. Але те, де натиснути, завжди скаже тестер, який проводиться вручну. Думаю, зараз ви зрозуміли мою думку.
Помилка №2 . Все, що знаходиться під сонцем, можна автоматизувати
Якщо ви спробуєте автоматизувати 100% своїх тестових випадків, можливо, ви зможете це зробити, але якщо ви змогли це зробити, тоді наш перший пункт стає хибним. Якщо все автоматизовано, то що робитиме ручний тестер?
Розгублений? Правда?
Справді, справа в тому, що ви не можете автоматизувати 100% своїх тестових випадків. Оскільки ми, як тестувальники, вважаємо, що жодна програма не може бути перевірена на 100%. Завжди будуть деякі сценарії, які ми пропустимо. Завжди будуть виникати помилки, які виникають лише тоді, коли клієнти використовують вашу програму.
Якщо програму неможливо перевірити на 100%, то як ви можете пообіцяти 100% автоматизацію?
Крім того, є дуже невеликий шанс, що ви зможете автоматизувати всі свої існуючі тестові кейси. Завжди є сценарії, які важко автоматизувати і простіше зробити вручну.
Наприклад , Один користувач вводить дані, другий користувач затверджує дані, третій користувач переглядає дані, а четвертий користувач забороняє переглядати дані. Ці сценарії можна автоматизувати, але вони займуть багато часу та зусиль. Тож буде простіше, якщо ви просто зробите це вручну.
Пам’ятайте, ми використовуємо машини, щоб їхати на відстань, але на шляху можуть бути довгі сигнали, буде витрачатися паливо, виникатимуть проблеми з місцем для паркування, плата за паркування та набагато більше головного болю. У деяких сценаріях ми просто йдемо пішки і досягаємо місця призначення :) .
Таким чином, не слід намагатися автоматизувати все. Автоматизуйте лише ті сценарії, які є важливими та ті, на які потрібно багато часу, щоб зробити їх вручну.
Помилка №3 . Автоматизація передбачає лише запис і відтворення.
Будь ласка, не живіть у світі фантазій. Цю фантазію насправді створюють фальшиві реклами різних постачальників інструментів автоматизації. Кажуть, ви просто записуєте та відтворюєте свої кроки, і ваші тестові кейси будуть автоматизовані. Ну, це велика брехня!
Автоматизація - це все, а не лише запис та відтворення. Зазвичай інженери автоматизації взагалі не використовують функцію запису та відтворення. Запис і відтворення зазвичай використовуються для отримання уявлення про те, як інструмент створює сценарій для наших кроків.
Ознайомившись зі сценаріями, ми завжди використовуємо сценарії для створення автоматизованих тестів. Пам’ятай, Ви повинні знати програмування, якщо хочете зробити автоматизацію тестів . З іншого боку, не соромтесь, якщо ви не знаєте програмування. Як і будь-яке інше завдання, програмуванню також можна навчитися з практикою та відданістю.
Я знаю людей, які навіть не мають рівня інформатики, але вони вчаться програмувати, і зараз вони чудові інженери з автоматизації. У Microsoft вони наймають тестерів, які вміють займатися програмуванням. Вони називаються SDET (Інженери-розробники програмного забезпечення для тестування). У першому рядку опису роботи сказано: 'SDET пише багато коду ...'.
Навчіться програмувати, не втікайте від цього. Це зробить вас дивовижний тестер .
Висновок
Сподіваюсь, ця стаття допомогла б вам зрозуміти деякі поняття, пов’язані з автоматизацією тестів.
Ми охопили високий рівень різних типів тестування автоматизації з різними способами класифікації.
Основні класифікації включають:
- Автоматизація на основі типу тестування (функціонального чи нефункціонального).
- Автоматизація на основі Фази тестування (Unit, API або UI).
- Автоматизація на основі різних типів тестів (кілька типів тестування).
Ми також перерахували різні інструменти, які можна використовувати для таких типів автоматизованого тестування.
У нашій наступній статті ми обговоримо поетапна процедура як розпочати автоматизацію тестів у вашій організації .
НАЗАД Підручник No1 | НАСТУПНИЙ підручник No3
Рекомендована література
- Тестування навантаження за допомогою підручників HP LoadRunner
- Найкращі засоби тестування програмного забезпечення 2021 р. [Інструменти автоматизації тестування якості]
- Чи втрачають тестери контроль над тестуванням через автоматизацію?
- Проблеми, пов'язані з ручним та автоматичним тестуванням
- 10-етапний процес тестування автоматизації: як розпочати тестування автоматизації у своїй організації
- Ви фахівець з ручного тестування чи автоматизації? Підробіть для нас!
- 11 найкращих засобів автоматизації для тестування програм для Android (Інструменти для тестування додатків Android)
- Топ 10+ найкращих книг про тестування програмного забезпечення (книги про тестування з ручного та автоматичного тестування)