Mi ultimo artículo de la serie de artículos sobre la localización de software y de páginas web, con un enfoque más para un traductor que se está introduciendo en el mercado laboral, se centra en el aseguramiento de la calidad del software. Aquí me planteo, como lo he venido haciendo en los artículos anteriores, preguntas, que trato de responder con el libro que todo traductor debería leer antes de embarcarse en este mundo de la localización titulado A Practical Guide to Localization, de Bert Esselink, aunque, esta vez, también he recurrido a mis apuntes del curso de localización de software y de páginas web, que hice en el Institute of Localization Professionals, en el año 2009, y he consultado algunas páginas especializadas en testeo de software.

De más esta decir que podrán encontrar en la web, muchos artículos sobre este tema, escritos por traductores renombrados en el área. Yo busco aportar una visión un tanto simplificada de un área que no lo es, al menos para empezar a digerir los primeros conceptos y las primeras ideas.

1.- ¿Qué es el aseguramiento de la calidad de un software?

El aseguramiento de la calidad consta de procesos y pasos que se implementan para garantizar la calidad óptima del producto final a distribuir o servicio a prestar. En el mundo de la localización de software, cuando se habla de aseguramiento de la calidad, se busca evaluar el software a comercializar antes, durante y después del proceso de localización, para verificar que cumpla con las especificaciones de diseño iniciales.

2.- Escucho mucho hablar de testing o testeo. ¿Específicamente, qué es el testeo de software?

El testeo de software es un proceso que consiste en identificar los problemas que impiden que el programa, desde el punto de vista operativo y estético, funcione adecuadamente. La idea es identificar los problemas, informar sobre ellos y resolverlos en pro del beneficio del usuario que vaya a utilizar dicho producto. Nunca está de más decir que esta evaluación la lleva a cabo un equipo multidisciplinario de profesionales, por ejemplo, quien realiza la prueba no corrige el error que encuentra.

3.- ¿Qué tipos de testeo se pueden llevar a cabo en un software?

Desde mi punto de vista, existen varias clasificaciones. Bert Esselink identifica tres niveles de testeo que son el testeo o las pruebas de internacionalización, el testeo o las pruebas de localización y el testeo funcional o las pruebas funcionales. Hablo de testeo o de pruebas como sinónimos.

Las pruebas de internacionalización consisten en verificar qué tan bien se ha internacionalizado el producto para localizarlo posteriormente. Este tipo de pruebas se implementa a lo largo del ciclo del desarrollo del producto y comprende, a su vez, dos tipos de pruebas que son las pruebas de compatibilidad internacional (international support test) y las pruebas de localizabilidad (localizability test). En las pruebas de compatibilidad internacional se verifica qué tan compatible es el programa con los idiomas a los cuales se va a localizar y con las configuraciones regionales del mercado al que se va a distribuir, además de la evaluación de los scripts. El objetivo de estas pruebas es la de verificar qué tan fácil es ajustar el producto a un determinado mercado. Las pruebas de localizabilidad se encargan de verificar qué tan fácil es localizar el software y se determinan los ajustes que hay que efectuar al código fuente y a los hardcode-strings, nuevamente, para que se facilite el proceso de localización.

El testeo o las pruebas de localización se llevan a cabo ya en la versión traducida del software y consisten en dos tipos de prueba que son el testeo lingüístico y el testeo funcional, aquí sí no hablo de pruebas, pues es más fácil encontrar información con estas denominaciones. Estos tipos de prueba las debe ejecutar una persona cuya lengua materna sea la misma que la del idioma al que se ha traducido el programa. Inclusive, se recomienda que estas pruebas las lleve a cabo un traductor. En el caso del testeo lingüístico el encargado de evaluar el programa se enfoca en verificar si existen errores lingüísticos, tales como errores de sentido, segmentos sin traducir, errores de puntuación y de estilo, entre otros muchos aspectos. En el caso del testeo cosmético, el responsable se enfocará en evaluar la interfaz del usuario, es decir, todos los aspectos visuales del producto localizado, tales como cuadros de diálogos, menús, informes y mensajes.

El testeo funcional o las pruebas funcionales se centran en verificar que el producto cumpla con las especificaciones establecidas para el mismo y que funciona según lo estipulado durante su diseño. Al realizar estas pruebas, ya la traducción del producto debería ser la definitiva. En esta etapa, se llevan a cabo varios tipos de pruebas para verificar las características y el comportamiento del programa. En esta etapa se puede evaluar la interfaz del usuario, las API, la administración de las bases de datos, la seguridad, el proceso de instalación, entre otros aspectos. Finalmente, se pueden desarrollar dentro de esta etapa de evaluación pruebas de integración, de desempeño, de regresión y de aceptación.

