Тэсціраванне геалакацыі: падмена каардынат для QA і распрацоўшчыкаў
Геазалежная логіка — адна з самых нязручных для тэсціравання: баг узнаўляецца ў канкрэтнай кропцы горада, а каманда сядзіць у іншым. Падмена геалакацыі ператварае такую праверку ў паўтаральны сцэнарый, які можна праганяць з-за стала колькі заўгодна разоў. Разбяромся, як гэта працуе на рэальнай прыладзе і дзе межы падыходу.
Падрыхтуйце прыладу
Уключыце рэжым распрацоўшчыка, выберыце праграму для фіктыўных месцазнаходжанняў і дайце ёй доступ да геалакацыі. На тэставых прыладах мае сэнс адразу зняць абмежаванні фонавай працы — інакш прашыўка выгрузіць сэрвіс пасярод доўгага прагону.

Стварыце набор эталонных кропак
Захавайце ў абранае каардынаты, якія патрэбныя рэгулярна: адрас з баг-рэпарта, кропку на мяжы зоны дастаўкі, адрас у іншым часавым поясе, кропку пасярод вады. Іменны спіс узнаўляльных кропак — аснова паўтаральных прагонаў.

Сінхранізуйце набор з камандай
Спіс месцаў сінхранізуецца паміж сайтам і прыладамі праз акаўнт: кропкі, заведзеныя на сайце, адразу з'яўляюцца на тэставых тэлефонах, без ручнога капіравання каардынат. Калі прылад некалькі, гэта моцна эканоміць час.

Запусціце сцэнарый і зафіксуйце вынік
Уключыце падмену ў патрэбнай кропцы і прагоніце сцэнарый у праграме, якую тэстуеце. Кропка застаецца ў гісторыі, таму пры паўторнай праверцы пасля фіксу да яе можна вярнуцца адным дотыкам.

Што абавязкова праверыць
Межы зон: кропка роўна на мяжы зоны дастаўкі або радыуса пошуку — класічная крыніца памылак на адзінку. Змена каардынат падчас працы праграмы: многія праграмы запытваюць месцазнаходжанне адзін раз пры запуску і не рэагуюць на змены. Адсутнасць каардынат: паводзіны пры выключанай геалакацыі і пры адкліканым дазволе.
Асобна — заведама некарэктныя дадзеныя: кропка пасярод акіяна, каардынаты ў іншым паўшар'і, месцы без адраса. Праграма не павінна падаць ні ў адным з гэтых выпадкаў.
Рэальная прылада супраць эмулятара
Эмулятар Android Studio ўмее задаваць каардынаты і прайграваць маршруты, і для ранняй распрацоўкі гэтага дастаткова. Але ён не ўзнаўляе тое, што ламаецца часцей за ўсё: паводзіны канкрэтнай прашыўкі пры выгрузцы фонавых сэрвісаў, працу пры слабым сігнале, рэальныя затрымкі атрымання фікса і адрозненні ў палітыках энергазберажэння вытворцаў.
Таму сцэнарый, які прайшоў на эмулятары, варта пераправерыць на рэальнай прыладзе — асабліва калі праграма, якую тэстуеце, выкарыстоўвае геалакацыю ў фоне.
Сцяжок фіктыўнай крыніцы ў тэсціраванні
Android пазначае каардынаты ад тэставага правайдара сцяжком. Для QA гэта не перашкода, а асобны аб'ект праверкі: калі праграма, якую тэстуеце, павінна адхіляць фіктыўныя каардынаты, падмена — якраз спосаб пераканацца, што праверка сапраўды працуе, а не проста напісана.
Калі праграма павінна прымаць любыя каардынаты ад сістэмы, пераканайцеся, што яна не адкідае іх па гэтым сцяжку выпадкова.
Тэсціраванне праграм з фонавай геалакацыяй
Для праграм, якія адсочваюць рух у фоне, важныя доўгія прагоны: уключыце падмену, згарніце праграму і пакіньце прыладу на некалькі гадзін. Так выяўляюцца праблемы, якіх не відаць за пяць хвілін ручнога тэсціравання, — страчаная падпіска на абнаўленні, назапашванне памылак, спыненне сэрвісу прашыўкай.
Індыкатарам служыць пастаяннае апавяшчэнне ў шторцы: пакуль яно ёсць, падмена актыўная.