Процес міграції системи або її частини до нового середовища – це досить частий процес, який так само потребує тестування. Перевірка вихідного стану системи та її складових частин, тестування самого процесу переходу, а також перевірка системи у новому середовищі/умовах потребує знань, умінь і підходів.
Міграційне тестування
Міграційне тестування
- 29.12.2023
- Опубліковано: Admin
Тестування міграції – це процес верифікації переносу застарілої системи до нової системи з мінімальними збоями/часом простою з цілісністю даних і без втрати даних та з гарантією, що всі зазначені функціональні та нефункціональні аспекти системи успішно та без помилок виконуються після міграції.
Передумови і причини міграції можуть бути різними. Наприклад, це може бути пов’язано з переходом від старої технології до нової, або з оптимізацією коду чи переміщенням даних на новий сервер. Якими б не були причини переходу, обов’язковою має бути перевірка системи, тобто тестування міграції.
Чому важливо тестувати? Серед причин можна виділити:
- незалежно від причини переміщення продукту, для кінцевого користувача має бути мінімальна незручність або збої, які можуть бути у вигляді простою або втрати даних. Щоб забезпечити правильну логіку роботи продукту, як це було до міграції, потрібне тестування міграції;
- потрібно не лише перевіряти функціональність програми під час тестування міграції, а й перевірити, чи перенесена програма сумісна з новим середовищем із усією можливою комбінацією необхідного апаратного та програмного забезпечення;
- у першу чергу слід перевіряти усі аспекти продукту, пов’язані з даними, оскільки під час міграції найбільша ймовірність проблем пов’язана з самими даними. Подібні дефекти потрібно якнайшвидше ідентифікувати та виправити під час тестування міграції;
- у новому оточенні важливо перевірити продуктивність продукту, який було перенесено: скільки часу потрібно для завантаження сторінки/екрану, як запити відповідають базі даних тощо;
- важливо провести перевірку оточення, щоб переконатися, що все обладнання, програмне забезпечення, сервери синхронізовані та нормально працюють у синхронізації один з одним, а продукт функціонує згідно з очікуваннями у новому середовищі, до якого було його перенесено.
Загалом, виділяють 4 типи міграції:
- міграція програми (Application Migration);
- міграція бази даних (Database Migration);
- міграція сервера (Server Migration);
- міграція операційної системи (OS Migration).
Міграція програми є типом міграції, під час якої сама програма переміщується в нове середовище з однієї платформи на іншу. Це може бути перенесення програми з одного центру обробки даних до іншого, з локального сервера в хмарне середовище або з публічної хмари в приватне хмарне середовище. Прикладом міграції програми є міграція програми з ASP на технологію ASP.NET.
Загальний процес тестування міграції програми зазвичай виглядає наступним чином:
- проводиться аналіз вимог та знайомство з програмою;
- завершується визначення обсягу тестування;
- ознайомлення з новими вимогами до перенесеної програми та перевірка перенесеної програми у новому середовищі.
Міграція бази даних – це процес міграції даних з однієї чи кількох вихідних баз даних до однієї чи кількох цільових баз даних за допомогою служби міграції бази даних. Після завершення міграції набір даних у вихідних базах даних повністю перебуває в цільових базах даних, інколи реструктуризовано.
Перше, що слід пам’ятати під час міграції бази даних, що програма має бути стабільною та працювати бездоганно. Друге – слід переконатися, що база даних відповідає вимогам і формату типу даних, а значення даних добре організовані, відповідно не створюють жодних проблем після експорту до нової бази даних. Прикладом міграції бази даних є міграція з РСУБД на MongoDB.
Тестування під час міграції бази даних включає наступне:
- перевірка, що типи полів, значення, обмеження чи будь-яке інше зіставлення полів не змінено або модифіковано під час міграції бази даних;
- перевірка вихідних даних на предмет невідповідностей чи помилок;
- перевірка даних у новому оточенні на предмет невідповідностей чи помилок.
Міграція сервера означає, що дані сервера переміщуються з одного сервера на інший, що включає також міграцію конфігурації на новий сервер. Прикладом міграції сервера є міграція всіх програм із Windows на сервер мейнфрейму.
Під час тестування міграції сервера зазвичай перевіряється наступне:
- перевірка, чи всі назви каталогів, назви файлів і папок тощо не змінюються на новому сервері;
- продуктивність даних на належному рівні на новому сервері;
- сумісність нового сервера з перенесеними даними сервера;
- відповідь сервера на запит програми та її коректність.
Міграція операційної системи є найскладнішим типом міграції, коли продукт переміщується з однієї операційної системи в іншу. Цей тип міграції зазвичай передбачає багато змін для успішного завершення. Міграція ОС може виконуватися з метою зменшення вартості експлуатації чи обслуговування, або збільшення швидкості, чи для продуктивності або безпеки, або ж для реалізації будь-якої іншої функції. Прикладом міграції ОС є переміщення програми з операційної системи Windows на операційну систему Linux. Дії щодо тестування в цьому типі міграції передбачають перевірку того, чи:
- функціональність програми не змінюється в поведінці;
- продуктивність програми та бази даних не погіршується;
- змінюється логіка роботи продукту у середовищі нової ОС.
Загалом, тестування міграції проводиться в кілька етапів:
- тестування перед міграцією (Pre-Migration Testing) (перед фактичним виконанням тестування міграції);
- тестування міграції (Migration Testing);
- тестування після міграції (Post Migration Testing) (після завершення тестування міграції).
Передміграційне тестування проводиться перед перенесенням продукту в нове середовище. Для простіших додатків на цьому етапі не потрібно виконувати тестування, однак для більших або складних додатків перед фактичною міграцією тестувальники повинні виконати дії з налаштування, відомі як передміграційне тестування.
Однією з найважливіших речей, про яку слід подбати на цьому етапі, є зіставлення даних (Data Mapping) між старою програмою та новою програмою. Тестувальники повинні зосередитися на змінах, які мають бути виконані в новій програмі, і перевірити, чи переміщена програма поводить себе відповідно. Також слід переконатися, що програма та база даних поводяться так само, як вони поводилися до міграції у частині, в якій не було модифікацій.
Необхідно приділяти особливу увагу структурам таблиць без змін і відхилень від вихідного набору даних. Потік даних програми має бути відповідним вимогам, а функціональні аспекти мають працювати так само, як і до міграції. На цьому етапі здійснюється належне планування міграції.
На етапі тестування міграції документ, пов’язаний з міграцією, також перевіряє команда тестувальників. Тестери перевіряють, чи документ зрозумілий і чи немає складності у виконанні дій, пов’язаних з міграцією.
Після завершення міграційних дій відповідно до документації щодо міграції виконується базова перевірка функціональності програми та основні перевірки бази даних, щоб переконатися, що база даних належним чином підключена до програми.
Після завершення міграції тестувальники повинні провести детальне тестування перенесеної програми. Тестові випадки для старих систем виконуються в новій системі, щоб переконатися, що функціональність програми добре працює як на старих даних, так і на нових доданих даних, а продуктивність програми не погіршилася.
Тестери також повинні переконатися, що дані не втрачаються, а кількість записів із бази даних відображається згідно з очікуваннями. Окрім того, необхідно перевірити, чи правильно оновлено табличну структуру в базі даних і каталогах та папках програми в новій системі.
Обсяг тестування в тестуванні після міграції дуже великий. Тестувальникам рекомендується проводити автоматизоване тестування, щоб скоротити час виконання тестів і, у свою чергу, скоротити час на перевірку функціональності програми. Так, серед перевірок післяміграційного тестування можна виділити:
- чи всі дані зі старої версії перенесено до нової програми протягом запланованого простою. Щоб переконатися в цьому, слід порівняти кількість записів між застарілою та новою програмою для кожної таблиці та представлень у базі даних;
- чи оновлено всі зміни схеми (додані або видалені поля та таблиці) відповідно до нової системи;
- перевірка безпеки нової бази даних;
- перевірка цілісності даних для всіх можливих зразків записів;
- чи функції, які підтримувалися раніше у застарілій системі, працюють належним чином у новій системі;
- чи дотримано вимоги щодо інтерфейсу продукту у новому середовищі;
- перевірка на наявність застарілих даних у новому середовищі. Жодні застарілі дані не повинні дублюватися під час міграції;
- перевірка наявності випадків невідповідності даних, наприклад, зміни типу даних, зміни формату зберігання тощо;
- чи зміни, внесені до застарілої системи, підтримують нову функціональність, яка є частиною нової системи;
- слід створити нових користувачів у системі та провести тести, щоб переконатися, що функціональні можливості застарілої версії та нової програми підтримують новостворених користувачів і працюють нормально;
- необхідно провести навантажувальні та стрес-тести для забезпечення стабільності нової системи.
Загалом, процес тестування міграції включно з передміграційним та післяміграційним тестуванням є складним та масштабним комплексом дій. У процесі тестування важливо максимально ретельно, однак достатньо швидко перевірити ключові функціональності та стани системи, та впевнитися в успішності переходу на нове оточення.