Finalmente el testeo de liberación o pruebas de liberación utilizan una versión final del programa en un sistema operativo localizado. La idea es verificar la funcionalidad básica  del producto a distribuir y verificar que todas las instrucciones se llevaron a cabo y que todas las actualizaciones se implementaron y, finalmente, que el producto cumple con las especificaciones para las que fue diseñado.

4.- ¿Cuáles son los tipos de defectos que nos podemos encontrar a la hora de testear o evaluar un software?

En parte, el nombre de los defectos está relacionado con el tipo de prueba que se vaya a llevar a cabo. Entre los distintos defectos están los defectos de requisitos y los de usabilidad, además de los defectos funcionales, cosméticos, de diseño y de localización.

Los defectos de requisitos se encuentran al comparar el software con los requisitos establecidos por escrito y encontrar que existe una desviación entre lo establecido y lo desarrollado. 

Los defectos de usabilidad están relacionados con los que afectan la habilidad del usuario para interactuar con el software.

Los defectos funcionales son los defectos que más se encuentran en el software y pueden ir desde un simple error de funcionamiento, hasta errores que impiden el procesamiento adecuado de la información

Los defectos cosméticos son aquellos defectos visuales que son molestos a la vista del usuario, entre ellos, podemos tener texto truncado, mala alineación, sobreposición de los elementos debido a un tamaño inadecuado de los cuadros de diálogo o de los botones, etc.

Los defectos de diseño son defectos que se encuentran a nivel del usuario y son los que impiden que no se cumpla el flujo de trabajo para el cual se diseñó el software.

Por último, los defectos de localización consisten en los distintos errores que uno puede encontrar al efectuar las pruebas de localización, sean a nivel lingüístico o cosmético.

5.- ¿Cómo puedo llevar un control de los defectos que voy encontrando en el software?

Los defectos o errores encontrados durante las distintas etapas de pruebas se pueden registrar en los distintos informes de defectos o problemas diseñados para tal fin. La gestión y el mantenimiento de este tipo de informes lo llevan a cabo los ingenieros de pruebas y de localización. Las pruebas, además, las llevan a cabo ingenieros de software, para el caso de las pruebas de internacionalización o lingüístas o traductores, para el caso de las pruebas funcionales y cosméticas.

Idealmente, un informe de registro de errores debería contener la siguiente información: el número del problema, la fecha de cuándo se informó sobre el problema, el nombre de quien informó inicialmente el problema, el producto, su versión, la serie, el idioma en el que se encontró el error, plataforma y versión de la plataforma, el nombre del archivo, la ubicación, la causa del problema o área del producto o componente, la ubicación exacta del problema en el archivo o aplicación, la descripción del problema, los pasos necesarios para reproducir el problema, el grado de gravedad, la configuración de la máquina, la solución, quién corrigió el problema y el estado del problema.

Existen bases de datos de errores que permiten que los usuarios también incluyan capturas de pantalla de las ventanas en donde está ocurriendo el error. Algo importante que acotar es que el error se debe reproducir más de una vez, si sólo ocurre una vez, entonces no se debe informar al respecto.

6.- ¿Existen programas para llevar a cabo todas estas pruebas?

Sí, de hecho, existen muchísimos programas para ejecutar pruebas. Los hay de software libre y de licenciamiento tradicional y en la nube, pero este tópico,  seguro lo desarrollo en otra entrada. De todos modos, aquí les dejo un enlace relacionado con el tema (pulsar aquí). Sin embargo, nos debe quedar claro el hecho de que para realizar pruebas de software se deberá configurar el equipo con el que se desarrollarán las mismas, sobretodo en cuanto al sistema operativo localizado a emplear.

Quedó por fuera una gran cantidad de aspectos. Sin embargo, saber qué es una prueba o testeo de software, qué tipos de prueba existen, cuáles son los defectos que se pueden encontrar y cómo se debería informar de dichos errores al jefe de aseguramiento de calidad son los aspectos iniciales más importantes para ubicarse en un mundo bastante complejo, pero interesante.

¿Nunca te habías preguntado si hacer pruebas lingüísticas y funcionales podría ser una salida laboral para un  traductor? ¿Qué piensas ahora que has leído esta pequeña publicación sobre el tema?

¡Un saludo para todos!