Непрекъснато тестване в DevOps
Какво е непрекъснато тестване?
Непрекъснато тестване в DevOps е тип софтуерно тестване, което включва тестване на софтуера на всеки етап от жизнения цикъл на разработката на софтуера. Целта на непрекъснатото тестване е да се оцени качеството на софтуера на всяка стъпка от процеса на непрекъсната доставка чрез ранно и често тестване.
Процесът на непрекъснато тестване в DevOps включва заинтересовани страни като разработчик, DevOps, QA и Operaционна система.
По какво се различава непрекъснатото тестване?
Старият начин на тестване беше ориентиран към ръцете. Софтуерът се предаваше от един екип на друг. Един проект ще има определени фази на развитие и QA. QA екипите винаги са искали повече време, за да осигурят качество. Целта беше качеството да надделее над графика на проекта.
Бизнесът обаче иска по-бърза доставка на софтуер до крайния потребител. Колкото по-нов е софтуерът, толкова по-добре може да бъде рекламиран и да увеличи потенциала за приходи на компанията. Следователно беше разработен нов начин за тестване.
Непрекъснато означава непрекъснато тестване, което се извършва непрекъснато. В непрекъснат процес на DevOps софтуерната промяна (кандидат за версия) непрекъснато се движи от разработка към тестване към внедряване.
Кодът непрекъснато се разработва, доставя, тества и внедрява.
Например, всеки път, когато разработчик проверява кода в сървъра за изходен код, като автоматичният набор от тестове на Jenkins се изпълнява в непрекъснат процес. Ако тестовете се провалят, изграждането се отхвърля и разработчикът се уведомява. Ако компилацията премине теста, тя се внедрява на сървъри за производителност, QA за изчерпателни функционални тестове и тестове за натоварване. Тестовете се провеждат паралелно. Ако тестовете преминат успешно, софтуерът се внедрява в производство.
Непрекъснатото тестване е малко зъбче в цикъла на непрекъснато развитие, интеграция и внедряване.
Разработката на софтуер не е същата, както беше в миналото, съкращаваме разработката от месец на седмици. Текущият стек за тестване (вижте фигурата по-горе) е озаглавен към тестване на потребителския интерфейс. Но целта е да има все повече и повече автоматизирани модулни тестове.
Как непрекъснатото тестване е различно от автоматизацията на тестовете?
Автоматизация на тестовете срещу непрекъснато тестване
Параметър | Тестова автоматизация | Непрекъснато тестване |
---|---|---|
дефиниция | Автоматизацията на тестовете е процес, при който се използва инструмент или софтуер за автоматизиране на задачи. | Това е методология за тестване на софтуер, която се фокусира върху постигане на непрекъснато качество и подобрение. |
Цел | Набор от подобни или повтарящи се задачи, които машината може да изпълни по-бързо и с по-малко грешки. | Непрекъснатият процес на тестване помага да се открие рискът, да се справи с него и да се подобри качеството на продукта. |
Предпоставка | Автоматизацията при тестване е възможна без интегриране на непрекъснато тестване. | Непрекъснатото тестване не може да бъде приложено без автоматизация на теста. |
Време | Пускането на софтуер може да отнеме от месец до години. | Версията на софтуера може да се пуска всяка седмица или всеки час. |
Обратна връзка | Редовна обратна връзка след тестване на всяка версия. | Обратната връзка на всеки етап трябва да бъде незабавна. |
История | Автоматизираното тестване се извършва от десетилетия, за да направи процеса на тестване по-бърз. | Непрекъснатото тестване е сравнително по-нова концепция. |
Как да направите непрекъснато тестване
- Използване на инструменти за генериране на тестов пакет за автоматизация от потребителски истории/изисквания
- Създайте тестова среда.
- Копирайте и анонимизирайте производствените данни, за да създадете тестово легло с данни
- Използвайте виртуализация на услугата, за да тествате API
- Паралелно тестване на производителността
Инструменти за непрекъснато тестване
Ето подбран списък с най-добрите Инструменти за непрекъснато тестване :
1) QuerySurge
QuerySurge е интелигентното решение за тестване на данни, което е първото по рода си пълно DevOps решение за непрекъснато тестване на данни. Ключовите характеристики включват стабилен API с 60+ обаждания, детайлно разузнаване на данни и анализ на данни, безпроблемна интеграция в конвейера DevOps за непрекъснато тестване и бърза проверка на големи количества данни.
Започнете да тествате безплатно
2) Дженкинс
Jenkins е инструмент за непрекъсната интеграция, който е написан с помощта на Java език. Този инструмент може да бъде конфигуриран чрез GUI интерфейс или конзолни команди.
Изтегляне на връзката: https://jenkins.io/
3) Травис
Travis е инструмент за непрекъснато тестване, хостван в GitHub. Той предлага хоствани и локални варианти. Предоставя разнообразие от различни езици и добра документация.
Изтегляне на връзката: https://travis-ci.org/
4) Selenium
Selenium е инструмент за тестване на софтуер с отворен код. Поддържа всички водещи браузъри като Firefox, Chrome, IE и Safari. Selenium WebDriver се използва за автоматизиране на тестването на уеб приложения.
Изтегляне на връзката: https://www.seleniumhq.org/
Предимства на непрекъснатото тестване
- Ускорете доставката на софтуер
- Непрекъснатото тестване подобрява качеството на кода
- Помага да се оцени точното покритие на бизнес риска.
- Той безпроблемно се интегрира в DevOps Process
- Помага за създаването на гъвкав и надежден процес само за часове вместо месеци.
- Ускорява времето за пускане на пазара с непрекъснат механизъм за обратна връзка.
- Обединява традиционно изолирани екипи, за да отговори на нуждите на съвременните предприятия. Премахва прекъсването на връзката между екипите за разработка, тестване и операции.
- Автоматизацията на тестовете помага за постигане на последователност чрез поддържане на една и съща конфигурация за всички съответни тестове.
- Набляга на бизнес очакванията за смекчаване на бизнес рисковете
- Осигуряване на повсеместен достъп до тестова среда с виртуализация на услугата
Предизвикателства на непрекъснатото тестване
- Традиционният процес ограничава културната промяна сред професионалистите по развитие и QA.
- Липса на DevOps умения и правилни инструменти за тестване в Agile & DevOps среди.
- Хетерогенни тестови среди, които никога няма да отразяват производствената среда.
- Конвенционален процес на тестване и свободно дефинирано управление на тестови данни.
- По-дългите цикли на интегриране на код създават проблеми с интеграцията и късни корекции на дефекти
- Недостатъчни и неефективни ресурси и тестови среди
- Сложна архитектура на приложението и бизнес логика, които ограничават приемането на DevOps.
Заключение
- В софтуерното инженерство непрекъснатото тестване е процес на ранно тестване, често тестване, тестване навсякъде и автоматизиране.
- Старият начин на тестване беше ориентиран към предаване. Софтуерът се предава от един екип на друг
- Дженкинс, Травис и Selenium са популярни непрекъснато тестване и Инструменти за интегриране.
- Непрекъснатото тестване предоставя полезна обратна връзка според всеки етап от тръбопровода за доставка.
- Непрекъснатото тестване помага за подобряване на качеството на кода
- Традиционният процес ограничава културната промяна сред професионалистите по развитие и QA.
- По-дългите цикли на интегриране на код създават проблеми с интеграцията и късни корекции на дефекти