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):

Antworten auf die Frage(1)

Ihre Antwort auf die Frage