Тестування сумісності/взаємодії (Compatibility/Interoperability testing)

Тестування сумісності (compatibility testing): Тип тестування, який вимірює ступінь того, наскільки задовільно елемент тестування може функціонувати паралельно з іншими незалежними продуктами у спільному середовищі (співіснування) та, при необхідності, обмінюється інформацією з іншими системами чи компонентами (функціональна сумісність). (ГОСТ 56920)

Взаємодія ( Interoperability ) - це здатність однієї системи взаємодіяти з іншою системою. Це взаємодія між двома різними системами або двома різними програмами разом. Часто взаємодію плутають з інтеграцією, сумісністю та портованістю.

Interoperability = Inter + operable

Inter – означає «між собою», «друг між одним», «взаємно».

Operable - означає "здатний виконати поставлене завдання".

Приклад №1: Візьмемо приклад для бронювання вашого рейсу. Вважайте, що вам потрібно поїхати з Нью-Делі до Нью-Йорка. Наразі у вас немає прямого рейсу. Ви повинні летіти з Нью-Делі до Лондона, а потім летіти стикувальним рейсом з Лондона до Нью-Йорка. Оскільки у вас є деякі обмеження за часом, ви бронюєте свій рейс з Нью-Делі до Лондона на авіалінії Jet Airways і з Лондона до Нью-Йорка на «Virgin Atlantic». Це означає, що всі дані про ваших пасажирів були передані від Jet Airways Virgin Atlantic. Отже, тут Jet Airways та Virgin Atlantic, обидва є незалежними програмами разом, і при бронюванні вашого рейсу ваші дані про бронювання передаються від Jet Airways до Virgin Atlantic у повному обсязі, без попереднього повідомлення.

Приклад №2. Аналогічно уявіть собі систему управління лікарнею, де записи пацієнтів обмінюються між одним відділенням та іншим відділенням. Отже, тут можна зв'язати відділ із додатком. Інформація про пацієнта передається з одного додатка до іншого без попереднього повідомлення.

Рівні Interoperability testing:

  • Фізичний (Physical Interoperability);

  • Типи даних (Data-type Interoperability);

  • Рівень специфікації (Specification level Interoperability);

  • Семантичний (Semantic Interoperability);

Як провести Interoperability testing?

Ми можемо слідувати колесу Демінга (Deming wheel або цикл PDCA), щоб провести Interoperability testing:

Plan: планування - це найважливіший етап визначення стратегії виконання практично будь-яких завдань розробки програмного забезпечення. Перш ніж ми насправді сплануємо визначення процедури виконання IOT, необхідно зрозуміти кожну програму або систему, розгорнуту в мережі. Ми повинні знати про всі додатки - їх функціональність, поведінка, дані, що вводяться, і результати виведення, що розкриваються. Я також рекомендував би, щоб кожна програма була повністю функціонально протестована і була без дефектів, перш ніж готувати її до interoperability testing. Тому, коли ви плануєте, не думайте тільки про одну або дві програми, думайте про всі програми як про єдиний блок. Плануючи цей метод тестування, ви маєте дивитися з висоти пташиного польоту. Зайве говорити – задокументуйте свій план. Ми можемо використовувати план тестування та трохи адаптувати його відповідно до вимог до документування планування IOT. Після того, як ваш план тестування складено, перейдіть до визначення умов тестування (test conditions). Основна увага при отриманні умов тестування не повинна обмежуватись окремими додатками; замість цього він повинен бути заснований на потоці даних через усі програми. Умови мають бути спроектовані таким чином, щоб відбувалися якщо не всі, але більшість додатків у мережі. Після визначення умов тестування переходьте до розробки або написання сценарію (якщо ви плануєте автоматизувати) ваших тест-кейсів. Ви можете створити RTM (матрицю простежуваності вимог), щоб порівняти ваші тест-кейси з умовами тестування та умови тестування з умовами / вимогами приймального тестування. Коли ви працюєте в мережі, також важливо спланувати нефункціональне тестування. Це може бути ніде не записано або не документовано, але обов'язково для перевірки нефункціональних аспектів системи в цілому. Ці нефункціональні області включатимуть продуктивність та безпеку. За потреби ви можете скласти окремий план для функціонального тестування, тестування продуктивності та тестування безпеки; або створіть єдиний план та різні документи з умовами тестування для кожного з цих типів тестування; Це може бути ніде не записано або не документовано, але обов'язково для перевірки нефункціональних аспектів системи в цілому. Ці нефункціональні області включатимуть продуктивність та безпеку. За потреби ви можете скласти окремий план для функціонального тестування, тестування продуктивності та тестування безпеки; або створіть єдиний план та різні документи з умовами тестування для кожного з цих типів тестування; Це може бути ніде не записано або не документовано, але обов'язково для перевірки нефункціональних аспектів системи в цілому. Ці нефункціональні області включатимуть продуктивність та безпеку. За потреби ви можете скласти окремий план для функціонального тестування, тестування продуктивності та тестування безпеки; або створіть єдиний план та різні документи з умовами тестування для кожного з цих типів тестування;

