Udostępnij za pośrednictwem


Część 6. Testowanie i zgody sklepu App Store

Testowanie

Wiele aplikacji (nawet aplikacji systemu Android, w niektórych sklepach) będzie musiało przejść proces zatwierdzania przed ich opublikowaniem; dlatego testowanie ma kluczowe znaczenie dla zapewnienia, że aplikacja osiągnie rynek (nie mówiąc już o sukcesie z klientami). Testowanie może mieć wiele form — od testowania jednostkowego na poziomie dewelopera do zarządzania testami beta na wielu różnych urządzeniach.

Testowanie na wszystkich platformach

Istnieją niewielkie różnice między tym, co platforma .NET obsługuje na urządzeniach z systemem Windows Phone, tabletach i komputerach stacjonarnych, a także ograniczenia dotyczące systemu iOS, które uniemożliwiają generowanie dynamicznego kodu na bieżąco. Zaplanuj testowanie kodu na wielu platformach podczas jego opracowywania lub zaplanuj czas refaktoryzacji i zaktualizowania części modelu aplikacji na końcu projektu.

Zawsze dobrym rozwiązaniem jest użycie symulatora/emulatora do testowania wielu wersji systemu operacyjnego, a także różnych możliwości/konfiguracji urządzeń.

Należy również przetestować dowolną liczbę różnych fizycznych urządzeń sprzętowych, jak to możliwe.

Urządzenia w chmurze

Cały czas rośnie ekosystem telefonów komórkowych i tabletów, co uniemożliwia testowanie na coraz większej liczbie dostępnych urządzeń. Aby rozwiązać ten problem, wiele usług oferuje możliwość zdalnego sterowania wieloma różnymi urządzeniami, dzięki czemu aplikacje można zainstalować i przetestować bez konieczności bezpośredniego inwestowania w dużo sprzętu.

Usługa App Center Test oferuje łatwy sposób testowania aplikacji dla systemów iOS i Android na setkach różnych urządzeń. Aby uzyskać więcej informacji, zobacz Przygotowywanie aplikacji platformy Xamarin.Android i Przygotowywanie aplikacji platformy Xamarin.iOS.

Zarządzanie testami

Podczas testowania aplikacji w organizacji lub zarządzania programem beta dla użytkowników zewnętrznych istnieją dwa wyzwania:

  • Dystrybucja — zarządzanie procesem aprowizacji (szczególnie w przypadku urządzeń z systemem iOS) i uzyskiwanie zaktualizowanych wersji oprogramowania do testerów.
  • Opinie — zbieranie informacji o użyciu aplikacji oraz szczegółowe informacje o wszelkich błędach, które mogą wystąpić.

Istnieje wiele usług, które pomagają rozwiązać te problemy, zapewniając infrastrukturę wbudowaną w aplikację w celu zbierania i raportowania użycia i błędów, a także usprawniając proces aprowizacji, aby ułatwić rejestrowanie testerów i ich urządzeń oraz zarządzanie nimi.

Program Visual Studio App Center oferuje rozwiązanie tych problemów, zapewniając dystrybucję wersji testowych, raportowanie awarii i zaawansowane informacje o użyciu aplikacji.

Automatyzacja testów

Test interfejsu użytkownika platformy Xamarin może służyć do tworzenia zautomatyzowanych skryptów testowych interfejsu użytkownika, które można uruchamiać lokalnie lub przekazywać do testu usługi App Center.

Testowanie jednostek

Touch.Unit

Platforma Xamarin.iOS zawiera strukturę testowania jednostkowego o nazwie Touch.Unit, która jest zgodna z testami pisania w stylu JUnit/NUnit.

Aby uzyskać szczegółowe informacje na temat pisania testów i uruchamiania aplikacji Touch.Unit, zapoznaj się z naszą dokumentacją testowania jednostkowego za pomocą platformy Xamarin.iOS .

Andr.Unit

Istnieje odpowiednik open source Touch.Unit dla systemu Android o nazwie Andr.Unit. Możesz pobrać go z witryny github i przeczytać o narzędziu na blogu @spouliot.

