неділю, 19 листопада 2017 р.

Відмінності тестування web та desktop

Тестерам набагато частіше ніж програмістам доводиться змінювати проекти та архітектуру систем, з якими вони працюють. Тому мене часто питають: яка різниця у тестуванні веб- і десктопних продуктів?
Загалом, нема жодної різниці, якщо ми сприймаємо нашу систему як справжню "чорну скриньку", навіть не намагаючись залізти "під капот". Тобто перших хвилин 10.
Далі починаються, можна сказати, різні світи.



Коли я вперше перейшов з тестування десктопних систем на браузерні (десь 7 років тому, я думав лише про те, що веб надає набагато більше можливостей, виглядає більш відкритим, і взагалі скоро захопить світ.   Але спливає час, і хоча інтернет продовжує витисняти "традиційні" комп’ютерні програми, до повного переходу до омріяної Ґуґлом "операційної системи в інтернеті" ще далеко. Після 6 років у веб-розробці, і перейшовши знову на десктопну систему, я дивлюся на її роботу, і її тестування під новим кутом.

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

  1. Користувацькі дані - цим ризикують і веб-застосунки. Але чим менш впорядкована з ними робота (наприклад, відсутня база даних), тим більше ризики. При цьому у нас нема серверу, де "все можна надійно зберегти", чи клієнта, звідки користувач зможе "повторити спробу знову". Усі дані тут. І в разі чого, ми можемо їх втратити от просто тут і зараз.
  2. Стабільність системи на десктопі - це важливіше за браузер. Браузер, якщо порівнювати із веб-застосунками, ніби ізолює наш аплікейшен. Бо браузер підвис - закрили-відкрили. Сервер впав - апач підніметься. А якщо у вас впав якийсь компонент десктопної програми, це може безпосередньо вплинути і на клієнта, і на нутрощі логіки.
  3. Використання ресурсів системи також треба контролювати набагато ретельніше, коли усі вони - пам’ять, процесор, дисковий простір, мережа і т.ін. - мають бути поділені між різними модулями.
  4. Взаємодія з іншими програмами. На відміну від сучасних способів віртуалізації-контейнерізації-ізоляції, на локальних комп’ютерах все ще запущено одночасно забагато програм. Також існує імовірність запуску декількох копій нашої програми. Все це може створити "race conditions" чи "стан гонитви" за ресурси системи, або взаємне блокування.

Це все, що спало мені на думку одразу. Дайте знати про свої зауваження чи доповнення!

Немає коментарів: