KIF: Как выполнить автоматический запуск / стресс-тестирование приложения для iOS, чтобы найти причину редкой ошибки пользовательского интерфейса?

Примечание: я добавилкиф к названию только для целей индексации поиска, учитывая, что большая часть ответа оказалась для его обсуждения

Я ищу что-то вроде selenium for iOS, в основном инфраструктуру автоматизации тестирования / модульного тестирования, которая может запускать определенный сценарий пользовательского интерфейса много раз, пока он не падает, что поможет мне сузить причину ошибки пользовательского интерфейса, которая происходит очень редко и случайно.

(и, между прочим, я NSLoged каждую строку кода взаимодействия источника данных / таблицы и провел часы, анализируя потенциальную причину ... но не нашел ничего окончательного ... опять же, эта ошибка очень редко случается).

Я посмотрел на некоторые изфреймворки модульного тестирования в iOSНо их, кажется, так много. Я не уверен, что выбрать. Также моя ссылка на селен основана на гипотезе, так как я работал с людьми из QA, которые использовали Selenium в крупных веб-проектах в прошлом (и я предполагаю, что должно быть что-то подобное для iOS).

Теперь, когда я работаю над проектом для iOS, мне нужно надеть шапку QA и разобраться с этой ошибкой.

Я сталкиваюсь с классической ошибкой, которая возникает, когда есть расхождение между фактическим количеством строк, вставленных в UITableView, и количеством строк, которое возвращает делегат источника данных. Это сообщение об ошибке:

*** 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).

Я нажимаю наUITableViewCell это переводит меня в другоеUITableView, Иногда это работает

и иногда (очень редко) этого не происходит (с указанной выше ошибкой):

Ответы на вопрос(1)

Ваш ответ на вопрос