Ich las über das Schreiben von Tests für Android-Apps und ich kann nicht ganz verstehen, warum sollte ich UI-Tests verwenden, anstatt die App selbst in Echtzeit zu testen? Können Sie mir einige Beispiele geben, wenn UI-Tests nützlich sind?Was nutzt das automatisierte UI-Testen?
Antwort
Automatisiertes Testen im Allgemeinen ist aus einem wichtigen Grund gut: es ist automatisiert.
Manuelles Testen ist unvermeidbar. Es ist jedoch langsam und daher testen Entwickler oft nicht so häufig oder so gründlich, wie sie sollten.
Schreiben von automatisierten Tests — ob für UI-Elemente oder irgendetwas anderes — macht es einfacher, die Tests auszuführen und Bestätigung, dass alles noch funktioniert. Automatisierte Tests helfen bei dem "gründlich" Problem, dass die automatisierten Tests nicht müde, gelangweilt, hungrig, schläfrig, mürrisch usw. werden. Automatisierte Tests, die selbst automatisch ausgeführt werden, wie bei jedem Commit zu einem Versionskontrollsystem, über ein Continuous Integration (CI) -Server — Hilfe mit dem "häufig" -Problem.
Wie wichtig automatisierte Tests sind, hängt von der Größe des Projekts und der Größe der Benutzerbasis ab. Für eine App, die Sie nur für sich selbst verwenden, oder einfach als "Proof of Concept" ohne tatsächliche Benutzer, ist manuelle Tests in Ordnung. Ich habe beispielsweise keine automatisierten Tests für die Hunderte von Beispiel-Apps in meinem Buch. Auf der anderen Seite haben große Projekte möglicherweise mehr Testcode als Produktionscode mit sehr ausgefeilten Testprozessen (z. B. automatisiertes Testen mit einer Reihe von Geräten, um Regressionen aufzudecken, die nur bestimmte Betriebssystemversionen betreffen).
Am Ende hat Ihre Frage wenig mit Android zu tun, und mehr mit Software-Entwicklung im Allgemeinen, und ich vermute, dass das ist, warum es Downvotes anzieht.
- 1. Was nutzt das SyncRoot-Muster?
- 2. Was nutzt das Schlüsselwort "far" in Delphi?
- 3. Was nutzt die Syntax: =?
- 4. Was nutzt Deployment.Current.Dispatcher.BeginInvoke (() => {...})?
- 5. Was nutzt "echo || true"?
- 6. Was nutzt dieser Code?
- 7. Was nutzt Log4j API?
- 8. Was nutzt ein schreibgeschütztes LDAP?
- 9. Android-Berechtigungen: Wer nutzt was?
- 10. Was nutzt ObservableCollection in .net?
- 11. Was nutzt MongoDB in GrayLog2?
- 12. Was nutzt Reflection in .NET?
- 13. Was nutzt die Datei "aneignements.plist"?
- 14. Was ist JSR und was nutzt es?
- 15. Was nutzt das opener Argument in der eingebauten open() Funktion?
- 16. Mehrfachauswahl mit UISegmentedControl - Was nutzt Pages?
- 17. Was nutzt AsEnumerable() für ein Array?
- 18. Was nutzt Docker für die (Bild-) Versionierung?
- 19. Was nutzt die [\ b] Rücktaste Regex?
- 20. Was nutzt der Rückgabewert von memset()?
- 21. Was nutzt die abgeleitete Klasse als Vorlagenparameter?
- 22. Was nutzt ^: dynamic auf einem defonce?
- 23. Was nutzt der 'Schlüssel K1' im org.apache.hadoop.mapred.Mapper?
- 24. Was nutzt verwandte Felder in OpenERP?
- 25. Was nutzt Shared Preferences in Android?
- 26. Was nutzt meinen gesamten Speicher? [__MutationMarker__]
- 27. Was nutzt die Tag-Eigenschaft in .net
- 28. Was nutzt die IClonable-Schnittstelle in .NET?
- 29. Was nutzt Garnelen zum Rendern von PDFs?
- 30. Was nutzt eine Methode-lokale innere Klasse?
Automatische Tests zahlen sich für die * zweite * Zeit, die Sie sie ausführen (und die dritte, vierte, fünfte und so weiter). Wenn Sie Ihre App * nur einmal testen *, dann brauchen Sie sie nicht. –