Do: це проміжок часу, протягом якого ви проганяєте тест-кейси. Відповідно плануйте свій час для виконання функціонального та нефункціонального тестування. Ми наслідуємо цикл тестування (testing cycle) на цьому етапі виконання кейсів, логуємо дефекти, команда розробників їх усуває, після чого ми виконуємо повторне тестування та регресійне тестування системи в цілому, та надаємо звіт про результати тестування;

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

Act – діяти за ретроспективними елементами. Пункти, які були визначені як «good practices», продовжують виконуватися, а для пунктів, над якими можна було б краще попрацювати, визначаються кроки щодо їх виправлення. Майте на увазі одну річ: області або кроки, які не спрацювали, не повинні повторюватися. Зрештою, ми маємо вчитися на своїх помилках, а не повторювати їх.

Сумісність (Compatibility, Coexistence)- це метод, за допомогою якого перевіряється сумісність двох або більше додатків в одному середовищі. MS Word і Калькулятор - це два різних програми, і вони показують очікувану поведінку незалежно в одній і тій же операційній системі. Отже, ми говоримо, що ці 2 додатки сумісні один з одним. Інший приклад: якщо сайт Google.com сумісний, він повинен відкриватись у всіх браузерах та операційних системах. Тестування сумісності - це дисфункція для забезпечення задоволеності клієнтів. Воно призначене для визначення того, чи може програмне забезпечення або продукт працювати в різних браузерах, базах даних, обладнанні, операційній системі, мобільних пристроях та мережах. На додаток також може впливати різні версії, дозволи, швидкості інтернету, конфігурації і т.д. важливо тестувати додаток усіма можливими способами, щоб зменшити збої та уникнути труднощів, пов'язаних із витоком помилок (bug's leakage). Тест на сумісність завжди повинен виконуватися в реальному середовищі, а не у віртуальному. Протестуйте сумісність програми з різними браузерами та операційними системами, щоб гарантувати 100% покриття.

Типи тестування сумісності :

  • Тестування сумісності браузера (Browser compatibility testing): дуже популярне під час тестування сумісності. Це необхідно для перевірки сумісності програмної програми з різними браузерами, такими як Chrome, Firefox, Internet Explorer, Safari, Opera тощо;

  • Апаратне забезпечення (Hardware): Це необхідно для перевірки сумісності програми/програмного забезпечення з різними конфігураціями обладнання;

  • Мережі (Networks): Це для перевірки програми у різних мережах, таких як 3G, WIFI тощо;

  • Мобільні пристрої (Mobile Devices): Це необхідно для перевірки сумісності програми з мобільними пристроями та їх платформами, такими як android, iOS, windows тощо;

  • Операційна система (Operating System): Це необхідно для перевірки сумісності програми з різними операційними системами, такими як Windows, Linux, Mac тощо;

  • Версії (Versions): Важливо тестувати програми в різних версіях програмного забезпечення. Існує два різні типи перевірки версії:

    • Тестування зворотної сумісності (Backward Compatibility Testing) – тестування програми або програмного забезпечення зі старими чи попередніми версіями. Це також відоме як зворотна сумісність (downward compatible);

    • Тестування прямої сумісності (Forward Compatibility Testing) - тестування програми чи програмного забезпечення з новими чи майбутніми версіями. Це також відоме як пряма сумісність (forward compatible);

Джерела:

Last updated