Empresas

¿Quién vela por la calidad del software?

Dentro del mundo de la informática hay tantas especialidades como tecnologías. Sin embargo, hay una que garantiza que cualquier software funciona correctamente y está a la altura de las expectativas de los clientes. Se denomina Quality Assurance (QA). Angela Baldero, que lidera uno de los equipos de QA en Arsys, explica cómo se realizan las pruebas que llevan al límite cualquier programa.

– ¿Qué es el Quality Assurance y cómo lo entendéis en Arsys?

– Quality Assurance (QA) es un concepto y una especialidad informática que podríamos traducir como Garantía de Calidad y asegura que se cumplan todos los requerimientos de calidad de software, previniendo cualquier fallo. El equipo de QA debe asegurar la buena condición del software durante todas sus fases y que el cliente pueda utilizarlo de forma satisfactoria.

El compromiso de Arsys con respecto a la calidad del software es extraordinariamente alto, ya que el software está detrás de todas nuestras soluciones y en muchas ocasiones o en una proporción muy elevada es de desarrollo propio. Buena prueba de este compromiso es que tenemos diversos perfiles encargados de estas tareas. Así conseguimos que las soluciones de Arsys sean sólidas y cumplan las expectativas de nuestros más de 250.000 clientes.

– ¿Cómo se desarrolla vuestro papel de QA en el lanzamiento de una nueva solución en Arsys?

– En Arsys, estamos involucrados en el ciclo de desarrollo de una solución desde el primer paso de su creación, lo que facilita que podamos generar un software más robusto desde su comienzo y agilizar su llegada a nuestros clientes. Esto se complementa con una gran batería de pruebas, una vez que la etapa de desarrollo ha concluido, que se realizan siempre en un entorno de pre-producción, muy similar al real, pero que nos garantiza que los servicios de los clientes no se vean afectados por nuestra evaluación.

– ¿Qué tipos de pruebas realizáis antes de lanzar una solución en Arsys y cómo se llevan a cabo?

– Se realizan tanto pruebas de regresión (verificar que una actualización no afecta a una característica ya existente) como funcionales de una nueva característica que incorporamos a una solución. Para ello, lo primero es crear una lista con todas las pruebas necesarias que realizaremos.

Para facilitar una entrega de valor continua, intentamos siempre automatizar las pruebas lo máximo posible, apoyándonos en herramientas específicas de testing, como Selenium, que aumentan la rapidez y la eficiencia en estos procesos. Solo cuando no es posible esta automatización, optamos por realizarlas manualmente.

También contamos con pruebas de estrés y capacidad, con las que llevamos al límite las características de nuestras soluciones para validar su rendimiento ante cualquier circunstancia.

– Teniendo en cuenta que trabajáis codo con codo con diversos equipos de desarrollo, ¿cómo conseguís que esa colaboración fluya y más teniendo en cuenta que muchos de vosotros trabajáis en distintos países o en teletrabajo?

– Tenemos numerosas herramientas de colaboración a nuestra disposición que facilitan el trabajo en equipo, independientemente de dónde estemos. En mi caso, me he acogido a la posibilidad de teletrabajar desde mi domicilio en Alfaro, y estoy en comunicación constante con los diferentes equipos, tanto con mis compañeros de Arsys en Logroño como con los de otras oficinas o con los equipos internacionales de United Internet. Gracias a la videoconferencia y a otras herramientas casi es como si estuviéramos al lado, sentados en la misma mesa.

También son muy importantes las actividades que realizamos para fomentar el trabajo en equipo. Son los denominados team events, en los que realizamos actividades con todos los compañeros del departamento y que ayudan a conocernos en otro contexto. Si a esto le sumas las cenas de Navidad, las cenas de verano y otras actividades que se organizan durante el año, se afianzan nuestras relaciones y eso es algo que luego se nota en el trabajo del día a día.

– ¿Qué importancia tiene el QA en el desarrollo de software en general?

– Aunque no puedo ser objetiva, porque me dedico a ello, el QA representa uno de los papeles más importantes en el cumplimiento de las expectativas de los clientes. Garantizar la solución de errores supone un ahorro enorme en costes e implica rentabilidad, crecimiento y robustez.

Hay una fórmula muy sencilla que ejemplifica nuestro papel en QA y lo que aportamos al negocio: cuanto más seguro y eficaz sea el software, más contentos estarán los clientes y menos problemas tendrá una empresa.

– ¿Hasta qué punto o en qué casos es recomendable tener un equipo de QA independiente del equipo de desarrollo?

– Desarrollo y QA son dos equipos con distintas misiones, así que si hay equipos dedicados para cada área, cada uno puede centrarse en su foco y objetivo.
Un equipo de desarrollo se encarga de construir un software que cumpla con las funcionalidades que se requieren y realiza pruebas a su nivel, generalmente pruebas unitarias y automatizadas con soluciones tipo JUnit o PHPUnit.

Por su parte, el equipo de QA tiene un foco distinto, más global, con vistas a la funcionalidad desde el punto de vista del usuario, contemplando el sistema que probamos como una caja negra. Llevaremos a cabo el proceso de validar la calidad que exige tanto los niveles de la compañía como los que requiere el cliente.

La especialización y dedicación en exclusiva a este ámbito del QA permite adoptar más rápidamente tecnologías y herramientas específicas de testing, Desarrollo orientado al Comportamiento (BDD o Behavior Driven Development) o integración continua, lo que siempre multiplica la eficiencia.

Por ejemplo, Selenium para pruebas en entornos web, Cucumber y Gherkin para BDD o Jenkins para integración continua. Además, si es una misma persona la que cumple ambos perfiles, el de desarrollo y el de QA, hay pruebas de QA que tienden a condicionarse, ya que se conocen los aspectos más relevantes de la implementación.

Subir