Тэсціраванне геалакацыі: падмена каардынат для QA і распрацоўшчыкаў

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

  1. Падрыхтуйце прыладу

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

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

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

    Спіс абраных месцаў у Mock Location: набор эталонных кропак для паўтаральных прагонаў
  3. Сінхранізуйце набор з камандай

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

    Сінхранізацыя набору кропак паміж сайтам і тэставымі прыладамі праз акаўнт
  4. Запусціце сцэнарый і зафіксуйце вынік

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

    Гісторыя запускаў у Mock Location: да кропкі з мінулага прагону можна вярнуцца адным націсканнем

Што абавязкова праверыць

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

Асобна — заведама некарэктныя дадзеныя: кропка пасярод акіяна, каардынаты ў іншым паўшар'і, месцы без адраса. Праграма не павінна падаць ні ў адным з гэтых выпадкаў.

Рэальная прылада супраць эмулятара

Эмулятар Android Studio ўмее задаваць каардынаты і прайграваць маршруты, і для ранняй распрацоўкі гэтага дастаткова. Але ён не ўзнаўляе тое, што ламаецца часцей за ўсё: паводзіны канкрэтнай прашыўкі пры выгрузцы фонавых сэрвісаў, працу пры слабым сігнале, рэальныя затрымкі атрымання фікса і адрозненні ў палітыках энергазберажэння вытворцаў.

Таму сцэнарый, які прайшоў на эмулятары, варта пераправерыць на рэальнай прыладзе — асабліва калі праграма, якую тэстуеце, выкарыстоўвае геалакацыю ў фоне.

Сцяжок фіктыўнай крыніцы ў тэсціраванні

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

Калі праграма павінна прымаць любыя каардынаты ад сістэмы, пераканайцеся, што яна не адкідае іх па гэтым сцяжку выпадкова.

Тэсціраванне праграм з фонавай геалакацыяй

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

Індыкатарам служыць пастаяннае апавяшчэнне ў шторцы: пакуль яно ёсць, падмена актыўная.

Mock Location — фіктыўная геалакацыя на Android без root

Бясплатна, па-за Google Play. Перад усталёўкай можна праверыць кантрольную суму файла.

Спампаваць APK