2010-04-19 8 views
12

Wenn für iPhone/iPad Entwicklung tun SieWie testen Sie Ihre iPhone/iPad-Apps?

  1. Do Einheit/Integration/etc-Test?
  2. Welchen Rahmen verwenden Sie?
  3. Welche anderen Rahmen (en) haben Sie versucht, (wenn Sie diese nicht entschieden zu verwenden, warum nicht?)

HINWEIS Dieses auf einem question asked a few days ago basiert (das seit stark bearbeitet wurde). Die Frage erzeugte einige interessante Antworten, die nützlich sein könnten, um an einem Ort zu aggregieren.

Antwort

9

Hier ist mein aktueller Ansatz zum Testen vor dem Versand einer App.

1) Erstellen und analysieren Sie mit dem Xcode integrierten Clang Analyzer.

Dies ist in vielerlei Hinsicht hilfreich, es fängt viele kleine dumme Dinge und auch einige Speicherlecks (obwohl manchmal seine Ergebnisse falsch positive enthalten).

2) Überprüfen Sie gründlich alle Warnungen. Einige von ihnen können tatsächlich wirklich schädlich sein. Entfernen Sie die Warnungen wo möglich.

3) Verwenden Sie Instrumente für Speicherlecks zu überprüfen, Speicherbedarf zur Laufzeit, usw.

4) Verwenden Shark, um Leistungsprobleme zu identifizieren, wenn ich fühle es benötigt wird.

5) Führen Sie (manuell) alle vordefinierten Testreihen aus, um zu überprüfen, ob die Benutzeroberfläche und der zugrunde liegende Code wie erwartet funktionieren. Wenn Sie einer App neue Funktionen hinzufügen, führen Sie immer wieder Regressionstests durch, um sicherzustellen, dass alles reibungslos und ordnungsgemäß abläuft.Ich habe Unit-Tests vor langer Zeit weggeworfen, aufgrund der unglaublichen Zeit, die benötigt wurde, um sie einzurichten und auszuführen.

6) Versenden Sie eine Ad-hoc-Version der App an Alphatester, korrigieren Sie gemeldete Fehler, versenden Sie die App erneut an Alpha- und Betatester und berichtigen Sie gemeldete Fehler.

7) Abschließender Test persönlich auf verschiedenen Geräten, im Moment iPhone 3GS, iPhone 3G und iPod Touch.

2
  1. Keine
  2. N/A
  3. N/A

In aller Ehrlichkeit, fand ich die Menge an Arbeit, um einen einzelne Einheit Test erstellen benötigte ein kompletter Schmerz zu sein. Es gibt eine Menge Spott, der selbst für die grundlegendsten Tests erforderlich ist. Außerdem war es schwierig, die Modelle, Ansichten und Controller im iPhone zu trennen. Und da meine App ziemlich klein war, war es die Zeit nicht wert.

Wenn/Wenn ich etwas Größeres schrieb, würde ich den Komponententest erneut untersuchen.

Mit dem gesagt, ich habe eine Menge von Benutzer/QA-Style-Tests. Anderen zusehen, wie sie die App benutzen (wirklich hilfreich!), Die App benutzen, etc. Man kann dort nicht sparen, wenn man bei Unit Tests skimpst!

+0

Kennen Sie irgendwelche Werkzeuge, die zumindest helfen, UI-Tests zu automatisieren, oder ist es so ziemlich alles manuell? – R0MANARMY

+0

@ R0MANARMY - Es tut mir nicht leid. –

+0

Re: Automation .. Es gibt eine Testautomatisierung Framework in 4.0 SDK, die Javascript – nolim1t

0

Ich habe einige Unit-Tests an meinen Apps durchgeführt. Aber da es sich um einen Taschenrechner handelt, ist es leichter, einen Unit-Test als andere komplexere Apps durchzuführen. Ich finde es episch hilfreich, wenn ich einen Fall finde, der nicht richtig funktioniert (normalerweise aus manuellen Tests), dann schreibe ich einen Test, damit der (hoffentlich obskure) Fall immer in der Zukunft getestet wird. Auf diese Weise wiederhole ich Fehler nicht weiter unten.

0

Die einzige Prüfung ist mit der Anwendung Instrumente, und das ist nur manchmal.

+0

Jede Möglichkeit, die Sie erklären können, warum (und Link zu der Anwendung?). – R0MANARMY

+0

Die Anwendung ist standardmäßig mit den Entwicklertools ausgestattet und bietet Ihnen viele Informationen, insbesondere zur Speichernutzung. –

5

Persönlich mache ich nur Unit-Testing von Klassen und/oder Methoden, die für Unit-Test sinnvoll sind und den Aufwand wert sind. In meiner Meinung nach dies läuft darauf hinaus, die folgenden Arten von Code unten:

  • reine Rechenalgorithmen
  • Datenparser verschiedener Art (Dateien, Internet-Daten, etc.)
  • Methoden, die eine Eingabe/Ausgabe-Beziehung haben
  • Und wahrscheinlich ein oder zwei mehr, die ich vergessen habe.

Ich verwende selten Unit-Tests für den Test von GUI-bezogenen Code.

Ich habe bisher nur das mit dem iPhone ausgelieferte OCUnit/SenTesting Framework verwendet.

Ich habe auch festgestellt, dass das Erstellen einer kurzen Checkliste von Dingen, die im Rahmen des Release-Prozesses zu tun sind, viele Tests nach sich zieht. Es ist oft nicht das direkt testbezogene Zeug, das Probleme im Produkt verursacht, sondern auch die kleinen (vergessenen) Schritte im Build/Release-Prozess.