Zatwierdzenia sklepu App Store

Firmy Apple i Microsoft obsługują jedyny sklep na swoich platformach: sklep App Store i marketplace odpowiednio. Zarówno zablokuj swoje urządzenia, jak i zaimplementuj rygorystyczny proces przeglądu aplikacji w celu kontrolowania jakości aplikacji dostępnych do pobrania. Otwarty charakter systemu Android oznacza, że istnieje wiele opcji sklepu, począwszy od sklepu Google Play, który jest powszechnie dostępny i nie ma procesu przeglądu, do sklepu Appstore firmy Amazon dla systemu Android i działań specyficznych dla sprzętu, takich jak Samsung Apps, które mają bardziej ograniczoną dystrybucję i implementują proces zatwierdzania.

Oczekiwanie na przejrzenie aplikacji może być bardzo stresujące — presja biznesowa często oznacza, że aplikacje są przesyłane do zatwierdzenia z bardzo małym marginesem błędu przed datą uruchomienia "docelowego". Sam proces może potrwać do dwóch tygodni i nie musi być przejrzysty: istnieje ograniczona opinia na temat postępu aplikacji, dopóki nie zostanie ostatecznie odrzucona lub zatwierdzona. Odrzucenie może oznaczać brak okna szansy sprzedaży, zwłaszcza jeśli występuje więcej niż raz, a tygodnie mijają między oryginalną datą uruchomienia i datą ostatecznego zatwierdzenia aplikacji.

Przygotuj się

Pierwsza porada: zaplanuj uruchomienie aplikacji z wyprzedzeniem i nadaj jej uprawnienia do ewentualnego odrzucenia i ponownego przesłania. Każdy sklep wymaga utworzenia konta przed przesłaniem aplikacji — zrób to tak szybko, jak to możliwe. Podczas gdy rejestracja w sklepie Google Play trwa tylko kilka minut, jeśli twoje aplikacje są bezpłatne, proces staje się o wiele bardziej zaangażowany, jeśli sprzedajesz je i musisz dostarczyć informacje bankowe i podatkowe. Procesy Apple i Microsoft są zarówno znacznie bardziej zaangażowane niż Google, może upłynąć tydzień lub więcej, aby twoje konto zostało zatwierdzone, więc należy uwzględnić ten czas w planach uruchamiania.

Po zatwierdzeniu konta możesz przesłać aplikację. Rzeczywisty proces przesyłania aplikacji znajduje się w następującej dokumentacji:

W pozostałej części tej sekcji omówiono zagadnienia, które należy wziąć pod uwagę, aby upewnić się, że aplikacja została zatwierdzona bez żadnych czkawek.

Kontrola

Wydaje się oczywiste, ale aplikacje często są odrzucane, ponieważ nie spełniają pewnego poziomu jakości: w końcu jest to powód, dla którego wyselekcjonowane sklepy mają proces zatwierdzania w pierwszej kolejności!

Awarie są typowym powodem odrzucenia. Jeśli awaria aplikacji jest zbyt łatwa, gwarantowane jest odrzucenie. Większość deweloperów nie przesyła swoich aplikacji z oczekiwaniami, że ulegnie awarii, ale często to robią. Dokładnie przetestuj aplikację przed przesłaniem, koncentrując się nie tylko na upewnieniu się, że wszystko działa, ale także że obsługujesz typowe scenariusze błędów mobilnych, takie jak problemy z siecią i ograniczenia zasobów, takie jak pamięć lub miejsce do magazynowania. Przetestuj zarówno symulator, jak i urządzenia fizyczne — niezależnie od tego, jak dobrze działa kod w symulatorze, tylko urządzenie może zademonstrować rzeczywistą wydajność aplikacji. Użyj tak wielu różnych urządzeń, jak można znaleźć i zarejestrować zespół testerów beta, jeśli możesz — usługi innych firm mogą pomóc w zarządzaniu dystrybucją beta i opiniami.

