¿Qué prácticas existen para las pruebas unitarias específicas de la localidad?


17

Recientemente descubrimos un problema específico de la configuración regional en nuestra aplicación y, aunque fue fácil de solucionar (una vez que descubrimos lo que estaba sucediendo), el equipo en el que estoy pensando está pensando en las prácticas de pruebas unitarias al respecto.

Nos gustaría detectar estos problemas antes, idealmente antes de que sean descubiertos por un cliente, y queremos protegernos de reintroducir errores locales específicos en el futuro, pero duplicar cada prueba unitaria en al menos otra cultura parece ser una gran cantidad de gastos generales.

¿Cómo o cómo abordaría las pruebas de unidades de múltiples ubicaciones?


1
¿Le gustaría dar más detalles sobre el problema que ha tenido? Suena interesante, y me encantaría saber más al respecto.
Mchl

1
@Mchl Fue el error local de Turquía . Teníamos un código de comparación de cadenas que incluía la letra i.
Adam Lear

Respuestas:


4

Generalmente no necesitará duplicar cada prueba unitaria. Debe identificar lo que realmente depende de la configuración regional (la buena lista de verificación está aquí ). Muchas cosas relacionadas con la internacionalización están sujetas al mayor nivel de prueba que la prueba unitaria.

Si está tratando con los datos de cadena que pueden venir en diferentes codificaciones, entonces puede utilizar "pruebas basadas en datos", es decir, pasar datos en diferentes codificaciones al mismo método de prueba. Para Java, TestNG es el más adecuado para esto.

Otro posible problema es el formato y análisis de fecha / hora. La mayoría de los usos locales: para separar elementos de tiempo, pero hay quienes usan puntos y los brasileños usan hm y s (12h15m30s). Esto también puede ser utilizado por los datos pasados ​​en diferentes configuraciones regionales; no es necesario que los pruebe a todos.

Y la prueba de GUI con configuraciones regionales de derecha a izquierda generalmente no es un tema de prueba de unidad.

La conclusión es que necesita identificar qué datos en sus pruebas unitarias son específicos de la localidad y utilizar pruebas basadas en datos (proveedores de datos) para proporcionar estos datos a sus pruebas.


3

Aquí hay algunas sugerencias:

  • Siempre desarrolle en una máquina con configuraciones locales diferentes de su público objetivo principal. Le ayudará a encontrar errores relacionados con las fechas, la moneda y todos los problemas de formato numérico muy rápidamente. Haga lo mismo con su servidor de compilación, póngalo en Brasil o Vietnam (no físicamente, solo la configuración).

  • Use acentos y caracteres especiales en el título de su prueba, cadenas, etc. en las pruebas de su unidad. El problema de internacionalización más común que obtengo con el software que uso (no los que desarrollo) es con é y è o incluso ç en francés. Póngalos en cada cadena que use en sus pruebas. Usa una palabra común que usas todo el tiempo comobrèç©

  • No olvides usar acentos y gráficos especiales en las rutas también. ¡Visual Studio.NET en sí todavía tiene muchos problemas con eso! Debe acceder a crear dichos directorios y leer / escribir desde ellos en sus pruebas.

  • Si usa Visual Studio .NET, en las propiedades del proyecto, en Análisis de código , habilite Reglas de globalización . Los problemas más comunes generarán una advertencia en la compilación.

  • Contrata a un extranjero en tu equipo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.