// Dies ist jetzt mehr als alles andere eine Todo -Liste
Intro
Texteingaben
Andere Eingänge (Kontrollkästchen, Switches, gegenseitig ausschließende Steuerelemente)
Fehlerverwaltung (Ausnahmen, Abstürze, Warnungen, Fehler anzeigen)
Navigation (Push, Pop, Registerkarten, Modal, Bildschirmrotation)
Hintergrund (gespeicherter Zustand, Sprungbrettkarte)
Konnektivität (WiFi, Slow Edge, 2G, 3G, 4G, Intermittierende, Null-Bytes, Offline, Flugzeugmodus) und Hardware-Konnektivität (USB, NFC, Bluetooth, WiFi)
Lokalisierung (von Text & Bildern, in verschiedenen Einstellungen in der Telefonsprache gegen App -Sprache im Vergleich zu aktueller Region)
Unterbrechungen (akzeptierte Anrufe, abgelehnte Anrufe, Senden/Empfangen von SMS, Stromzyklus, Neustart, Senden/Erholung von Benachrichtigungen, Warnungen, niedrigem Speicher, Startbildschirm, Umschalten von Apps, Flugzeugmodus, außerhalb des Speichers): Sollte, dass die App selbst stoppen kann, sich selbst innehalten und sich im richtigen Bildschirm wiederholen und im richtigen Zustand, wenn es immer in den Hintergrund unterbrochen wird, von jedem Meany -meine gemeinen. Beantwortung von Apps aus der Benachrichtigung .
Speicher (ist alles richtig aufbewahrt, ohne Risiken, am richtigen Ort)
Security ( Is your application storing payment information or credit card details? Does your application use secure network protocols? Can they be switched to insecure ones? Does the application ask for more permissions than it needs? Does your application use certificates? Does your application use a Device ID as an identifier? Does your application require a user to be authenticated before they are allowed to access their data? Is there a maximum number of login attempts before they are locked out? Customers' Payment data security Network protocols security Für das Ausführen von Anwendungsverletzungen in der Sicherheits- und Fehlerberichterstattung von Anwendungen Authentifizierungszertifikate und Berechtigungen automatische Anwendungssperrung nach kontinuierlicher Eingabe von Ungültig.
Barrierefreiheit (Software -Schaltflächen, Zoomen, Schriftgrößen, Text zur Sprache, ...)
Leistung (Batterieverbrauch, CPU -Nutzung, Speicherverbrauch (und Lecks), Speicherverwaltung (Disk VS Card), Reaktionsfähigkeit, Bildschirmgröße, Zeit zum Starten von Apps, Zeit auf dem Startbildschirm, schwerer Lastbildschirm / You sollten Lasten verbreiten, kontinuierliche Taste), was auch immer passiert, sollte mit einer schönen Eingabeaufforderung und einer schönen Reaktion reibungslos behandelt werden.
Hintergrundarbeit (Arbeit außerhalb des Hauptfadens, um die Benutzeroberfläche nicht zu blockieren, aber auch keine massive Arbeit, wenn die App "im Leerlauf" oder im Hintergrund ist, Batterie/Daten/usw.
Integration (Funktioniert die Kamera, GPS und Bluetooth mit der App einwandfrei)
Rückwärtskompatibilität, Hardwarekompatibilität: Überprüfen Sie nach Möglichkeit alle Versionen aller Geräte. Die App muss installierbar und vollständig verwendbar sein (es sei denn, die Funktionen sind auf diesem Gerät nicht verfügbar)
Bilder: Richtige Größe und Gewicht auf allen Geräten und Orientierungen. Nicht gedehnt, nicht pixeliert, nicht zu HD usw.
Soziale: Sicherheits- und Datenschutzrichtlinien sind verfügbar, der Benutzer kann sich anmelden oder abmelden. Benutzer werden aufgefordert, was passieren kann, wenn sie Rechte geben und wenn das Sagen (Beiträge/Aktien/Likes) geschieht.
Anzeigen (angezeigt/versteckt, wenn sie sollten, entsprechende Inhalte anzeigen)
TimeZones: Remote -Anrufe/Zeiten gegen Telefonzeit und aktuelle Region Time => verwenden Sie ohnehin überall UTC, verwandeln Sie sich in der Ansicht in lokale Zeit
Läden: App ist nur in den gewünschten/benötigten Geschäften (iOS Appstore, Playstore, Android Market usw.) sichtbar und ist nur auf kompatiblen Geräten sichtbar. Die Tablet -App sollte im Smartphone -Store nicht sichtbar sein. Die Speicherseite ist auf dem neuesten Stand mit Versionsaktualisierungen, Beschreibung, Name/Nummer, Tester, die vor der Veröffentlichung benachrichtigt wurden.
Vorabveröffentlichungschecks / Vor-Store-Schecks (so dass die Überprüfung der Geschäftsabwicklung durchgeführt wird)
App -Symbole sind in allen erforderlichen Formaten erhältlich. Ladensymbole sind erhältlich; Alle App -Bilder sind in allen Formaten erhältlich (1x, 2x, 3x usw.)
OS -Kompatibilitäten, CrossPlatform -Kompatibilitäten (funktioniert es auf iOS / Android / Windows Phone, wie es sollte?)
Versionskompatibilitäten: Funktioniert es in iOS 9, 10, 11, 12? Testen Sie Ihr Ziel und alle Versionen, die Sie unterstützen sollen
Funktioniert es auf allen Geräten auf allen Versionen? : iPhone, iPad, iPhone X, iPhone #S und auch Android (Omegalul)
Orientierungen (Fehlermeldungen, Videos, Splashscreen, Navigation und reguläre Bildschirme in allen Orientierungen auf allen Gerätegrößen)
Sound (stoppt beim Hintergrund? Geht weiter? Zeigt eine Benachrichtigung an? Ist steuerbar im Control Center / Remote Player)
Benachrichtigungen (werden gesendet, wenn sie, sind reich? Deep verlinkt? Modify Badge? Badge Updates selbst, wenn die App gelesen wird? Geofenced? Plattformspezifisch / Funktionspezifisch. Mehr, um @pushwoosh nach Beispielen nachzuschlagen)
Gesten
// Tatsächliche Todo -Liste von Sachen, die ich nicht vergessen möchte
Worum geht es? Hier geht es darum, Ihre App gründlich und vollständig zu testen. Diese Liste enthält so viele Elemente wie möglich, die Sie testen sollten. Viele, von denen Sie wahrscheinlich bereits getestet haben, einige, über die Sie vielleicht nicht nachgedacht haben. Hier geht es darum, alle Kästchen zu überprüfen und entweder die Tatsache zu validieren, dass Sie tatsächlich X & Y getestet haben. Sie haben jedoch auch beschlossen, Z zu ignorieren. Viele der Elemente der Checkliste gelten möglicherweise nicht auf Sie, da Ihre App diese spezifische Funktion nicht hat oder keine bestimmte Technologie verwendet. Möglicherweise möchten Sie auch einfach aus irgendeinem Grund einige Tests überspringen, und das ist in Ordnung. Das liegt an Ihnen, herauszufinden und zu entscheiden. Solange Sie eine Entscheidung getroffen haben, bedeutet dies, dass Sie die Liste gelesen, die Preis und die Folgen von (nicht) Tests akzeptiert haben und gut gehen können!
Wenn Sie an Ihr Projekt nachdenken, haben Sie wahrscheinlich Blinder an. Die Scheuklappen des Programmierers oder Besitzers sind die schlimmsten, da Sie wissen, was die App tun soll, und zwangsläufig werden Sie in diesen Grenzen testen. Benutzer verwenden Ihre App möglicherweise nicht so, wie Sie es dachten, und dies wäre ein UX -Problem. Wir sind hier nur über das Testen, stellen Sie sicher, dass Ihre App offline oder auf niedrigem Akku funktioniert oder wenn Sie Zugriffsrechte verweigern, die Sie tatsächlich benötigen. Einige Sachen, die Benutzer tun, die Sie in all diesen Testwochen für selbstverständlich gehalten haben. Hier geht es hauptsächlich darum, "über den Tellerrand hinauszudenken" oder wie ich es gerne nenne: den bestmöglichen Job als Tester zu machen.
Hier ist ein ziemlich berühmter Tweet, der veranschaulicht, was ich meine.
QA -Ingenieur betritt eine Bar. Bestätigt ein Bier. Bestellungen 0 Biere. Bestellungen 999999999 Biere. Befiehlt eine Eidechse. Bestellungen -1 Biere. Bestätigt einen Sfdeljknesv.
- Bill Sempf (@Sempf) 23. September 2014
Es ist lustig (oder zumindest denke ich, dass es es ist) und es ist wahr. Dieses einfache Beispiel zeigt viele Dinge, die Sie in Ihrer App einchecken können.
Die ganze Liste sieht ziemlich überwältigend aus und das ist normal. Ich möchte, dass es so vollständig wie möglich ist. Wie ich bereits sagte, geht es darum, Sie über die vielen Möglichkeiten zu informieren. Es liegt an Ihnen zu entscheiden, ob ein Element für Ihren spezifischen Fall getestet wird. Was es ist oder nicht ist Ihre Entscheidung, solange Sie die Entscheidung getroffen haben und sich dessen bewusst sind. Das ist der Punkt dieser Liste.
Sie können diese Liste wie Sie möchten, denn solange Sie sie verwenden, verbessern Sie die Qualität der von Ihnen versandten Software. Die Tatsache, dass Sie diese Liste verwenden, ist weitaus wichtiger als die Art und Weise, wie Sie diese Liste verwenden. Es kann sich um eine gründliche und regelmäßige Exemplar, eine Checkliste vor der Veröffentlichung oder sogar so einfach wie eine schnelle Lektüre sein, bevor Sie ins Bett gehen. Solange Sie es lesen und wissen, dass es da ist, wird es irgendwie nützlich sein.
Denken Sie als kurzer, aber sehr wichtiger Hinweis daran, dass ein Großteil dieser Tests mit klassischen Unit -Tests und UI -Tests durchgeführt werden kann. Das sollte bereits die überwiegende Mehrheit der wichtigsten Elemente abdecken, die sie testen sollten. Der Rest kann bei Bedarf manuell getestet werden. Das bedeutet, dass Sie Testsuiten schreiben und an verschiedenen Stellen in Ihrer App verwenden können, um eine langfristige Stabilität zu gewährleisten. All dies manuell zu testen wäre ein Albtraum ; Wenn Sie nicht wissen, wie Sie Unit -Tests oder UI -Tests schreiben, schauen Sie nach. Es gibt dort viel zu lernen, das Ihnen eine enorme Menge an Zeit, Geld erspart und die Tortur vermeidet, die manuelle Tests haben.
Ich schreibe dies hauptsächlich alleine. Die einzige Hilfe/Inspiration, die ich bekam, war das Durchsuchen des Internets (siehe nächster Kapitel, ID) zu verschiedenen Themen. Leider bin ich durch mein eigenes Wissen und meine eigenen Erfahrungen begrenzt, was bedeutet, dass in Bereichen, in denen Sie, liebe Leser, viel Erfahrung haben, sicherlich viele Inhalte fehlen. Hier kommt Github ein; Sie können frei nach einer Pull -Anfrage bitten, meinen Inhalt ändern oder Ihre eigenen hinzufügen. Ich werde es überprüfen und nach besten Kenntnissen validieren, wahrscheinlich mit Hilfe der Community. Sachen wie Sicherheit, Verschlüsselung, Netzwerk, das sind Bereiche, in denen mir am meisten fehlt. Wenn man bedenkt, dass ich ein durchschnittlicher Joe bin, fehlt es wahrscheinlich den meisten Menschen, und wo Ihre App auch am anfälligsten ist. Dies bedeutet, dass dies Bereiche sind (in denen Sie schwach sind), müssen dreifach geprüft sein und Sie sollten auf jeden Fall zusätzliche Aufmerksamkeit darauf aufnehmen!
Andere Möglichkeiten, sich zu bedanken / zu sagen, sind die folgenden:
Immerhin verbringe ich viel Zeit, um Ihnen auch alle Zeit zu sparen. Das muss etwas wert sein: D.
Und schließlich möchte ich mich bei Michael Hunter für seine erstaunliche Checkliste bedanken, die mich dazu inspirierte, meine eigene Checkliste speziell für die mobile Entwicklung (iOS, Android, Windows Phone) zu starten. Es sieht so aus, als ob viel Zeit und Mühe in diese Version der Liste gesteckt wurden, von der ich weiß, dass sie nicht einmal die erste Version ist. Das ist eine großartige Arbeit, und wenn Sie außerhalb des Handys sind, empfehle ich dringend , dass Sie es ausprobieren. Meine einzige Hoffnung ist, eines Tages eine Checkliste mit ähnlicher Qualität zu erreichen. Von dort aus fand ich mehrere Checklisten im Internet, die meisten von ihnen sehr unvollständig, aber die, die auffiel, ist die Front-End-Checkliste von David Dias, die mich auch in vielerlei Hinsicht inspirierte, meine eigenen zu verbessern. Bitte, schau ihn auch an, es ist Arbeit, die es wert ist, sich zu verbreiten!
Texteingaben sind in vielen Geschmacksrichtungen, Größe und Anwendungsfällen erhältlich. Offensichtlich behandeln Sie password nicht auf die gleiche Weise wie ein anderes Feld, und es gibt viele Felder mit vielen verschiedenen Zwecken. Diese Liste sollte sie alle oder zumindest die meisten abdecken. Das Testen Ihrer Eingabe erfolgt über mehrere Aspekte. Sie müssen sicherstellen, dass die Validierung in Logik und Benutzeroberfläche funktioniert, dass das Textfeld alle Arten von Stress und Eingaben behandelt und dass die Formatierung, wenn überhaupt, ordnungsgemäß funktioniert. Alle diese zusammen sollten Ihnen letztendlich ein funktionierendes Textfeld bieten.
Sie sind noch nicht fertig, wenn Sie bei der Validierung von Texteingaben nicht alle folgenden Eingaben und Situationen behandelt haben. Beachten Sie, dass diese auch für die meisten anderen Eingabetypen (Kennwort, E -Mail, Nummern usw.) gelten. Wenn Sie sich mit einer Art String -Eingabe befassen, betrachten Sie die folgende Liste sowie die entsprechende Liste.
aBCd 1234 #@ !? ;) $= § :grinning: oder :-) oder? oder U+1F60A 123 t , " , ... string.Empty nullSie sind noch nicht fertig, wenn Sie nicht versucht haben, Daten auf folgende Weise einzugeben:
Und das gilt nur für einen Texteingabe in einem Bildschirm Ihrer App. Sie sollten jedes Texteingangsfeld in der gesamten App gründlich validieren. Und dies erwähnt nicht einmal die Eingabebildformatierung, z. B. das Hinzufügen von Leerzeichen automatisch zwischen Eingängen oder das Erzwingen, dass einige Zeichen gefärbt oder in Großbuchstaben geändert werden.
Sie sind noch nicht fertig, wenn Sie nicht alle Ihre Zahleneingaben gründlich getestet haben
0 13.37 oder 13,37 (Machen Sie sich abhängig vom Gebietsschema!) -1337 10^20 "124" 12.23 gegenüber 12,23 10.234,96 gegenüber 10,234.96 13.37 € gegenüber € 13.37 13.34 statt 13.3389 13.00 oder nur 13 oder etwas ganz anderes? 4000 eingeben, aber nicht 3999.99 oder kann ich auch 4000.56 eingeben? 12345 wird 0,12345 oder ,12345 oder etwas anderes? Wird es auf 0,12 neu formatiert? -1 , 0 , -1000 , 234940 ) Sie sind noch nicht fertig, wenn Sie nicht alle Ihre E -Mail -Eingaben gründlich getestet haben
@ Charakter @ Zeichen . Charakter . , - , _ usw.) ù , à usw. Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn Sie es nicht getan haben
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Eingänge sind nicht immer Text in Formularen, es gibt andere Möglichkeiten, wie Menschen ihre ... Eingabe geben können. Und es gibt daher andere Möglichkeiten, Dinge zu vergessen!
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Das Fehlermanagement ist die Säule einer App bei guter Gesundheit. Es hilft Ihnen dabei, Probleme aufzuspüren (andere Tools helfen auch) und daher Fehler beheben. Sie möchten jedoch nicht, dass dies ein Hindernis für Ihren Benutzer und deren Erfahrung in Ihrer App ist. Es gibt ein gutes Gleichgewicht zwischen gutem UX, Fehlerverfolgung und dem Benachrichtigen, dass ein Problem aufgetreten ist.
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn
Sie sind noch nicht fertig, wenn