Wszystkie systemy operacyjne dla urządzeń przenośnych zabiją aplikację, która nie uruchamia się wystarczająco szybko. Dozwolony czas może się różnić, ale ogólnie aplikacje powinny być dynamiczne w ciągu kilku sekund i używać zadań w tle do wykonywania dowolnej pracy, która zajęłaby dłużej. Aplikacje, które ładują się zbyt długo lub nie są wystarczająco dynamiczne w regularnym użyciu, zostaną odrzucone. Zawsze przesyłaj opinie użytkowników, gdy coś dzieje się w tle lub aplikacja będzie wyglądać, że uległa awarii i po raz kolejny zostanie odrzucona.

Sprawdzanie przypadków brzegowych

Typowa pułapka dla deweloperów nie może rozwiązać problemów brzegowych, zwłaszcza tych, które wymagają ponownego skonfigurowania symulatora lub urządzenia w celu prawidłowego testowania. Można łatwo zapomnieć, że nie każdy klient zamierza "Zezwalać" aplikacji na dostęp do swojej lokalizacji, ponieważ po zaakceptowaniu żądania przez dewelopera nigdy nie zostanie ponownie wyświetlony monit. Uprawnienia i użycie sieci są szczególnie skoncentrowane na procesie zatwierdzania, co oznacza, że niewielki nadzór w tych obszarach może spowodować odrzucenie.

Poniższa lista to dobry punkt wyjścia do sprawdzania przypadków brzegowych, które mogły zostać pominięte:

  • Klienci mogą "odmówić" dostępu do usług — zwłaszcza w systemie iOS, dostęp do danych, takich jak informacje o lokalizacji geograficznej, jest udostępniany tylko wtedy, gdy użytkownik udziela uprawnień aplikacji. Testerzy aplikacji powinni często ponownie instalować aplikację w stanie początkowym i nie zezwalać na wszelkie żądania uprawnień, aby upewnić się, że aplikacja zachowuje się odpowiednio. Przełącz uprawnienie włączone i wyłączone, aby zweryfikować prawidłowe zachowanie, gdy klienci zmieniają zdanie.
  • Klienci są wszędzie — nie zakładaj, że aplikacja będzie używana tylko w mieście lub kraju, w którym została opracowana. Kod, który współpracuje ze współrzędnymi GPS, wartościami daty i godziny oraz walutami, może mieć wpływ na lokalizację i ustawienia regionalne klienta. Wszystkie platformy oferują symulator, który pozwala określić różne lokalizacje i ustawienia regionalne — służy do testowania lokalizacji na innych półkulach i z kulturami, które formatuje daty i waluty inaczej. Wartości szerokości geograficznej i długości geograficznej mogą być dodatnie lub ujemne, separator dziesiętny może być kropką lub przecinkiem, a daty można sformatować na wiele sposobów — zajmuje się nim!
  • Wolne połączenia sieciowe — deweloperzy aplikacji często pracują w "idealnym świecie" szybkiej, zawsze działającej łączności sieciowej, co oczywiście nie jest tak w świecie rzeczywistym. Testowanie z powolną łącznością sieciową (np. słabe połączenie 3G), a także bez dostępu do sieci ma kluczowe znaczenie dla zapewnienia, że nie dostarczasz aplikacji usterek. Proces zatwierdzania zawsze będzie zawierać test z urządzeniem w trybie samolotowym, dlatego upewnij się, że przetestowano to samodzielnie.
  • Sprzęt różni się — pamiętaj o przetestowaniu najstarszego, najwolniejszego sprzętu, który planujesz obsługiwać. Istnieją dwa aspekty, które mogą mieć wpływ na twoją aplikację: wydajność, która może być bezużyteczna na starszym urządzeniu, oraz obsługę funkcji sprzętowych, takich jak aparat, mikrofon, GPS, żyroskop lub inny składnik opcjonalny. Aplikacje powinny działać bezpiecznie (a nie ulegać awarii), gdy składnik jest niedostępny.

Wytyczne to coś więcej niż tylko "przewodnik"

