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