Sdílet prostřednictvím


Část 6 – Testování a schvalování v obchodě App Store

Testování

Mnoho aplikací (i aplikací pro Android, v některých obchodech) bude muset před publikováním předat schvalovací proces; takže testování je důležité, aby vaše aplikace dosáhla trhu (ať už je úspěšné s vašimi zákazníky). Testování může mít mnoho forem, od testování jednotek na úrovni vývojářů až po správu beta testování napříč širokou škálou hardwaru.

Testování na všech platformách

Existují drobné rozdíly mezi tím, co .NET podporuje na stolních zařízeních, tabletech a stolních zařízeních s Windows, a také omezeními v iOSu, která brání dynamickému vygenerování dynamického kódu za běhu. Buď naplánujte testování kódu na několika platformách při jeho vývoji, nebo naplánujte čas refaktoringu a aktualizaci části modelu aplikace na konci projektu.

Vždy je vhodné použít simulátor nebo emulátor k otestování více verzí operačního systému a také různých možností/konfigurací zařízení.

Měli byste také testovat na tolik různých fyzických hardwarových zařízeních, kolik můžete.

Zařízení v cloudu

Ekosystém mobilních telefonů a tabletů neustále roste a znemožňuje testování na stále rostoucím počtu dostupných zařízení. Pokud chcete tento problém vyřešit, řada služeb nabízí možnost vzdáleného řízení mnoha různých zařízení, aby bylo možné instalovat a testovat aplikace, aniž by bylo nutné přímo investovat do velkého množství hardwaru.

App Center Test nabízí snadný způsob, jak otestovat aplikace pro iOS a Android na stovkách různých zařízení. Další informace najdete v tématu Příprava aplikací Xamarin.Android a příprava aplikací Xamarin.iOS.

Správa testů

Při testování aplikací ve vaší organizaci nebo při správě beta programu s externími uživateli existují dvě výzvy:

  • Distribuce – Správa procesu zřizování (zejména pro zařízení s iOSem) a získávání aktualizovaných verzí softwaru pro testery
  • Zpětná vazba – Shromažďování informací o využití aplikací a podrobné informace o všech chybách, ke kterým může dojít.

Existuje celá řada služeb, které vám pomůžou tyto problémy vyřešit tím, že poskytuje infrastrukturu, která je integrovaná do vaší aplikace, která shromažďuje a hlásí využití a chyby, a také streamuje proces zřizování, který pomáhá při registraci a správě testerů a jejich zařízení.

Visual Studio App Center nabízí řešení těchto problémů, které poskytuje distribuci testovacích verzí, hlášení chyb a sofistikované informace o využití aplikací.

Automatizace testů

Xamarin UITest lze použít k vytvoření automatizovaných testovacích skriptů uživatelského rozhraní, které je možné spustit místně nebo nahrát do app Center Test.

Testování částí

Touch.Unit

Xamarin.iOS obsahuje architekturu testování částí s názvem Touch.Unit, která se řídí psaním testů stylu JUnit/NUnit.

Podrobnosti o psaní testů a spuštění touch.Unit najdete v naší dokumentaci k testování jednotek pomocí Xamarin.iOS .

Andr.Unit

Existuje opensourcový ekvivalent Touch.Unit pro Android s názvem Andr.Unit. Můžete si ho stáhnout z GitHubu a přečíst si o nástroji na blogu @spouliot.

Schválení app Storu

Apple a Microsoft provozují jediný obchod na svých platformách: App Store a Marketplace. Jak uzamknout svá zařízení, tak implementovat důkladný proces kontroly aplikací, který řídí kvalitu aplikací dostupných ke stažení. Otevřená povaha Androidu znamená, že existuje celá řada možností obchodu od Google Play, která je široce dostupná a nemá žádný proces kontroly, až po Amazon Appstore pro Android a hardware specifické úsilí, jako je Samsung Apps, které mají omezenější distribuci a implementují proces schvalování.

Čekání na kontrolu aplikace může být velmi stresující – obchodní tlaky často znamenají, že aplikace se před datem uvedení na trh odesílají s velmi malou marží pro chybu. Samotný proces může trvat až dva týdny a nemusí být nutně transparentní: existuje omezená zpětná vazba na průběh vaší aplikace, dokud se nakonec neodmítne nebo schválí. Odmítnutí může znamenat chybějící marketingové okno příležitosti, zejména pokud k ní dojde více než jednou, a týdny se projdou mezi vaším původním datem spuštění a ukončením schválení aplikace.

