He escrito una aplicación de Android. La aplicación requiere una conexión Bluetooth a una pieza de hardware muy específica, actualmente un prototipo. La única forma en que puedo probar la aplicación en este momento es conduciendo cientos de millas para ver si funciona. Si termino con un ANR, puede ser muy vergonzoso frente a mi cliente. El tipo de conexión y la mecánica de esta aplicación están muy ajustados a este hardware. No se me permite traer una computadora portátil, rootear mi teléfono o conectarme a ningún otro dispositivo en las instalaciones.
¿Hay alguna forma de probar esta aplicación en casa o pasar por las actividades para garantizar que no tenga otro ANR en la segunda actividad mientras el cliente me mira horrorizado?
Debo señalar que no soy un programador experimentado y esta es una idea nueva con la que estoy ayudando a alguien, ya que la contratación de personal no está en la actualidad, por lo que indudablemente me faltan algunos de los conceptos muy básicos para desarrollar esto.
Respuestas:
Como sugirió @ MrSmith42, debe hacer lo mejor que pueda para burlarse de la interfaz. No necesita una conexión Bluetooth real para burlarse de ella. Llamar a una interfaz. Esa interfaz, en depuración, envía lo que esperarías para una entrada dada. Cuando no está en depuración, realiza el trabajo real de enviar y recibir los datos. Asegúrese de que lo que envía a la interfaz y cómo maneja su salida funciona. Espolvorea un poco generoso de manejo de errores, administra los errores que puedes administrar y registra el resto, y tienes algo que puedes probar directamente en el cliente.
La única posibilidad de error en ese punto radica en la diferencia entre cómo espera que maneje el dispositivo y cómo se comporta realmente, y en mi experiencia, el hardware nunca es completamente confiable. Así que asegúrese de tener un mecanismo general de manejo de errores para algo que no espera que al menos arroje algún tipo de registro.
fuente
Creo que este es un problema de gestión de proyectos, no tanto un problema de desarrollo de software.
Debe tener una o dos semanas con acceso al dispositivo (en las instalaciones de su cliente o en su oficina) para evaluar el comportamiento básico del dispositivo y ver cómo interactúa con su software. Luego, puede burlarse de la interfaz y desarrollar la funcionalidad en casa y nuevamente una semana de pruebas de integración.
Cuando interactúa con el hardware, la necesidad y el valor de las pruebas de integración no pueden subestimarse. Si las pruebas de integración no son posibles, su proyecto fallará. La programación a ciegas hacia un hardware que no puede probar no funciona.
Tiene que discutir este problema con su cliente.
fuente