what is infrastructure testing
Цей всеосяжний посібник з тестування інфраструктури охоплює його переваги, виклики, інструменти та методології тестування інфраструктури:
Інфраструктура є спільною для багатьох проектів. Тестування інфраструктури - це тестування апаратних та програмних залежностей, необхідних для запуску програмних продуктів. Це допомагає покрити товарні ризики, що стосуються цільової інфраструктури.
Цей посібник допоможе вам навчитися тестуванню інфраструктури з нуля. Ми розглянемо повні деталі, такі як переваги та виклики, хто може виконувати, коли виконувати та методи проведення цього тестування. Інструменти тестування інфраструктури також розглядаються в цьому посібнику.
Що ви дізнаєтесь:
- Що таке інфраструктура?
- Що таке тестування інфраструктури?
- Методології тестування інфраструктури
- Інструменти тестування інфраструктури
- Висновок
Що таке інфраструктура?
Екосистема ІТ-інфраструктури включає платформи операційних систем (такі як Windows, UNIX, Linux, macOS), комп'ютерні апаратні платформи (такі як Dell, IBM, Sun, HP, Apple), Інтернет-платформи (такі як Apache, Cisco, Microsoft IIS, .NET ), Управління даними та зберігання даних (наприклад, IBM DB2, Oracle, SQL Server, MySQL) та корпоративні програмні додатки (такі як SAP, Oracle, Microsoft).
Що таке тестування інфраструктури?
Кожне програмне забезпечення вимагає інфраструктури для виконання своїх дій. Тестування інфраструктури - це процес тестування, який охоплює обладнання, програмне забезпечення та мережі. Він включає тестування будь-якого коду, який зчитує значення конфігурації з різних речей в ІТ-середовищі та порівнює їх із запланованими результатами.
Це зменшує ризик несправності. Це тестування включає тестування, процедури, що гарантують, що ІТ-програми та основна інфраструктура налаштовані на виконання, адаптованість, незмінну якість, доступність, продуктивність та масштабованість. Метою є тестування інфраструктури між тестовими середовищами, інструментами тестування та офісними середовищами.
Чому необхідне тестування інфраструктури?
Організації витрачають багато доларів, щоб переконатись, що їхні бізнес-програми перевірені на досконалість. Однак основний фундамент, тобто інфраструктура, яка розміщує та передає ці програми, час від часу перевіряється і загалом недооцінюється.
Питання та відповіді співбесіди інженера з настільної підтримки
Тестування інфраструктури потрібно для зменшення ризику виходу з ладу будь-якого апаратного чи програмного компонента. Коли для програмного забезпечення готується новий дизайн інфраструктури, стає необхідним провести це тестування. Це потрібно, щоб переконатися, що нова функціональність інфраструктури працює належним чином. Проблеми виникають більш імовірно, коли новий інфраструктурний модуль інтегрується з проектом.
Збої в інфраструктурі виникають, коли не планується тестування масштабованої інфраструктури. Тому, щоб запобігти порушенням та проблемам в останню хвилину, це тестування потрібно провести.
Це тестування потрібно для виявлення дефектів, які не були ефективно виявлені під час різних процесів тестування. Важливим є аналіз програмного забезпечення, коли змінюються апаратні та програмні ресурси. Це робиться для аналізу ефективності та продуктивності системи.
Потрібна своєчасна реалізація цього типу тестування, оскільки проекти потребують високих витрат на інфраструктуру. Отже, необхідні хороші знання цього тестування, щоб мінімізувати витрати, пов'язані з ризиками проекту. Щоб уникнути будь-яких збоїв, це тестування потрібно як галузевий стандарт.
Які переваги тестування інфраструктури?
Планований та вичерпний підхід тестування інфраструктури дає багато переваг як програмному продукту, так і організаціям.
Нижче наведено кілька переваг:
- Скорочення виробничих збоїв.
- Покращення ідентифікації дефектів перед виконанням виробництва. Підвищіть якість інфраструктури з нульовим ковзанням дефектів до виробництва.
- Прискорене виконання тесту, розширення можливостей для початку роботи.
- Це допомагає щорічно економити витрати як в операціях, так і в бізнесі.
- Переконайтеся, що програмне забезпечення працює в систематичній та контрольованій процедурі.
- Скорочення простою.
- Поліпшення якості обслуговування.
- Наявність стабільних середовищ.
- Зниження витрат, пов'язаних з ризиками.
- Покращений досвід користування.
Проблеми тестування інфраструктури
Давайте розглянемо кілька викликів, з якими стикаються компанії, коли вони прагнуть застосувати тестування інфраструктури.
# 1) Віддалене середовище
Тестові середовища або ресурси розміщені в топографічно віддалених регіонах, завдяки чому тестові групи покладаються на групи підтримки в цьому районі для вирішення проблем, пов’язаних з обладнанням, апаратними компонентами, програмними компонентами, мережею тощо. Це часто вимагає певних інвестицій щодо часу та причин затримки, особливо там, де команди знаходяться в різних часових поясах.
# 2) Відсутність спеціальної команди
Відсутність знань у команди є основною проблемою для проведення цього тестування. Спеціальна команда повинна вести інформацію, пов’язану з усіма видами діяльності, включаючи графіки, плани, охоплення, звіти про стан.
# 3) Дослідження проблем тестового середовища
Багато разів проблеми тестового середовища не могли бути вирішені і потребують розслідування. Потрібна координація з відповідними командами до вирішення проблеми.
# 4) Підтримання середовища в одному місці
Підтримання загального сховища тестових середовищ, їх стара сумісність, а також останні версії, становлять головну проблему під час проведення цього тестування. Деталі з’єднання та конфігурації всіх версій не зберігаються.
No5) Ручна робота
Деякі заходи, що беруть участь у цьому тестуванні, вимагають ручної роботи, оскільки відсутні інструменти. Це призводить до помилок людини та затримок у процесі.
# 6) Відсутність стандартного визначення для тестування інфраструктури
Більшість людей досі не знають про впровадження та процеси. Неправильне знання та розуміння часто призводять до труднощів у реалізації. Виникає багато нових проблем, які можуть вплинути на стабільність процесу.
# 7) Ізольовані команди
Існує великий розрив між розташуванням команд. Зазвичай це призводить до недостатньої прозорості та поганої роботи в команді.
Хто може проводити тестування інфраструктури?
Різні групи беруть участь у цьому типі тестування. Вони пояснюються нижче:
# 1) Команда випробувань інфраструктури
Команда тестування інфраструктури має чималу кількість знань, пов’язаних із цим тестуванням. Вони також беруть участь у роботі команди із забезпечення якості. Ця команда знає, як перевірити ІТ-інфраструктуру. Ця команда знає, як розробити тестові кейси для такого типу тестування.
# 2) Команда системного адміністратора
Команда системного адміністратора часто тестує інфраструктуру мережевого рівня. Розробка команди та тестування документів на основі їх досвіду. Вони несуть відповідальність за те, щоб додатки не зазнавали впливу після будь-яких змін у мережі.
# 3) Команда з обслуговування інфраструктури
Ця команда відіграє дуже важливу роль. Вони беруть участь на ранній стадії і відповідають за встановлення середовищ для тестування відповідно до вимог. Вони беруть участь у плануванні випробувань та підтримці інфраструктурного середовища.
# 4) Команда забезпечення якості
Команда контролю якості відповідає за проведення регресійного тесту. Вони також беруть участь в інтеграційному тестуванні. Вони проводять тестування в різних тестових середовищах, які створені відповідно до іншої інфраструктури.
# 5) Керівник проекту
Керівник проекту відповідає за управління проектом. Вони беруть участь у плануванні, проектуванні, документації тестових випадків, необхідних для цього типу тестування. Менеджер проектів синхронізується з усіма командами.
Коли проводити тестування інфраструктури?
Існує нагальна необхідність проводити це тестування щоразу, коли вносяться будь-які зміни, пов'язані з інфраструктурою.
Прикладами таких змін є:
- Будь-який новий патч в системі розробляється.
- Бувають нові оновлення системи.
- Будь-яке оновлення операційної системи.
- Версія / структура бази даних оновлена.
- Коли існує модернізація пам'яті для серверів.
- Впровадження нового інструменту.
- Виправлення безпеки.
- Оновлення програмного забезпечення.
Іноді цей тип тестування стає більш важливим, коли зустрічається міграція бази даних або центру обробки даних. Необхідна більша увага, коли відбуваються різноманітні та швидкі зміни у застосуванні та коли йдеться про міграцію інфраструктури.
Він також виконується, коли вводиться підтримка нових пристроїв для програмного забезпечення.
Приклад:
- Нові ноутбуки / настільні комп'ютери
- Нові мобільні пристрої
- Нові сторонні інструменти
Методології тестування інфраструктури
У нас є різні модулі в цьому. Нижче перелічено кілька з них:
- Інфраструктура сервера / клієнта
- Міграція даних
- Тестування інфраструктури в хмарі
- Тестування на рівні мережі
- Встановлення / видалення / розгортання
- Тестування інфраструктури середовища
- TDD підхід
# 1) Інфраструктура сервера / клієнта
До серверів належать веб-сервери, файлові сервери, поштові сервери, проксі-сервери, віртуальні сервери та фізичні сервери на апаратному забезпеченні. Клієнт включає ОС, програми, налаштування користувача тощо. Сервери запускають різні сервіси, і ці послуги можуть використовуватися клієнтами.
Основна мета - перевірити якість серверів, настільних ПК, операційних систем та обладнання. Серверні / клієнтські компоненти тестуються для забезпечення покращення продуктивності інфраструктури у виробничому середовищі. Він також включає тестування встановлення або видалення програм, тестування сумісності браузера, тестування інтеграції з різними версіями ОС та налаштувань користувача.
Процедура:
- Найголовніше - це зібрати вимоги від зацікавлених сторін.
- Складіть план тестування відповідно до розуміння необхідної інфраструктури.
- Потім розробляються тестові кейси, що охоплюють підтримку операційних систем, сценарії модернізації, обсяг тестування інфраструктури сервера / клієнта, а також тестування функціональності.
- Після затвердження тестових випадків команда контролю якості виконує кожен сценарій та відповідні тестові кейси.
Усі зміни, пов’язані із сервером / клієнтом, такі як модернізація, зміни конфігурації вже перевірені на установках контролю якості, тому це гарантує менший вплив на виробниче середовище. Також різні версії ОС будуть протестовані перед введенням у виробництво. Більше того, якщо щось не вдалося у виробництві, попередньо перевіряються резервні процедури, щоб забезпечити резервне копіювання.
# 2) Міграція даних
Міграція даних включає дані, перенесені зі старої версії в нову версію, дані, перенесені з одного сервера на інший, а також дані, перенесені в різні конфігурації.
Основною метою тестування міграції даних є перевірка міграції даних на різних версіях, серверах, нових збірках. Перевірте заявку, щоб засвідчити, що внаслідок міграції немає впливу. Тестування міграції даних також проводиться для перевірки продуктивності та затримки роботи програми.
Процедура:
- Перевірте програму до та після міграції.
- Перевірте сервери до і після міграції даних, щоб переконатися, що змін не спостерігається.
- Перевірте, чи не спостерігається змін у продуктивності програми після міграції даних.
- Перевірте додаток за допомогою різних версій бази даних
- Перевірте нову збірку, сумісну з усіма версіями бази даних.
- Перевірте різні параметри конфігурації сервера за допомогою різних версій бази даних
За допомогою тестування міграції даних можна виявити невідповідні конфігурації сервера. Будь-які проблеми зі збіркою серверів, які існують під час виконання міграції даних, можуть бути вирішені до розгортання виробництва. Тестування даних на міграцію покращує якість та стабільність продукту. Це тестування надалі допомагає у тестуванні інсталяції під час розгортання програми у виробничому середовищі.
# 3) Тестування інфраструктури в хмарі
Інформація та дані в основному зберігаються на віртуальних серверах, і ці сервери зберігаються та управляються постачальниками хмарних обчислень, такими як AWS.
Основною метою є сертифікація хмарних служб для різних версій програм. Перевірте архітектуру програми на хмарі. На Cloud моделюється реальний додаток, а також перевіряється продуктивність та масштабованість програм.
Процедура:
- Перевірте навантаження на додатки з різними конфігураціями.
- Виконайте регресійне тестування та переконайтеся, що програма не впливає на тестування навантаження.
- Перевірте, чи програма сумісна з браузером у хмарному середовищі.
- Тестова установка програми в хмарі.
- Перевірте, чи працює програма належним чином у різних хмарних середовищах.
Тестування інфраструктури в хмарі забезпечує безпомилкову реалізацію програми у виробничому середовищі. Це допомагає знати продуктивність, масштабованість та стабільність програми. Це допомагає використовувати ресурси, знайдені в хмарі, такі як будь-яке обладнання, програмне забезпечення та інфраструктура.
# 4) Тестування на рівні мережі
Мережа є найважливішою частиною інфраструктури програми. Мережа допомагає у спілкуванні між серверами, клієнтами та іншими мережами. Мережі мають різні модулі, такі як проксі-сервери, інфраструктура для підключення до Інтернету.
який найкращий конвертер з YouTube у mp3 - -
Основна мета - контролювати та керувати будь-якими проблемами на рівні мережі, такими як надмірне використання ресурсів, простої сервера, конфігурація системи, інфраструктура, необхідна для роботи, виправлення операційної системи.
Процедура:
- Перевірте мережевий рівень на наявність майбутніх оновлень програми.
- Тест на наявність резервних процедур у разі будь-якої несправності у виробничому середовищі.
- Виконайте тестування системи, тестування UAT, тестування безпеки.
- Розробити тестові кейси та підготувати дані тестів.
- Переконайтеся, що після будь-якого нового випуску це не вплине на будь-які послуги сервера / мережі.
- Тест на ізольовану мережу.
- Перевірте вплив на продуктивність програми в різних мережах, таких як VPN, Wi-Fi, LAN тощо.
Тестування інфраструктури на рівні мережі покращує час відновлення. Він забезпечує резервне копіювання та відновлює механізми. Це також допомагає у безпеці додатків.
# 5) Встановлення / видалення / розгортання
Основною метою тестування інфраструктури під час встановлення є забезпечення того, щоб щоразу, коли новий клієнт використовує додаток, не виникало жодних проблем при першій установці програми. Видалення програми виконується для перевірки процесу виходу програми.
Процедура:
- Перевірте наявність програм встановлення, необхідних для встановлення програми.
- Перевірте наявність додаткових бібліотек, побудуйте пакети.
- Перевірте час, необхідний для встановлення та видалення програми.
- Встановіть програму на різні операційні системи.
- Потрібен тест на дисковий простір.
- Перевірте, чи всі файли видаляються після видалення програми.
Тестування інфраструктури під час встановлення / видалення / розгортання забезпечує можливість встановлення програми через мережу в певний час. Це гарантує, що будь-який патч може бути встановлений пізніше чи ні. Допомагає покращити обсяг пам’яті, необхідний програмі.
# 6) Тестова інфраструктура середовища
Тестове середовище - це сукупність апаратних засобів, програмного забезпечення, інструментів та процесів. Для точного та ефективного проведення тестування необхідне середовище тестування. Тестове середовище також включає робоче місце, де тестерам забезпечується хороша мережа, ПК та джерело живлення для виконання їх роботи.
Основна мета - перевірити встановлення програмного забезпечення, налаштування конфігурації програми, вибрати правильні інструменти тестування, які підтримують планування тесту, виконання тесту. Це також забезпечує безперервність виконання тесту.
Процедура:
- Налаштуйте тестове середовище для регулярних випусків проекту.
- Створіть тестове середовище для випусків виправлень.
- Створюйте рішення для управління проблемами середовища сервера та клієнта.
- Доопрацювати інструменти тестування для плану випробувань, розробки тесту та виконання.
- Визначте інструменти для налагодження та повідомлення про помилки.
- Створіть документ для налаштування тестового середовища.
Використання інструментів та тестових середовищ має безліч переваг. Спостерігається більш висока якість. Продуктивність праці зростає із застосуванням інструментів. Тестові заходи проводяться оброблено. Документація тестового середовища допомагає новим членам команди краще зрозуміти.
# 7) Підхід TDD
Тестова розробка або фреймворк TDD - це метод спочатку писати тестові кейси на основі документів вимог, а потім реалізовувати функціональність відповідно до тесту.
Основна мета - знати ресурси інфраструктури, необхідні для проекту. Мета полягає у визначенні та організації інфраструктури безпеки, операцій та виробництва.
Процедура:
- Проектний документ на вимоги до інфраструктури.
- План проекту випробувань, що охоплює інфраструктуру, необхідну для застосування.
- Розробка тестових кейсів, що включають інфраструктурні тести
- Тест на різні конфігурації.
Підхід TDD допомагає поліпшити складність проекту. Будь-які зміни в інфраструктурі перевіряються перед початком роботи. Різні можливі конфігурації можуть бути реалізовані, оскільки тести вже розроблені.
Інструменти тестування інфраструктури
Кухар, ляльковий, і Відповідальний - це різні інструменти, що служать одній і тій же меті. Ці інструменти використовуються при розгортанні та налаштуванні різних серверів, необхідних для програми. Ці інструменти дуже допомагають, коли є складні завдання, пов’язані з інфраструктурою. Команді стає легко виконувати завдання на декількох серверах разом, використовуючи ці інструменти.
Команда, яка використовує ці інструменти, швидко розгортає кілька програм, залежностей та бібліотек. Інші заходи включають сервери, двійкові файли, файли журналів, механізми відновлення, оновлення версії, управління базами даних.
# 1) Шеф-кухар
Особливості: Шеф-кухар підтримує конкретні доменні мови Ruby. Тому не розробникам стає важко засвоїти цей інструмент. Незважаючи на складність мовної підтримки, цей інструмент є надзвичайно доступним. Шеф дотримується конфігурації ведучого-підлеглого. У механізмі ведучий-підлеглий основний сервер, тобто сервер шеф-кухаря, може бути замінений резервним сервером, якщо в будь-якому випадку трапляється помилка.
Ми можемо розгортати програми, налаштовувати інфраструктуру, а також налаштовувати мережу за допомогою Chef. Це не дуже захищено.
Ціна: Це дешевше, ніж Ляльковий, але дорожче, ніж Ансибль. Його ціна становить приблизно 13,5 тис. Доларів на рік до 100 вузлів.
Веб-сайт: Начальник
# 2) Ляльковий
Особливості: Лялька побудована на Ruby та підтримує DSL та Embedded Ruby. Програміст може керувати конфігурацією лише в тому випадку, якщо для використання вибрано Ляльку. Команда системних адміністраторів також знає про конфігурації цього інструменту. Це слідує архітектурі майстер-майстер. Якщо активний майстер зазнає несправності, інший майстер може замінити його.
Лялька корисна для масштабованості машин, для встановлення різних конфігурацій для кожного хоста. Якщо в конфігурацію внесено якісь зміни, цей інструмент допомагає вносити зміни глобально. Це також не настільки надійний інструмент.
Ціна: Його ціна є найвищою - приблизно 11 тис. - 20 тис. Доларів на рік до 100 вузлів.
Веб-сайт: Ляльковий
# 3) Відповідальний
Особливості: Ansible написаний на Python, а також підтримує сценарії команд YAML. Python зручний для читання, тому цей інструмент ідеально підходить для системних адміністраторів. Він працює з одним активним вузлом, але у випадку будь-яких збоїв у нього також є вторинний вузол.
Ansible дуже масштабований, тобто він може керувати великою кількістю вузлів без будь-яких проблем. У порівнянні з Puppet, Ansible зручніший з точки зору масштабованості. На відміну від Chef and Puppet, це надійно захищений інструмент із SSH.
Ціна: Його ціна набагато нижча, ніж Лялька та Шеф-кухар, приблизно 10 тис. Доларів на рік до 100 вузлів.
Веб-сайт: Відповідальний
Висновок
Тестування інфраструктури необхідно для життєвого циклу розробки програмного забезпечення, оскільки компанії несуть великі витрати на інфраструктуру. Різні теми, такі як переваги, проблеми, методи та люди, які беруть участь у цьому типі тестування, висвітлюються в цьому посібнику. Охоплюється також огляд інструментів тестування інфраструктури.
Рекомендована література
- Моніторинг продуктивності додатків та ІТ-інфраструктури за допомогою eG Enterprise Tool (практичний огляд)
- Типи тестування програмного забезпечення: різні типи тестування з деталями
- Тестування додатків - до основ тестування програмного забезпечення!
- Що таке гамма-тестування? Заключний етап тестування
- Що таке тестування на відповідність (тестування на відповідність)?
- Тестування продуктивності проти тестування навантаження проти стрес-тестування (різниця)
- Дослідницьке тестування проти сценарію: Хто перемагає?
- Що таке тестування масштабованості? Як перевірити масштабованість програми