Připravte se

První rady: naplánujte spuštění aplikace předem a proveďte příspěvky na možné odmítnutí a opětovné odeslání. Každý obchod vyžaduje, abyste si před odesláním aplikace vytvořili účet – udělejte to co nejdříve. I když registrace Google Play trvá jen několik minut, pokud jsou vaše aplikace zdarma, proces se více zapojí, pokud je prodáváte a potřebujete poskytnout bankovní a daňové údaje. Procesy Společnosti Apple i Microsoft jsou mnohem více zapojeny než google, může trvat týden nebo více, než aby váš účet schválili, takže tentokrát započítávejte do svých plánů uvedení na trh.

Po schválení účtu můžete aplikaci odeslat. Skutečný proces odesílání aplikací je popsaný v následující dokumentaci:

Zbývající část této části popisuje věci, které byste měli vzít v úvahu, abyste měli jistotu, že vaše aplikace bude schválena bez jakýchkoliv chytání.

Kvalita

To zní jasně, ale aplikace se často odmítnou, protože nesplňují určitou úroveň kvality: koneckonců, to je důvod, proč kurátorované obchody mají proces schvalování na prvním místě!

Chybové ukončení jsou běžným důvodem zamítnutí. Pokud je příliš snadné, aby se aplikace chybově ukončila, je zaručeno, že ji odmítnete. Většina vývojářů neodesílají své aplikace s očekáváním, že dojde k chybovému ukončení, ale často to dělají. Před odesláním aplikace důkladně otestujte, abyste se zaměřili nejen na to, abyste měli jistotu, že všechno funguje, ale také že zpracováváte běžné mobilní chybové scénáře, jako jsou problémy se sítí a omezení prostředků, jako je paměť nebo prostor úložiště. K testování použijte simulátor i fyzická zařízení – bez ohledu na to, jak dobře kód běží v simulátoru, může skutečný výkon aplikace předvést jenom zařízení. Používejte tolik různých zařízení, kolik můžete najít, a pokud můžete, zahrnete tým beta-testerů – služby třetích stran můžou pomoct spravovat beta distribuci a zpětnou vazbu.

Všechny mobilní operační systémy zabíjejí aplikaci, která se nespustí dostatečně rychle. Délka povolené doby se liší, ale obecně by aplikace měly být responzivní během několika sekund a používat úlohy na pozadí k provedení jakékoli práce, která by trvalo déle. Aplikace, které načítají příliš dlouho nebo nereagují dostatečně často, budou odmítnuty. Vždy poskytněte zpětnou vazbu uživatelům, když se něco děje na pozadí, nebo se zdá, že se aplikace chybově ukončí a znovu se odmítne.

Kontrola případů edge

Běžná past pro vývojáře se nedaří vyřešit hraniční případy, zejména ty, které vyžadují opětovnou konfiguraci simulátoru nebo zařízení pro správné testování. Může být snadné zapomenout, že ne každý zákazník bude "Povolit" vaší aplikaci přístup ke své poloze, protože jakmile vývojář žádost jednou přijme, nebude se už nikdy zobrazovat výzva. Během procesu schvalování se konkrétně zaměřují na oprávnění a využití sítě, což znamená, že malý dohled v těchto oblastech může vést k zamítnutí.

