Хмарне тестування

Матеріал з Київський столичний університет імені Бориса Грінченки
Перейти до: навігація, пошук

Хмарне тестування

Хмарне тестування - форма тестування програмного забезпечення, в якому веб-додатки використовують хмарні обчислювальні середовища («хмари»), щоб імітувати реальний трафік користувача

Огляд

Хмарне тестування використовує хмарну інфраструктуру для тестування програмного забезпечення. Організації, що переслідують тестування в цілому і навантаження, тестування продуктивності і моніторинг виробництва послуг, зокрема, викликають кілька проблем, таких як обмежений бюджет тестування, дотримання строків, високі витрати на випробування, велика кількість тестів, і мало або немає повторного використання тестів і географічну класифікацію користувачів які додають проблеми. Крім того забезпечення надання послуг високої якості і уникаючи простоїв вимагає перевірки у своїй обробці даних, поза дата-центром, або обидва випадки. Хмарне тестування, це вирішення всіх цих проблем. Ефективне необмежене зберігання, швидка наявність інфраструктури з масштабованістю, гнучкістю та доступністю розподіленого середовища тестування дозволяє скоротити час тестування великих додатків і привести до економічно ефективних рішень.

Потреба хмарного тестування

Традиційні підходи, щоб перевірити програмне забезпечення бере на себе високу вартість для імітації активності користувача у різних географічних розташуваннях. Тестування міжмережевих екранів і балансування навантаження включає в себе витрати на обладнання, програмне забезпечення і його зміст. У разі застосування, де темпи зростання числа користувачів є непередбачувані або є відмінності в середовищі розгортання в залежності від вимог клієнта, хмарне тестування є більш ефективним.

Види тестування

250px-Types_of_testing_in_cloud.png

Стрес

Стрес-тестування (Stress Testing) дозволяє перевірити наскільки додаток і система в цілому працездатні в умовах стресу і також оцінити здатність системи до регенерації, тобто до повернення до нормального стану після припинення впливу стресу. Стресом у даному контексті може бути підвищення інтенсивності виконання операцій до дуже високих значень або аварійна зміна конфігурації сервера. Також одним із завдань при стресовому тестуванні може бути оцінка деградації продуктивності, таким чином цілі стресового тестування можуть перетинатися з цілями тестування продуктивності.

Навантаження

Навантажувальне тестування — це просто форма тестування продуктивності. Воно зазвичай проводиться для того, щоб оцінити поведінку програми(додатка) із заданим очікуваним навантаженням. Цим навантаженням може бути, наприклад, кількість користувачів, які будуть одночасно працювати з програмою. Такий вид тестування дозволяє отримати час відгуку всіх найважливіших бізнес-транзакцій.

Продуктивність

Знаходження порогів, вузькостей та обмежень є частиною тестування продуктивності. Для цього, необхідно тестування продуктивності при певному навантаженні. При використанні хмарного тестування, легко створити таке середовище і змінювати природу трафіку при потребі. Це суттєво знижує вартість і час, імітуючи тисячі географічно цільових користувачів.

Функціональність

Функціональне тестування обох інтернет і не інтернет-додатків може бути виконана з використанням хмарного тестування. Процес перевірки всупереч специфікацій або системних вимог здійснюється у хмарі замість тестування програмного забезпечення.

Сумісність

Використання хмарних середовищ, екземпляри різних операційних систем можуть бути створені при потребі, що робить тестування на сумісність простішим та швидшим.

Продуктивність браузерів

З легкістю може бути досягнено результати перевірки підтримки додатків для різних типів браузерів і продуктивності в кожному типі. З хмари доступні різні інструменти для автоматизованого тестування веб-сайтів.

Латентність

Хмарне тестування використовується для вимірювання затримки між дією і відповідною відповіддю будь-якої програми після його розгортання у хмарі.

Кроки

