// Esto es más una lista de tareas más que nada en este momento
Introducción
Entradas de texto
Otras entradas (casilla de verificación, interruptores, controles mutuamente excluyentes)
Gestión de errores (excepciones, bloqueos, alertas, mostrando errores)
Navegación (Push, Pop, Tabs, Modal, Rotación de pantalla)
Antecedentes (estado guardado, tarjeta de trampolín)
Conectividad (WiFi, borde lento, 2G, 3G, 4G, intermitente, cero-bytes, fuera de línea, modo plano) y conectividad de hardware (USB, NFC, Bluetooth, WiFi)
Localización (de texto e imágenes, en varias configuraciones en el lenguaje del teléfono frente al lenguaje de la aplicación frente a la región actual)
Interrupciones (llamadas aceptadas, llamadas declinadas, envío/recepción de SMS, ciclo de potencia, reiniciar, enviar/recibir notificaciones, alertas, baja memoria, pantalla de inicio, conmutación de aplicaciones, modo de avión, fuera de almacenamiento): debe significar que la aplicación puede detenerse, detenerse, y recuperarse en el estado correcto y en el estado correcto cuando se agota o estar interrumpida por cualquier media. Respondiendo aplicaciones de la notificación .
Almacenamiento (es todo almacenado correctamente, sin riesgos, en el lugar correcto)
Seguridad (¿Su aplicación almacena información de pago o detalles de tarjeta de crédito? ¿Su aplicación utiliza protocolos de red seguros? ¿Se pueden cambiar a inseguros? ¿La aplicación solicita más permisos de los que necesita? Para ejecutar las aplicaciones de incumplimiento en la seguridad y el error de las aplicaciones que informan los certificados de solicitud de autenticación y los permisos de la aplicación automática de la aplicación al ingresar continuamente no)
Accesibilidad (botones de software, zoom, tamaños de fuente, texto al habla, ...)
Rendimiento (uso de la batería, uso de la CPU, uso de memoria (y fugas), administración de almacenamiento (disco vs tarjeta), capacidad de respuesta, tamaño de pantalla, tiempo para iniciar la aplicación, tiempo en la pantalla de lanzamiento, la pantalla de carga pesada / usted debe extender las cargas de teclas continuas) Lo que sucede debe tratarse sin problemas con una buena y clara reacción.
Trabajo de fondo (que trabaja fuera del hilo principal para no bloquear la interfaz de usuario, pero tampoco tiene un trabajo masivo cuando la aplicación está "inactiva" o en segundo plano, drenando batería/datos/etc.)
Integración (¿La cámara, GPS, Bluetooth funcionan bien con la aplicación)
Compatibilidad hacia atrás, Compatibilidad de hardware: verifique todas las versiones de todos los dispositivos si es posible. La aplicación debe ser instalable y totalmente utilizable (a menos que las características no estén disponibles en ese dispositivo)
Imágenes: Tamaño y peso correctos en todos los dispositivos y orientaciones. No estirado, no pixelado, ni demasiado HD, etc.
Social: las políticas de seguridad y privacidad están disponibles, el usuario puede cerrar sesión u optar por no participar. Se solicita a los usuarios de lo que pueden/sucederán cuando dan derechos y cuándo ocurre las cosas (publicaciones/acciones/me gusta).
Anuncios (mostrados/ocultos cuando deberían, mostrar el contenido apropiado)
Zonas horarias: llamadas/horarios remotos frente al tiempo del teléfono frente a la hora actual de la región => Use UTC en todas partes de todos modos, transformar en la hora local en la vista
Tiendas: la aplicación es visible solo en las tiendas que desea/necesita (iOS AppStore, PlayStore, Android Market, etc.), y es visible solo en dispositivos compatibles. La aplicación de tabletas no debe ser visible en la tienda de teléfonos inteligentes. La página de la tienda está actualizada con las actualizaciones de la versión, la descripción, el nombre/número, los probadores notificados antes del lanzamiento,
Verificaciones previas a la liberación / verificaciones previas a la tienda (de modo que la revisión de la tienda debe pasar)
Los iconos de la aplicación están disponibles en todos los formatos requeridos; Los iconos de la tienda están disponibles; Todas las imágenes de la aplicación están disponibles en todos los formatos (1x, 2x, 3x, etc.)
Compatibilidades del sistema operativo, compatibilidades de planificación cruzada (¿funciona en iOS / Android / Windows Phone como debería?)
Compatibilidades de la versión: ¿Funciona en iOS 9, 10, 11, 12? Pruebe su objetivo y todas las versiones que se supone que debe admitir
¿Funciona en todos los dispositivos en todas las versiones? : iPhone, iPad, iPhone X, iPhone #s y también Android (Omegalul)
Orientaciones (mensajes de error, videos, escollar, navegación y pantallas regulares en todas las orientaciones, en todos los tamaños del dispositivo)
Sonido (¿se detiene cuando va al fondo? ¿Sigue en marcha? Muestra una notificación? ¿Es controlable en el centro de control / reproductor remoto)
Notificaciones (se envían cuando deberían, ¿son ricos? Enlace profundo? Modificar la insignia? Se actualiza la insignia cuando la aplicación se lee? Geofenciada? Especial de plataforma / característica específica. Más para buscar @Pushwoosh para ver ejemplos)
Gestos
// Lista real de cosas de cosas que no quiero olvidar
¿De qué se trata esto? Se trata de probar su aplicación a fondo y completamente. Esta lista incluirá tantos elementos como sea posible que deba probar. Muchos de los cuales probablemente ya hayas probado, algunos en los que no hayas pensado. Se trata de verificar todos los cuadros y validar el hecho de que realmente probó X&Y, pero que también decidió ignorar a Z. Muchos de los elementos de la lista de verificación podrían no aplicarse a usted, porque su aplicación no tiene esa característica específica o no usa una tecnología específica. También es posible que simplemente desee omitir algunas pruebas por cualquier razón, y eso está bien. Eso depende de usted averiguarlo y decidir; ¡Mientras haya tomado una decisión, significa que ha leído la lista, ha aceptado el precio y las consecuencias de (no) pruebas y está listo para comenzar!
Si piensas en tu proyecto, probablemente tengas anteojeras. Las anteojeras del programador o el propietario son las peores, porque sabes lo que se supone que debe hacer la aplicación e, inevitablemente, probarás dentro de esos límites. Los usuarios pueden usar su aplicación, no en la forma en que pensó que lo haría, y este sería un problema UX. Estamos aquí solo sobre pruebas, asegurándonos de que su aplicación funcione fuera de línea, o con una batería baja, o cuando se les niegue los derechos de acceso que realmente necesita. Algunas cosas que los usuarios pueden hacer que usted dio por sentado durante todas estas semanas de pruebas. Se trata principalmente de "pensar fuera de la caja" o, o lo que me gusta llamarlo: hacer el mejor trabajo posible como probador.
Aquí hay un tweet bastante famoso que ilustra lo que quiero decir.
El ingeniero de QA entra en un bar. Ordeña una cerveza. Pedidos 0 cervezas. PEDIDOS 9999999999 Cervezas. Ordena un lagarto. Ordenes -1 Cervezas. Ordene un Sfdeljknesv.
- Bill SEMPF (@SEMPF) 23 de septiembre de 2014
Es divertido (o al menos me gusta pensar que lo es) y es cierto. Este simple ejemplo ilustra muchas cosas para verificar en su aplicación.
Toda la lista parece bastante abrumadora y eso es normal. Quiero que sea lo más completo posible. Como dije anteriormente, el punto es informarle sobre las muchas posibilidades. Depende de usted decidir si vale la pena probar un elemento para su caso específico. Ya sea o no es su decisión, siempre y cuando haya tomado la decisión y sepa. Ese es el punto de esta lista.
Puede usar esta lista como desee, porque mientras la use, mejorará la calidad del software que envía. El hecho de que use esa lista es mucho más importante que cómo usa esa lista. Podría ser un tutorial minucioso y regular, una lista de verificación previa al lanzamiento, o incluso tan simple como una lectura rápida antes de acostarse. Mientras lo leas y sepa que está ahí, será útil de alguna manera.
Como una nota rápida pero muy importante, recuerde que muchas de estas pruebas se pueden realizar utilizando pruebas unitarias clásicas y pruebas de interfaz de usuario. Eso ya debería cubrir la gran mayoría de los elementos importantes para probar. El resto se puede probar manualmente si es necesario. Eso significa que puede escribir suites de prueba y usarlo en varios lugares de su aplicación para garantizar la estabilidad a largo plazo. Probar todo esto manualmente sería una pesadilla ; Si no sabe cómo escribir pruebas unitarias o pruebas de interfaz de usuario, busquelo. Hay mucho que aprender allí que le ahorrará una tremenda cantidad de tiempo, dinero y evitar la prueba de que las pruebas manuales son.
Principalmente estoy escribiendo esto solo, la única ayuda/inspiración que obtuve fue navegar por Internet (ver el próximo capítulo, ID) sobre varios temas. Lamentablemente, estoy limitado por mi propio conocimiento y experiencia, lo que significa que ciertamente falta mucho contenido en las áreas en las que usted, querido lector, tiene mucha experiencia. Ahí es donde entra en su lugar; Puede solicitar libremente una solicitud de extracción, modificar mi contenido o agregar la suya. Lo revisaré y lo validaré lo mejor que pueda, probablemente con la ayuda de la comunidad. Cosas como seguridad, cifrado, redes, esas son áreas en las que más me falta. Teniendo en cuenta que soy un Joe promedio, probablemente es donde la mayoría de las personas carecen de habilidad, y donde su aplicación será más vulnerable/falta también. Esto significa que esas son áreas (las que estás débil) deben verificarse triple y definitivamente deberías gastar más atención en ellas.
Otras formas de contribuir / decir gracias serían las siguientes:
Después de todo, paso mucho tiempo para ahorrarles a todos también, eso debe valer algo de lo anterior: D
Y finalmente, me gustaría agradecer a Michael Hunter por su increíble lista de verificación, lo que me inspiró a comenzar mi propia lista de verificación específicamente en torno al desarrollo móvil (iOS, Android, Windows Phone). Parece que mucho tiempo y el esfuerzo se puso en esa versión de la lista, que sé que ni siquiera es la primera versión. Ese es un gran trabajo y si estás fuera del móvil, le sugiero que vayas a verlo. Mi única esperanza es, algún día, lograr una lista de verificación de una calidad similar. A partir de ahí, encontré varias listas de verificación en Internet, la mayoría de ellas muy incompletas, pero la que se destacó es la lista de verificación front-end de David Dias, que también me inspiró de muchas maneras para mejorar la mía. Por favor, ve a verlo también, ¡vale la pena difundir el trabajo!
Las entradas de texto vienen en muchos sabores, tamaño y casos de uso. Obviamente, no trata los campos password de la misma manera que trata otro campo, y hay muchos campos con muchos propósitos diferentes. Esta lista debería cubrirlos a todos, o al menos la mayoría de ellos. Probar su entrada se realizará a través de múltiples aspectos. Debe asegurarse de que la validación funcione en lógica y UI, que el campo de texto maneja todo tipo de estrés e entradas, y que, si lo hubiera, el formato funciona correctamente. Todos los que juntos deberían proporcionarle un campo de texto de trabajo.
Todavía no ha terminado si no ha tratado con todas las siguientes entradas y situaciones, al validar las entradas de texto. Tenga en cuenta que también se aplican a la mayoría de otros tipos de entrada (contraseña, correo electrónico, números, etc.). Si está tratando con cualquier tipo de entrada de cadenas, considere la siguiente lista, así como la lista relevante.
aBCd 1234 #@ !? ;) $= § :grinning: o :-) o? o U+1F60A 123 t , " , ... string.Empty nullTodavía no ha terminado si no ha intentado ingresar datos de las siguientes maneras:
Y eso es solo para una entrada de texto en una pantalla de su aplicación. Debe validar cada campo de entrada de texto a fondo, a lo largo de la aplicación. Y esto ni siquiera menciona el formato de entrada, como agregar espacios automáticamente entre entradas, o obligar a algunos caracteres a colorear o cambiar a mayúsculas.
Todavía no ha terminado si no ha probado a fondo todas sus entradas numéricas con
0 13.37 o 13,37 (¡Tenga en cuenta el separador dependiendo del local!) -1337 10^20 "124" 12.23 vs 12,23 10.234,96 vs 10,234.96 13.37 € vs € 13.37 13.34 en lugar de 13.3389 13.00 o solo 13 , o algo completamente diferente? 4000 pero no 3999.99 , o también puedo escribir 4000.56 ? 12345 se convierte en 0,12345 o ,12345 o algo más? ¿Es reformateado a 0,12 ? -1 , 0 , -1000 , 234940 ) Todavía no ha terminado si no ha probado a fondo todas sus entradas de correo electrónico con
@ @ . personaje . , - , _ , etc.) ù , à , etc. Aún no has terminado si
Aún no has terminado si no has
Aún no has terminado si
Aún no has terminado si
Aún no has terminado si
Las entradas no siempre son texto en formas, hay otras formas en que las personas pueden dar su ... entrada. ¡Y por lo tanto, hay otras formas de olvidar las cosas!
Aún no has terminado si
Aún no has terminado si
Aún no has terminado si
Aún no has terminado si
La gestión de errores es el pilar de una aplicación en buena salud. Le ayudará a rastrear los problemas (otras herramientas también ayudarán) y, por lo tanto, a arreglar errores. Pero no desea que eso sea un obstáculo para su usuario y su experiencia en su aplicación. Hay un buen equilibrio que lograr entre un buen UX, el seguimiento de errores y la notificación del usuario que ha surgido un problema.
Aún no has terminado si
Aún no has terminado si
Aún no has terminado si
Aún no has terminado si