KIF: Wie kann ich eine iOS-App automatisch ausführen / einem Stresstest unterziehen, um die Ursache für einen seltenen Benutzeroberflächenfehler zu ermitteln?
Hinweis: Ich fügte hinzukif Zum Titel nur für Suchindizierungszwecke, wenn man bedenkt, dass sich die meisten Antworten als Diskussionsgrundlage herausstellten
Ich suche nach etwas wie Selen für iOS, im Grunde ein Testautomatisierungs- / Komponententest-Framework, das ein bestimmtes UI-Szenario viele Male ausführen kann, bis es abstürzt, was mir helfen würde, die Ursache eines UI-Fehlers einzugrenzen, der sehr selten auftritt und zufällig.
(Übrigens, ich habe jede einzelne Zeile des Codes der Datenquelle / Tabelle-Interaktion mit NSLogging aufgezeichnet und Stunden damit verbracht, die potenzielle Ursache zu analysieren. Aber ich habe nichts Schlüssiges gefunden. Auch dieser Fehler tritt sehr selten auf.)
Ich schaute einige derUnit-Testing-Frameworks in iOS, aber sie scheinen so viele zu sein. Ich bin mir nicht sicher, welche ich auswählen soll. Auch mein Hinweis auf Selen basiert auf Vermutungen, da ich mit QA-Leuten zusammengearbeitet habe, die Selen in der Vergangenheit in großen Webprojekten verwendet haben (und ich gehe davon aus, dass es für iOS etwas Ähnliches geben muss).
Jetzt, da ich ein Ein-Mann-Team bin, das an einem iOS-Projekt arbeitet, muss ich einen QS-Hut aufsetzen und diesen Fehler herausfinden.
Ich stelle einen klassischen Fehler fest, der auftritt, wenn eine Diskrepanz zwischen der tatsächlichen Anzahl der in eine UITableView eingefügten Zeilen und der Anzahl der vom Datenquellendelegierten zurückgegebenen Zeilen besteht. Dies ist die Fehlermeldung:
*** Assertion failure in -[UITableView
_endCellAnimationsWithContext:] Exception in insertRows: Invalid
update: invalid number of rows in section 0.
The number of rows contained in an existing section after the update (2) must be equal to
the number of rows contained in that section before the update (2),
plus or minus the number of rows inserted or deleted from that section
(1 inserted, 0 deleted) and plus or minus the number of rows moved
into or out of that section (0 moved in, 0 moved out).
Ich klicke auf aUITableViewCell
das bringt mich in einen anderenUITableView
. Manchmal funktioniert es
und manchmal (sehr selten) nicht (mit dem obigen Fehler):