Následující seznam je dobrým výchozím bodem pro kontrolu případů hraničních zařízení, které mohly být vynechány:

  • Zákazníci můžou odepřít přístup ke službám – zejména v iOSu, přístup k datům, jako jsou informace o geografickém umístění, je poskytován pouze v případě, že uživatel udělí oprávnění k vaší aplikaci. Testeři aplikací by měli aplikaci často znovu nainstalovat ve svém počátečním stavu a zakázat všechny žádosti o oprávnění, aby se aplikace správně chovala. Zapněte a vypněte oprávnění, abyste ověřili správné chování, když si zákazníci rozmyslí.
  • Zákazníci jsou všude – nepředpokládáme, že se aplikace bude používat jenom ve městě nebo zemi, kde byla vyvinuta! Kód, který funguje se souřadnicemi GPS, hodnotami data a času a měnami, může být ovlivněn nastavením polohy a národního prostředí zákazníka. Všechny platformy nabízejí simulátor, který umožňuje zadat různá umístění a národní prostředí – slouží k testování umístění v jiných polokouli a s kulturami, které formátují kalendářní data a měny odlišně. Hodnoty zeměpisné šířky a délky můžou být kladné nebo záporné, oddělovač desetinných míst může být tečka nebo čárka a kalendářní data můžou být naformátovaná řadu způsobů , jak se s ním vypořádat.
  • Pomalé síťové připojení – vývojáři aplikací často pracují v ideálním světě rychlého, vždy fungujícího síťového připojení, což samozřejmě není případ skutečného světa. Testování s pomalým připojením k síti (například špatným připojením 3G) a bez přístupu k síti je důležité, abyste zajistili, že nedoručíte aplikaci s chybou. Proces schvalování bude vždy obsahovat test se zařízením v režimu v letadle, takže se ujistěte, že jste si ho otestovali sami.
  • Hardware se liší – nezapomeňte testovat na nejstarším, nejpomalejším hardwaru, který plánujete podporovat. Existují dva aspekty, které můžou ovlivnit vaši aplikaci: výkon, který může být nepoužitelný na starším zařízení a podpora hardwarových funkcí, jako je kamera, mikrofon, GPS, gyroskop nebo jiná volitelná komponenta. Pokud je komponenta nedostupná, aplikace by měly bez problémů snížit výkon (a ne chybové ukončení).

Pokyny jsou více než jen "průvodce".

Apple je známý striktním dodržováním pokynů pro lidské rozhraní, protože jednou z klíčových silných stránek jejich platformy je konzistence (a vnímaný nárůst použitelnosti). Společnost Microsoft vzala podobný přístup s aplikacemi systému Windows implementovaných systémem Fluent Design System. Proces schvalování obou platforem bude zahrnovat vyhodnocení vaší aplikace, aby dodržovala příslušnou filozofie návrhu.

To neznamená, že inovace uživatelského rozhraní nejsou podporovány nebo podporovány, ale existují určité věci, které byste "prostě neměli dělat" nebo vaše aplikace bude odmítnuta.

V iOSu to zahrnuje chybné použití integrovaných ikon nebo použití jiných dobře zavedených metaforů nekonzistentně; Například použití ikony pro psaní textu pro cokoli jiného než vytváření nového obsahu.

Vývojáři pro Windows by měli být podobně opatrní; Často selhává správně podporovat tlačítko Zpět hardwaru podle pokynů Microsoftu.

Povzbuďte návrháře, aby si přečetli pokyny pro návrh jednotlivých platforem a dodržovali je.

Implementace funkcí specifických pro platformu

Pokud jde o implementaci služeb specifických pro platformu, zejména v iOSu, jsou věci trochu přísnější. Abyste se vyhnuli automatickému zamítnutí společností Apple, existuje několik pravidel, která je potřeba dodržovat s následujícími funkcemi iOSu:

  • Nákupy v aplikaci – Aplikace nesmí implementovat externí platební mechanismy pro digitální produkty, včetně měny v hře, funkcí aplikací, časopisů předplatných a mnohem více. Aplikace pro iOS musí pro tento druh funkcí používat službu založenou na iTunes společnosti Apple. K dispozici je smyčka – aplikace jako Kindle Reader a některé aplikace založené na předplatném umožňují nakupovat obsah jinde, kde se připojí k "účtu", ke kterému pak budete mít přístup prostřednictvím aplikace, ale v tomto případě aplikace nesmí obsahovat odkazy ani odkazy na proces nákupu mimo aplikaci (nebo se znovu zamítne).
  • Zálohování na iCloudu – S nástupem iCloudu jsou revidujícím Společnosti Apple mnohem přísnější ohledně toho, jak aplikace používají úložiště (aby se zajistilo, že prostředí vzdáleného zálohování zákazníka je příjemné). Aplikace, které odpadají místo v úložišti, se můžou odmítnout, takže složku Cache používejte odpovídajícím způsobem a postupujte podle dalších pokynů společnosti Apple pro ukládání.
  • Newsstand – Aplikace novin a časopisů jsou skvělé pro Apple Newsstand, ale aplikace musí implementovat alespoň jedno automatické prodlužování předplatného a podporovat stahování na pozadí, aby bylo schváleno.
  • Mapy – Je stále častější přidávat do mobilních map překryvné vrstvy a další funkce, ale dávejte pozor, abyste nepřekryli informace o kreditech mapy (například logo Google v iOS5), protože to bude mít za následek odmítnutí.