Apple jest znany ze ścisłego przestrzegania wytycznych dotyczących interfejsu człowieka, ponieważ jedną z kluczowych zalet ich platformy jest spójność (i postrzegany wzrost użyteczności). Firma Microsoft podjęła podobne podejście do aplikacji systemu Windows implementowania systemu Fluent Design System. Proces zatwierdzania dla obu platform będzie obejmować ocenianie aplikacji pod kątem zgodności z odpowiednią filozofią projektowania.

Nie oznacza to, że innowacje interfejsu użytkownika nie są obsługiwane lub zachęcane, ale istnieją pewne rzeczy, których "po prostu nie należy robić", lub aplikacja zostanie odrzucona.

W systemie iOS obejmuje to błędne używanie wbudowanych ikon lub używanie innych dobrze ugruntowanych metafor w sposób niespójnego; na przykład za pomocą ikony "redaguj" dla niczego innego niż tworzenie nowej zawartości.

Deweloperzy systemu Windows powinni być podobnie ostrożni; Typowy błąd polega na tym, że nie można prawidłowo obsługiwać sprzętowego przycisku Wstecz zgodnie z wytycznymi firmy Microsoft.

Zachęć projektantów do czytania i przestrzegania wytycznych projektowych dla każdej platformy.

Implementowanie funkcji specyficznych dla platformy

Kwestie są nieco bardziej rygorystyczne, jeśli chodzi o implementowanie usług specyficznych dla platformy, zwłaszcza w systemie iOS. Aby uniknąć automatycznego odrzucania przez firmę Apple, istnieją pewne reguły, które należy przestrzegać z następującymi funkcjami systemu iOS:

  • Zakupy w aplikacji — aplikacje nie mogą implementować zewnętrznych mechanizmów płatności dla produktów cyfrowych, w tym w walucie gry, funkcji aplikacji, subskrypcji magazynu i o wiele więcej. Aplikacje dla systemu iOS muszą korzystać z usługi iTunes firmy Apple dla tego rodzaju funkcji. Istnieje luka — aplikacje takie jak Czytnik Kindle i niektóre aplikacje oparte na subskrypcji umożliwiają zakup zawartości w innym miejscu, która zostanie dołączona do "konta", do którego można następnie uzyskać dostęp za pośrednictwem aplikacji, jednak w tym przypadku aplikacja nie może zawierać linków ani odwołań do procesu zakupu poza aplikacją (lub po raz kolejny zostanie odrzucona).
  • Tworzenie kopii zapasowych w usłudze iCloud — wraz z pojawieniem się usługi iCloud recenzenci firmy Apple są znacznie bardziej rygorystyczni co do sposobu korzystania z magazynu przez aplikacje (w celu zapewnienia, że zdalne tworzenie kopii zapasowych klienta jest przyjemne). Aplikacje, które nie mają miejsca do tworzenia kopii zapasowych, mogą zostać odrzucone, dlatego odpowiednio użyj folderu Pamięci podręcznej i postępuj zgodnie z innymi wytycznymi firmy Apple dotyczącymi magazynu.
  • Newsstand — aplikacje gazety i magazynu są doskonałym rozwiązaniem dla apple Newsstand , jednak aplikacje muszą zaimplementować co najmniej jedną subskrypcję odnawiającą automatycznie i wsparcie pobierania w tle, aby zostać zatwierdzone.
  • Mapy — coraz częściej dodawać nakładki i inne funkcje do map mobilnych, jednak uważaj, aby nie ukrywać informacji o mapie "kredytów" (takich jak logo Google w systemie iOS5), co spowoduje odrzucenie.

Zarządzanie metadanymi