Компанії імітують реальних веб-користувачів за допомогою хмарних послуг тестування, які надаються постачальниками хмарних послуг, таких як Advaltis, Compuware, HP, Keynote Systems, Load Impact, Neotys, RADview і SOASTA. Після того, як користувацькі сценарії розробляються і призначаються, постачальники послуг важелі хмарних серверів (надані постачальниками хмарних платформ, таких як Amazon.com, Google, Microsoft, Rackspace, і т. д.), щоб генерувати веб-трафік, що виходить з різних країн світу. Після завершення тестування, постачальники хмарних послуг надають результати та аналітику назад до корпоративних ІТ-фахівців в реальному часі для повного аналізу, як їх програми та інтернет буде виконуватись під час пікових обсягів.

700px-Steps_in_cloud_testing.png

Ключі успішного тестування

1.Розуміння гнучкості моделей / динамічний метод конфігурації платформ провайдера


2.Перебування в курсі мінливих послуг моніторингу провайдера і угод про рівень обслуговування (SLA)


3.Потенційне залучення постачальника послуг у якості поточної роботи партнера, якщо виробляти комерційне Off-The-shelf (COTS) програмне забезпечення.

Додатки

Хмарне тестування часто розглядається як тільки тестування продуктивності або навантаження, однак, як уже говорилося раніше воно охоплює багато інших видів тестування. Хмарні обчислення себе часто називають союз програмного забезпечення як послуга (SaaS) і обчислювальних утиліт. У зв'язку з виконання тестів, програмне забезпечення можу бути в якості служби яка буде генератором угоди і програмного забезпечення інфраструктури хмарного провайдера, або може бути просто останньою. Розподілені системи і паралельні системи в основному використовують цей підхід для тестування, через притаманний їм складний характер. D-хмара[8] є прикладом такого середовища тестування програмного забезпечення.


Для тестування не інтернет-додатків, віртуальні екземпляри середовища тестування можна швидко налаштувати, щоб зробити автоматичне тестування програми. Постачальники хмарних послуг тестування надають необхідне середовище тестування відповідно до вимог застосування тестів. Фактичне тестування додатків виконується командою тестувальників в організації, яка володіє додатками або третіх тестувальників.

Інструменти

Провідні постачальники послуг хмарних обчислень включають, Amazon, Advaltis, 3-Terra, Skytap, HP і SOASTA[9]. Деякі з інструментів для тестування хмарних включають в себе:

1.CloudTest

2.Soatest

3.HP LoadRunner

Переваги

Можливість і вартість для імітації веб-трафіку для тестування програмного забезпечення був інгібітором для загальної веб-надійності. Низька вартість і доступність дуже великих обчислювальних ресурсів в хмарі забезпечує можливість реплікації в реальному світі таких систем географічно розподілених користувачів, що виконують широкий спектр користувальницьких сценаріїв, в масштабах, раніше недосяжних в традиційних середовищах тестування. Мінімальний час запуску разом з гарантією якості може бути досягнуто шляхом хмарного тестування.

Нижче наведені деякі з ключових переваг:

  • Зниження капітальних витрат
  • Висока масштабованість

Результат

Первісна вартість міграції впровадження хмарного тестування дуже висока, як це пов'язано зі зміною деяких з тестів, щоб задовольнити хмарні середовища. Це робить рішення про міграцію вирішальний[. Таким чином, хмарне тестування не обов'язково краще рішення всіх проблем тестування.


Застарілі системи та послуги повинні бути змінені для того, щоб бути протестованими на хмарі. Використання надійних інтерфейсів з цими успадкованими системами може вирішити цю проблему. Також як і будь-які інші хмарні сервіси, хмарні тестування уразливі до проблем безпеки.


Результати випробувань не можуть бути точними через різні продуктивності мережі постачальників послуг та інтернету. У багатьох випадках віртуалізації послуги можуть бути застосовані для моделювання конкретної роботи і поведінки, необхідні для точної і ретельної перевірки.