Správa metadat

Kromě zjevných technických problémů, které můžou vést k zamítnutí aplikace, existuje několik drobných aspektů odeslání, které by mohly vést k zamítnutí, zejména kolem metadat (popis, klíčová slova a marketingové obrázky), které odešlete do aplikace pro zobrazení v App Storu nebo Marketplace.

  • Imagery – Postupujte podle pokynů platformy pro ikony aplikací a ukládejte obrázky. Nepoužívejte obrázky s ochrannou známkou, viděli jsme, že aplikace jsou odmítnuté, protože jejich ikony obsahovaly kresbu i Telefon!
  • Ochranné známky – Nepoužívejte žádné jiné ochranné známky než vaše vlastní. Aplikace byly odepřeny za zmínku o ochranných známkách v popisu aplikace nebo dokonce v klíčových slovech v App Storu společnosti Apple.
  • Popis – Nepoužívejte slovo "beta" nebo žádným způsobem indikujte, že aplikace není připravená na prime time. Nezmiňujte jiné mobilní platformy (i když je vaše aplikace pro různé platformy). Nejdůležitější je, že aplikace dělá přesně to, co říkáte. Pokud v popisu vypíšete řadu funkcí, měli byste lépe vidět, jak každou z těchto funkcí použít, nebo se zobrazí odmítnutí "funkce uvedená v popisu aplikace není implementována".

Dejte do metadat aplikace tolik úsilí, jako je vývoj a testování. Aplikace SE v metadatech odmítnou za menší porušení, takže je vhodné, aby bylo vhodné, aby se správně dostaly.

App Stores: Ne pro všechny

Primárním cílem obchodů na každé platformě je distribuce příjemců – schopnost oslovit co nejvíce zákazníků. Ne všechny aplikace jsou však zaměřeny na spotřebitele, existuje rychle rostoucí základ interních a extranetových aplikací, které vyžadují omezenou distribuci zaměstnancům, dodavatelům nebo zákazníkům. Tyto aplikace nejsou "k prodeji" a nepotřebují schválení, protože vývojář řídí distribuci do uzavřené skupiny uživatelů. Podpora tohoto typu nasazení se liší podle platformy.

Android nabízí v tomto ohledu největší flexibilitu: aplikace je možné nainstalovat přímo z adresy URL nebo e-mailové přílohy (pokud to konfigurace zařízení umožňuje). To znamená, že je triviální vytvářet a distribuovat interní podnikové aplikace nebo publikovat aplikace konkrétním zákazníkům nebo dodavatelům.

Apple nabízí možnost interního nasazení vývojářům zaregistrovaným v programu iOS Developer Enterprise Program, který obchází proces schvalování app Storu a umožňuje společnostem distribuovat interní aplikace svým zaměstnancům. Tato licence bohužel neřeší potřebu distribuce aplikací podobných extranetu do jiných uzavřených skupin zákazníků nebo dodavatelů. Nasazení enterprise (a ad hoc)

Souhrn App Storu

Proces kontroly může být náročný, ale stejně jako zbytek životního cyklu vývoje vám pomůže zajistit úspěch s určitým plánováním a pozorností na podrobnosti. Vše se týká několika jednoduchých kroků: přečtěte si a porozumíte pokynům uživatelského rozhraní, které musíte dodržovat, postupujte podle pravidel, pokud implementujete funkce specifické pro platformu, důkladně otestujte (pak otestujte několik dalších) a nakonec se před odesláním ujistěte, že jsou metadata vaší aplikace správná.

Jedno poslední slovo rady vývojářům, kteří publikuje na Google Play: Nedostatek schvalovacího procesu může vypadat, jako by to usnadnilo vaši práci – ale vaši zákazníci budou ještě náročnější než revizní tým. Postupujte podletěchtoch předpisů, jako by se vaše aplikace mohla odmítnout, jinak to budou vaši zákazníci, kteří ji odmítají.