Oprócz oczywistych problemów technicznych, które mogą spowodować odrzucenie aplikacji, istnieją bardziej subtelne aspekty przesyłania, które mogą spowodować odrzucenie, zwłaszcza wokół metadanych (opis, słowa kluczowe i obrazy marketingowe), które przesyłasz z aplikacją do wyświetlania w sklepie App Store lub Marketplace.

  • Imagery — postępuj zgodnie z wytycznymi platformy dotyczącymi ikon aplikacji i przechowywania obrazów. Nie używaj obrazów oznaczonych znakami towarowymi, widzieliśmy, jak aplikacje są odrzucane, ponieważ ich ikony zawierały rysunek elementu i Telefon!
  • Znaki towarowe — unikaj używania znaków towarowych innych niż własne. Aplikacje zostały odrzucone za wzmiankę o znakach towarowych w opisie aplikacji, a nawet w słowach kluczowych w sklepie App Store firmy Apple.
  • Opis — nie używaj słowa "beta" ani w żaden sposób nie wskazuje, że aplikacja nie jest gotowa na czas prime. Nie wspominaj o innych platformach mobilnych (nawet jeśli aplikacja jest międzyplatformowa). Co najważniejsze, upewnij się, że aplikacja robi dokładnie to, co robisz. Jeśli w opisie wymieniono kilka funkcji, lepiej było oczywiste, jak używać każdej z tych funkcji lub otrzymasz "funkcję wymienioną w opisie aplikacji nie zaimplementowano" odrzucenia.

Wkładaj tyle wysiłku w metadane aplikacji, co do programowania i testowania. Aplikacje nie są odrzucane w przypadku drobnych naruszeń w metadanych, dlatego warto poświęcić czas, aby go naprawić.

Sklepy z aplikacjami: nie dla wszystkich

Głównym celem sklepów na każdej platformie jest dystrybucja konsumentów — możliwość dotarcia do jak największej liczby klientów. Jednak nie wszystkie aplikacje są przeznaczone dla konsumentów, istnieje szybko rosnąca baza aplikacji w firmie i ekstranetach, które wymagają ograniczonej dystrybucji do pracowników, dostawców lub klientów. Te aplikacje nie są "do sprzedaży" i nie wymagają zatwierdzenia, ponieważ deweloper kontroluje dystrybucję do zamkniętej grupy użytkowników. Obsługa tego typu wdrożenia różni się w zależności od platformy.

System Android zapewnia największą elastyczność w tym zakresie: aplikacje można instalować bezpośrednio z adresu URL lub załącznika wiadomości e-mail (tak długo, jak pozwala na to konfiguracja urządzenia). Oznacza to, że tworzenie i rozpowszechnianie w firmie aplikacji firmowych i ich rozpowszechnianie jest proste lub publikowanie aplikacji dla określonych klientów lub dostawców.

Firma Apple udostępnia deweloperom możliwość wdrożenia wewnętrznego zarejestrowanego w programie dla deweloperów systemu iOS Dla przedsiębiorstw, który pomija proces zatwierdzania ze sklepu App Store i umożliwia firmom dystrybucję aplikacji w firmie do swoich pracowników. Niestety ta licencja nie rozwiązuje potrzeby dystrybucji aplikacji przypominającej ekstranet do innych zamkniętych grup klientów lub dostawców. Wdrażanie w przedsiębiorstwie (i ad hoc)

Podsumowanie sklepu App Store

Proces przeglądu może być trudne, ale podobnie jak w pozostałej części cyklu życia programowania, możesz pomóc w zapewnieniu sukcesu z pewnym planowaniem i zwróceniem uwagi na szczegóły. Wszystko sprowadza się do kilku prostych kroków: przeczytaj i zapoznaj się z wytycznymi interfejsu użytkownika, które należy przestrzegać, postępuj zgodnie z regułami, jeśli implementujesz funkcje specyficzne dla platformy, przetestuj dokładnie (a następnie przetestuj jeszcze) i upewnij się, że metadane aplikacji są poprawne przed przesłaniem.

Jedno ostatnie słowo porad dla deweloperów publikujących w sklepie Google Play: brak procesu zatwierdzania może wydawać się, że ułatwia to pracę - ale twoi klienci będą jeszcze bardziej wymagający niż zespół ds. przeglądu. Postępuj zgodnie z tymi wytycznymi, tak jakby aplikacja mogła zostać odrzucona. W przeciwnym razie klienci będą wykonywać odrzucanie.