KIF: ¿Cómo ejecutar automáticamente / realizar una prueba de esfuerzo en una aplicación de iOS para encontrar la causa de un error raro en la interfaz de usuario?

Nota: yo añadíkif al título solo para alumnos de indexación de búsqueda, teniendo en cuenta que la mayoría de las respuestas resultaron a discutirlo

Estoy buscando algo como el selenio para iOS, básicamente un marco de prueba de automatización de prueba / unidad que puede ejecutar un determinado escenario de interfaz de usuario muchas veces hasta que falla, lo que me ayudaría a reducir la causa de un error de interfaz de usuario que ocurre muy raramente y al azar.

(y, por cierto, he registrado todas las líneas de código de la interacción fuente / fuente de datos y pasé horas analizando la causa potencial ... pero no encontré nada concluyente ... nuevamente, este error rara vez ocurre).

Miré algunas de lasUnidades de prueba de marcos en iOS, pero parecen ser tantos. No estoy seguro de cuál elegir. También mi referencia al selenio se basa en conjeturas, ya que he trabajado con personas de control de calidad que han usado Selenium en grandes proyectos web en el pasado (y supongo que debe haber algo similar para iOS).

Ahora que soy un equipo de un solo hombre trabajando en un proyecto de iOS, tendré que poner un sombrero de control de calidad y resolver este error.

Me enfrento a un error clásico que ocurre cuando hay una discrepancia entre el número real de filas insertadas en un UITableView y el número de filas que devuelve el delegado del origen de datos. Este es el mensaje de error:

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

Hago clic en unUITableViewCell eso me lleva a otroUITableView. A veces funciona

y algunas veces (muy raramente) no lo hace (con el error anterior):

Respuestas a la pregunta(1)

Su respuesta a la pregunta