La desincronizacion entre emulador y dispositivo
Prueba una app nativa y mantienes un arnes por plataforma, para luego descubrir que el emulador se comporto distinto al telefono. Los huecos de cobertura se esconden entre paso en mi maquina y paso en la del usuario. Cada plataforma multiplica la superficie que debes reverificar a mano.
Un runtime de mini-programa estrecha esa superficie: el mismo programa corre en iOS, Android y el emulador mediante un contrato de runtime comun, asi una sola suite automatizada ejercita los tres.
Que es probar mini-programas
El runtime incluye APIs de automatizacion y un modo headless: WeChat ofrece miniprogram-automator y DevTools, Alipay entrega Minitest, y ambos permiten que un script conduzca paginas, toque elementos y afirme estado sin un humano tocando la pantalla. Como el runtime es la capa comun, un proyecto de pruebas apunta a cada super-app. GitLab CI y GitHub Actions corren esa suite en cada commit.
Donde se nota la diferencia
| Paso | Nativo (por plataforma) | Runtime de mini-programa (una suite) |
|---|---|---|
| Arnes de pruebas | Uno por SO | Una sola fuente |
| Emulador vs dispositivo | Se desincroniza | Mismo runtime |
| Cobertura | Reconciliada a mano | Una sola corrida |
| Integracion CI | Por plataforma | Una tubería |
| Costo de regresion | Multiplicado | Plano |
El resultado es un check verde que significa lo mismo en cada dispositivo.
Por que una suite vence a tres
Una sola suite significa que una regresion se detecta una vez, en el mismo entorno, en lugar de aparecer como sorpresa especifica de una plataforma. Tambien significa que los nuevos super-app reusan las pruebas existentes en lugar de crear otro arnes, asi la cobertura crece con el ecosistema, no contra el.
Como lo aplica Cross Mini App
Cross Mini App ejecuta los programas en un runtime que expone ganchos de automatizacion en iOS, Android y el emulador, asi una sola suite CI cubre cada superficie. Escribes una prueba, la corres en todas partes y publicas cuando el check esta en verde en todas. Dejas de reconciliar emulador y dispositivo y empiezas a confiar en un resultado.
Esa es la diferencia entre tres arneses que se desincronizan y una suite que se mantiene.