how implement efficient test automation agile world
Автоматизація в Agile дуже важлива.
Подумайте про безліч функцій, які додаються та надаються в кожному Sprint. Повинен бути спосіб переконатися, що нещодавно додана функція не впливає на існуючу функціональність.
Через низьку тривалість спринту практично неможливо виконати всю масть кожного разу, коли продукт збільшується на кінці спринту. Наявність автоматизованого тестового костюма, безумовно, зіграло б тут більшу роль.
Однак впровадження та дозрівання в автоматизації однозначно зайняло б певний час. Первинні інвестиції в планування та проектування діяльності з автоматизації однозначно окупились би в довгостроковій перспективі.
У цій 3-ій частині просунутої серії Agile Testing я намагаюся навести кілька підказок, які слід врахувати, виходячи зі свого досвіду, оскільки ви привносите автоматизацію у свій проект.
Також читайте частина 1 і частина 2 спочатку краще зрозуміти тему.
Що ви дізнаєтесь:
Що автоматизувати в Agile?
Всякий раз, коли ми плануємо впровадити автоматизацію в наші проекти, більшість з нас відразу проголосують за те, щоб «Костюм тестів на дим» або «Костюм тесту регресії» був найкращим кандидат в автоматизацію . Звичайно, вони є, але коли ми думаємо про тестувальну піраміду автоматизації, ми можемо зробити висновок, що мова йде лише про верхній шар піраміди.
Окрім верхнього шару, у нас ще є сервісний рівень та одиничний шар що важливіше.
DVD ripper для Windows 10 безкоштовно завантажити
То які тести, крім тестів на дим та регресії, можуть бути добрими кандидатами для автоматизації?
# 1) Збірки та розгортання
У традиційних середовищах ми заздалегідь визначили збірки, які можуть бути щотижневими, двотижневими або іноді навіть щомісячними. Однією з причин є те, що ці розгортання вимагають часу. Проблема цього підходу полягає в тому, що нам потрібно почекати заздалегідь визначені дати, щоб виправити помилки або застосувати нові функції, тому виникає затримка.
Другою причиною було те, що до того часу, коли тестувальники закінчать тестування та виявлять помилки та дефекти, програмісти перейшли до різних частин реалізації та мають менший інтерес у вирішенні помилок попередньої програми. Цей підхід також затримує час надання функції, доступної у виробництві.
Будівництво та розгортання - це елементи, які повторюються, а іноді і нудно. Також на розгортання збірки можуть знадобитися години, що затримує тестування і врешті-решт зворотній зв'язок. Будучи повторюваним завданням, розгортання стає гарним кандидатом для автоматизації.
Також читайте=> Процес управління випуском та розгортанням
Кілька переваг автоматизованого розгортання збірки:
- Немає шансів зробити помилки при розгортанні (можна уникнути людських помилок, таких як копіювання неправильного файлу або копіювання файлу в неправильне розташування)
- Помилка / функції доступні для тестування, як тільки їх виправлено
- Тестери отримують більше часу на тестування
- Функція готова перейти до виробництва за менший час
- Швидкий зворотний зв'язок
# 2) Тести модулів / Тести компонентів
Я вже говорив про важливість автоматизації одиничного рівня за допомогою Підхід TDD у моєму останньому підручнику .
Це утворює найнижчий шар піраміди, отже фундамент і будь-який фундамент повинні бути твердими. Команда розробників повинна співпрацювати та працювати разом, щоб вмістити більшу частину тесту в цей рівень.
# 3) Тестування API / веб-сервісу
Веб-сервіси - це носій, на якому дві програми обмінюються даними або інформацією з точки зору запиту та відповіді, не турбуючись про базову архітектуру чи технологію. Говорячи більш простими словами - подача запиту та перевірка відповіді - це те, що ми зазвичай робимо при тестуванні веб-служб.
Тестування веб-служб передбачає написання програм для виклику цих методів веб-сервісу та перевірку значень, що вони повертають. Ми навіть можемо перевірити послуги на різні перестановки та комбінації. Внесіть усі дані тесту в аркуш Excel, і ваша програма зможе прочитати дані та зателефонувати тестуваній службі, передавши дані тесту як параметр і перевіривши результати.
Це тестування є частиною середнього шару піраміди. Більшість функціональних випробувань можна просунути в цей шар. Виправлення дефектів, які виникають у цьому шарі, стає легким для виправлення, і вони не відкладаються, поки не буде доступний інтерфейс.
# 4) Тестування за графічним інтерфейсом
Автоматизація тестування графічного інтерфейсу порівняно легша, ніж автоматизація фактичного графічного інтерфейсу. Ще однією перевагою є те, що незалежно від змін інтерфейсу користувача функціональність залишається незмінною. Навіть якщо деякі елементи інтерфейсу користувача змінені, функціональність функції не змінюється. Цей прийом в основному фокусується на діловій логіці та правилах.
Тестові приклади в основному пишуться у табличному форматі або в електронній таблиці, а також пристосування / фрагменти коду, які приймають вхідні дані з цих таблиць і повертають результати. Результати генеруються негайно і забезпечують чудову платформу для нетехнічних зацікавлених сторін для проведення цих тестів та отримання очікуваних результатів. Одним із інструментів, що використовуються для досягнення цієї техніки, є Фітнес .
# 5) Нефункціональне тестування
Це техніка нефункціонального тестування в основному включає тестування на навантаження, продуктивність та стрес. На ринку доступні різні інструменти, які можна використовувати для автоматизації цих тестів.
# 6) Порівняння даних
Багато наших тестувань вимагають порівняння файлів даних, включаючи текстові файли, файли CSV або Excel
чому потрібно запускати програму, використовуючи дані тесту для введення?
- Ці файли можна порівняти з базовими рівнями для перевірки даних
- Порівняння можуть бути з однаковими даними, але іншого формату. В основному це відбувається, коли ми маємо два однакові файли, створені з двох різних джерел
Ці порівняння можуть бути повторюваними, тому автоматизованими.
# 7) Пошук
Пошук конкретної сутності з великої групи файлів також може бути нудним, і Бог допомагає нам, якщо це повторюване завдання. Одним із прикладів є пошук у файлах журналів. Якщо це теж нудне і повторюване завдання, то нам слід подумати про його автоматизацію.
# 8) Повторювані завдання
Будь-яке завдання, починаючи з взаємодії з кінцевими користувачами або написання історій до його розробки, якщо воно повторюється, слід розглядати в автоматизації. Ми повинні розуміти, що автоматизація не означає, що в ній має бути задіяний складний інструмент / технологія. Для вирішення цілі це може бути простий макрос VB або програма Java з Javascript.
З чого почати?
Немає пунктів маркерів або покрокового керівництва, де сказано, з чого почати автоматизацію. Запуск автоматизації для команди вимагає від вас мозкового штурму та глибоких роздумів щодо того, які аспекти ви хочете автоматизувати, або яка кінцева мета автоматизації?
Ви можете почати з:
- Визначення повторюваних завдань,
- Визначення больових зон застосування
- Визначення випробувальних завдань
Якщо у вас немає автоматизації в проекті / команді туру, тоді ви, мабуть, можете скористатися багатошаровим підходом, де на автоматизацію спочатку можна націлити модульні тести. Це дасть вам найвищий рентабельність інвестицій.
Одночасно тестери можуть почати працювати над димовим костюмом, а потім регресією. Як тільки команда отримає навички і почуватиметься комфортно, поступово переходьте до автоматизації інших повторюваних завдань.
Не поспішайте купувати новий інструмент без оцінки своїх потреб. Як я вже говорив раніше, проста програма або макрос може вирішити вашу мету автоматизувати деякі повторювані завдання. Отже, перш ніж вирішити придбати інструмент, робити POC та оцінити, чи ефективним буде цей інструмент.
Будь ласка, ознайомтеся з цими документами, де я надав докладнішу інформацію про те, як правильно вибрати тестові кейси для автоматизації та деякі ідеї щодо оцінки зусиль з автоматизації в наступних статтях посібник з проблем автоматизації тестування і тестова оцінка проекту автоматизації селену.
Після того, як сфера автоматизації та інструменту буде остаточно визначена, наступним є розробка рамки.
Пам'ятайте, в Agile фреймворк еволюціонував. НЕ націлюйтесь на те, щоб спочатку розробити всю структуру, а потім впроваджувати. Спроектуйте та впровадьте MVP (Мінімальний життєздатний продукт), а потім вдосконаліть існуючу структуру, щоб включити більше функцій. Вам також потрібно застосувати хорошу практику кодування та розробки, якщо ви хочете, щоб ваш пакет автоматизації був надійним.
Деякі найкращі практики
- Не націлюйтесь на автоматизацію на 100% за один раз. Почніть з малого. Пам’ятайте, що це процес, що розвивається
- Дотримуйтесь тих самих Agile-практик, яких ви дотримуєтесь при будь-якій розробці програмного забезпечення. Автоматизація також вимагає належного планування та проектування. Ви не хотіли б збільшувати свої технічні борги під час автоматизації
- Створіть відставання від автоматизації тестів. Цей відставання може варіюватися від впровадження нової функції до вдосконалення існуючої функції. Дайте сюжетні очки своїм ідентифікованим предметам і призначте їх відповідно. Віднесіть ці елементи відставання на свій Sprint і відстежуйте їх за допомогою дошки Kanban
- Напишіть критерії прийнятності для ваших історій автоматизації. Ці критерії прийнятності можуть включати:
- Інтеграція набору тестів із CI
- Перенесення костюма в централізоване місце
- Надішліть результати електронною поштою
- Забезпечення надсилання файлів журналу помилок при невдалому тестуванні
- Будь-які інші критерії ...
- Не витрачайте час на оцінку нового інструменту. Ви можете створити пріоритетний контрольний список того, що ви хочете від нового інструменту, і визначити часову шкалу для його оцінки. Якщо ви не бачите своїх результатів у встановлений час, перейдіть до наступного
- Прийміть обґрунтоване рішення щодо автоматизації. Не кожна частина автоматизації ефективна і дає позитивну рентабельність інвестицій. Не автоматизуйте лише заради автоматизації
- Використовуйте належне середовище для розвитку. Не зберігайте код у своєму місцевому. Майте сховище, щоб зберігати ваш код і мати звичку перевіряти ваш код в кінці дня
- Подібним чином спробуйте виконати автоматизовані тести з централізованого місця. Зробіть його незалежним від людини. Має бути, що кожен із команди може запускати сценарії зі своєї машини, а результати отримуються електронною поштою
Які принципи Agile можна застосувати до автоматизації?
Кілька дуже простих порад:
- Нехай все буде просто. Робіть те, що потрібно. Я бачив багато випадків, коли ми пропонуємо реалізацію з цукровим покриттям, що робить автоматизацію надмірно складною. Давайте уникати непотрібних речей
- Робити прості речі не означає робити найпростіші справи. Це означає робити кроки дитини для досягнення ваших цілей з автоматизації. Ви можете взяти просту функцію для автоматизації, але може трапитися так, що впровадження автоматизації виявляється складним
- Застосовуйте підхід усієї команди . Я вірю, що всі є випробувачами в спритній команді. Не будемо обмежувати роботу з автоматизації ні лише тестувальниками, ні лише розробниками. Кожна з дисциплін має стати назустріч одній для досягнення автоматизації проекту. Цей підхід також був би ефективним для вирішення будь-яких технічних питань, що поставляються із впровадженням
- Структура розроблена в Agile . Не намагайтеся надати занадто багато функцій, які можуть надмірно ускладнити частину автоматизації
- Не поспішайте робити це правильно. Витратьте трохи часу на його правильне проектування, щоб уникнути технічної заборгованості
- Отримуйте часті відгуки
- Застосовуйте належні стандарти кодування та практику. Дизайн повинен бути простим, застосовувати концепції OOPS і намагатися тримати тести незалежними один від одного. Розглянемо такі фактори, як 'ремонтопридатність' тестового костюма
Чи бачу я якісь проблеми під час автоматизації в Agile?
Автоматизація в Agile світі дійсно приходить свої власні виклики :
- Нам потрібно дуже добре планувати. Вирішивши відповідний набір тестів, інструмент, фреймворк та підхід, всі вони потребують відповідної стратегії. Однак слід пам’ятати, що НЕ слід надмірно планувати. Майте на увазі MVP (мінімальний життєздатний продукт)
- Компрометуючи якість коду, тому що ми хочемо забезпечити його швидку роботу: ми повинні пам’ятати, що технічна заборгованість добре тримається і в автоматизації
- Команди в більшості випадків не дотримуються 'Підходу цілої команди' і несуть всю відповідальність за кодування та підтримку автоматизованого набору для тестувальників, що додає відповідальності тестувальникам
- Автоматизація функціональних тестів є жорсткішою, ніж автоматизація інтерфейсу користувача
Серед усіх цих викликів найважливішою задачею є підвищення кваліфікації тестувальників.
Виконання та підтримка автоматизації для команди майже схоже на програмування (розробку), якою займаються програмісти (розробники). Важливим є не тільки впровадження, але й інтеграція автоматизованого костюма до ІТ, і вимагає, щоб тестери вивчали та застосовували нові навички та вивчали нові інструменти та технології.
Деякі інструменти з відкритим кодом, які вписуються в Agile
- Селен WebDriver - Для інтерфейсу користувача
- Селенова сітка - Для паралельного виконання
- Огірок - для BDD
- JMeter - Для перевірки продуктивності
- МИЛО - Для веб-сервісів
- WireMock - тестування веб-служб, коли веб-служба недоступна.
- Епохи - для мобільних
Дозвольте закінчити відомими тестовими квадрантами Agile:
Квадрант 1 - це тест блоку та компонентів, який можна автоматизувати за допомогою підходу TDD.
Квадрант 2 розповідає про тестування функціональності, де ми можемо застосувати підхід BDD.
Квадрант 3 є єдиним квадрантом, який має сферу ручного тестування.
Квадрант 4 в основному розповідає про тестування, яке можна досягти за допомогою деяких інструментів. Це дбає про навантажувальні тести, стрес-тести, об’ємні тести та тести безпеки.
Висновок
Окрім тестів на дим та регресії, існує багато можливостей автоматизації. Тому нам доведеться звільнитися від концепції обмеження автоматизації лише такими типами тестування, що, у свою чергу, означає, що набір навичок тестувальника в Agile вимагає не лише пошуку помилок та дефектів.
злиття сортування коду c ++
Тестери повинні бути більш співпрацюючими та вдосконалювати свої навички програмування / автоматизації. Якщо все більше і більше тестів будуть автоматизовані, це дасть тестувальникам більше часу для участі у більш складних і складних завданнях.
Про автора: Ця стаття написана членом команди STH Шилпою. Вона працює у галузі тестування програмного забезпечення протягом останніх 10 років у таких сферах, як Інтернет-реклама, Інвестиційний банкінг та Телеком.
Будь ласка, поділіться своїми коментарями та думками нижче.
Рекомендована література
- Підручник з AutoIt - Автозавантаження, встановлення та базовий сценарій AutoIt
- Чи втрачають тестери контроль над тестуванням через автоматизацію?
- Проблеми, пов'язані з ручним та автоматичним тестуванням
- Найкращі засоби тестування програмного забезпечення 2021 р. [Інструменти автоматизації тестування якості]
- 10-етапний процес тестування автоматизації: як розпочати тестування автоматизації у своїй організації
- Ви фахівець з ручного тестування чи автоматизації? Підробіть для нас!
- 11 найкращих засобів автоматизації для тестування програм для Android (Інструменти для тестування додатків Android)
- Топ 10+ найкращих книг про тестування програмного забезпечення (книги про тестування з ручного та автоматичного тестування)