continuous testing devops
Що таке безперервне тестування та конвеєр безперервного тестування в DevOps?
Сподіваюся, вам усім сподобався останній підручник Постійне розгортання в DevOps .
Ми знаємо важливість тестування при будь-якій доставці програмного забезпечення, і DevOps є коротким циклом поставок, неможливо запускати всі розроблені тестові кейси кожен раз вручну, коли один рядок коду оновлюється в інструменті контролю версій, і саме там постійно тестування та автоматизований конвеєр безперервного тестування з’являються в DevOps.
Пропоноване читання => Навчальний посібник DevOps від Scratch
Переваги КТ:
-
- Якість і швидкість - це величезні переваги КТ.
- Швидший і швидший відгук про код.
- Підвищує впевненість команди та заохочує їх постійно вдосконалюватися.
ВІДЕО Частина 3 Блок 4: Постійне тестування- 14 хвилин 39 секунд
Стенограма:
У цьому блоці ми дізнаємось про Постійне випробування та безперервне випробування трубопроводу детально.
Безперервне тестування - ще один важливий процес конвеєра безперервної доставки разом із Безперервною інтеграцією, в конвеєр, який включає, різні етапи тестування де автоматизовані тести проводяться разом із автоматизованими показниками якості між ними.
Таким чином, безперервне тестування - це виконання автоматизованих тестів безперервно та неодноразово щодо бази коду та різних середовищ розгортання.
В основному модульні тести, статичний аналіз коду, аналіз коду безпеки, інтеграційні тести, тести навантаження та продуктивності є частиною постійного тестування, яке виконується в автоматизованому конвеєрі безперервного тестування.
Оскільки безперервну інтеграцію та постійне розгортання називають CI, CD, безперервне тестування частіше називають CT.
Якщо ви бачите цю діаграму, яка є конвеєром безперервної доставки, цей конвеєр включає два конвеєри, один - конвеєр побудови, який є конвеєром CI, або конвеєр безперервної інтеграції, який складається з автоматизованого тригера збірки, компіляції, побудови та розгортання.
Інший - випробувальний трубопровід, який є безперервним випробувальним трубопроводом
Тепер давайте подивимось більше на безперервне тестування.
Ми знаємо важливість тестування, тестування кожного рядка коду ... .. тестування кожен раз ... і тестування на різних етапах, і практично неможливо запустити всі розроблені тести щоразу вручну, коли рядок коду оновлюється до контролю версій.
Ось тут і з’являється безперервне тестування.
Отже, якщо код, який потрапляє в автоматизований безперервний інтегрований конвеєр, не ретельно перевіряється та не забезпечує необхідну якість, немає ніякої користі для передачі програмного забезпечення споживачам. Я маю на увазі якість не може бути забезпечена, якщо код ретельно не перевірений.
Отже, безперервне тестування, як було визначено раніше, полягає у проведенні різних типів тестів, безперервно на базі коду та в різних середовищах, на яких воно розгортається, як це було визначено та розроблено в конвеєрі безперервної доставки.
створення бінарного дерева пошуку в Java
Як ви бачите на малюнку, модульні тести відбуваються на самому сервері CI, який тестує кожен блок системи ізольовано.
Тести інтеграції відбуваються в середовищі Integration, яке в основному перевіряє інтегровані разом компоненти. Системні тести в середовищі тестування системи, де система BIG з усіма інтегрованими компонентами та інтерфейсами тестується за сценаріями системного рівня в середовищі тестування системи тощо.
І глибина тестування часто прогресує, коли моделювання середовища наближається до виробництва.
Постійне тестування поступово стає жорсткішим і тривалішим із прогресуванням до виробничого середовища, оскільки нам потрібно повільно додавати ряд тестів і більш складних тестів у міру дорослішання коду та розвитку складності середовища.
Не те, щоб однакові тестові випадки були запущені протягом усього періоду, тестові випадки потребують оновлення щоразу на різних етапах, а автоматизовані сценарії оновлюються, оскільки код стає більш дозрілим, переходить на більш високий рівень середовища, де конфігурації та інфраструктура також заздалегідь, поки воно не увійде у виробництво.
Отже, навіть час, необхідний для запуску тестів, збільшується в міру просування тесту до точки випуску, наприклад, для модульного тестування може знадобитися дуже менше часу, тоді як для деяких тестів інтеграції чи деяких системних тестів чи тестів на завантаження може знадобитися кілька довгих годин кілька днів до запуску.
Тут безперервне тестування в основному буде запускати автоматизовані тестові кейси автоматично з тригером. Але, як ми визначили раніше, безперервна доставка також включає певні ручні випробування та ворота, де певні випробування проводяться вручну перед тим, як почати виробництво.
Ці проміжні показники якості на кожному етапі тестування і підвищують довіру до коду.
Отже, конвеєр безперервного тестування як такий включає модульне тестування разом із попередніми автоматизованими верифікаціями безпеки. Потім потрапляє на рівень інтеграції тестування, де запускаються автоматизовані тести інтеграції, а потім на системний рівень, де сценарії системного рівня автоматизуються та запускаються.
Тут навіть проводяться певні сценарії тестування продуктивності.
Потім переходить до 'Прийомного тестування', яке, в основному, включає автоматизовані тестові випадки прийому сайтів, а потім, нарешті, до 'Тестування прийняття користувачем', яке може бути ручним виконанням і включає участь кінцевого користувача у проведенні тестів, і це буде своєрідна остаточна підписка на продукт або особливість, де викликається ручний затвор і, нарешті, розгортається на виробничому майданчику.
Отже, в міру того, як постійне тестування прогресує, складність тестів і тестового середовища збільшується і потрапляє в середовище, яке знаходиться ближче до виробництва, як імітація.
Мені не потрібно конкретно згадувати, що всі ці етапи тестування включають також тести перевірки збірки, тести на обґрунтованість, тести на дим та регресію, знову ж таки, як я вже сказав, це залежить від того, що ми розробляємо в процесі безперервного тестування та доставки.
Це типовий трубопровід безперервного випробування, який може бути розроблений командою на основі типу продукту та різних рівнів випробувань та видів випробувань, які вимагає виріб.
Постійне тестування вимагає інтеграції платформи автоматизації з інструментом контролю версій та CI та різноманітними автоматизованими інструментами для проведення функціонального та нефункціонального тестування на різних етапах тестування, наприклад:
- Сонар для статичного аналізу коду,
- Укріпити для безпечного аналізу коду,
- Селен для функціонального тестування,
- Навантажувач для випробувань навантаження тощо,
Microsoft TFS, Дженкінс, шеф-кухар, маріонетка - небагато інструментів, доступних на ринку для проектування конвеєра CI-CD.
Але справа в тому, що ці інструменти можуть не підтримувати повну наскрізну автоматизацію, залежно від використовуваного інструменту контролю версій, тому мало хто з організацій може віддавати перевагу розробці власних систем автоматизації, що дозволяє наскрізну автоматизацію конвеєра доставки з коду зобов’язати доставку коду.
Отже, безперервне тестування, яке є дуже важливою частиною тестування, забезпечує якість продукту або випуску, і слід бути дуже обережним щодо вибору інструменту, основи тощо, що в першу чергу визначає якість і швидкість доставки.
Отже, налаштування правильного конвеєра для безперервного випробування займає трохи більше часу в конвеєрі для безперервної доставки. Не тільки на частині інструменту та фреймворку, але й на частині тестів. Постійне тестування також включає визначення конвеєра розгортання всередині.
Оскільки CT вимагає автоматизованого розгортання нарощування в різних середовищах на різних етапах, що вимагає автоматизації розгортання та налаштування середовищ за допомогою автоматизованих сценаріїв.
шаблон прийняття тесту на прийняття користувача
Ці автоматизовані сценарії, що включають налаштування інфраструктури та конфігурацій середовища як коду, перевіряються в інструменті контролю версій, а конвеєр доставки бере його з інструменту контролю версій для здійснення розгортання. Це називається конвеєром розгортання.
Тепер давайте перейдемо до переваг КТ,
Досягнення якості та швидкості є найбільшою перевагою постійного тестування.
На відміну від раніше, коли тестування відбувалося лише в кінці, тестування - це концепція безперервного тестування, а отже, безперервне тестування в трубопроводі доставки, дозволяє команді впровадити якісні ворота де завгодно та будь-яку кількість якісних воріт, як вони хочуть, для того, щоб для досягнення необхідного рівня якості.
Отже, якщо взагалі код не вдається протестувати в якійсь конкретній точці або затворі конвеєра, команда може повернутися назад і автоматично провалити все розгортання до цього моменту.
Це дає чітке вказівку як команді розробників, так і Ops, що там чогось не вистачає, і команда може працювати над цим, щоб це виправити. Отже, це перевага та гнучкість конвеєра для безперервного випробування.
Отже, запровадження якісних обмежень на різних етапах випробувань краще регулює якість коду.
Чим більше кількість шлюзів, які проходить код, тим більше буде впевненість команди в коді, що вона зможе дійти до виробництва на більш високому рівні якості.
Отже, безперервне тестування підвищує довіру команди та спонукає їх до постійного вдосконалення.
Загалом, якщо команда насправді не нехтує будь-якими невдалими випробуваннями на будь-яких етапах випробувань або якісними переходами в трубопроводі, безумовно, безперервне тестування буде бонусом за досягнення якісних цілей.
Отже, щоб зробити висновок щодо безперервного тестування, безпосередньо з модульних тестів, які виконуються на попередньому етапі, через приймально-здавальне тестування, тестування продуктивності та навіть певні ручні тести, які збираються виконати, ДУЖЕ ДУЖЕ ДУЖЕ критичні для визначення безперервного тестування в конвеєрі DevOps.
На цьому наша дискусія щодо частин третьої теми безперервної інтеграції, безперервної доставки та постійного тестування.
У нашому майбутньому уроці ми поговоримо далі Управління конфігурацією, управління випусками та моніторинг продуктивності додатків.
НАЗАД Підручник | НАСТУПНИЙ підручник
Рекомендована література
- Постійне розгортання в DevOps
- Постійна доставка в DevOps
- 10 найкращих інструментів безперервного тестування для тестування DevOps (Список 2021)
- Найкращі засоби тестування програмного забезпечення 2021 р. (Засоби автоматизації тестування якості)
- Підручник з тестування DevOps: Як DevOps вплине на тестування якості?
- Підсумок відео-підручників DevOps
- Постійна інтеграція в DevOps
- Завантажити тестувальник електронної книги