Todo sobre las funciones, actividades y competencias de un Ingeniero de Calidad o QE, y su importancia en el proceso de Software Testing.

Últimamente, es posible que haya escuchado muchos rumores sobre el rol del ingeniero de calidad o QE. En las próximas líneas ahondaremos acerca de la importancia de este rol en el desarrollo de las pruebas relacionadas con la calidad.

Diferencias entre QA y QE

El papel de un QA (aseguramiento de la calidad) es aquel que, como su nombre lo indica, garantiza la calidad. En este post, Federico Toledo explica cómo el control de calidad puede referirse al analista de calidad, que me parece más apropiado que el aseguramiento de la calidad (ya que es imposible garantizar la calidad por completo).

De todos modos, ese papel está asociado con el Tester funcional, que generalmente, no tiene habilidades de programación.

Hace unos años, el papel de SDET (Ingeniero de desarrollo de software en pruebas) ganó popularidad. Con este, surgió el papel ágil de DevOps, con un enfoque combinado en desarrollo, operaciones y negocios.

¿Quién es el QE en el entorno de Software Testing?

Hoy, el nuevo término “QE” (ingeniero de calidad) es lo que representa un buen tester. Esto se debe a que veo el rol de QE como la evolución de un probador a un rol más técnico, al estar involucrado en muchas áreas de desarrollo.

De la misma manera que los DevOps del equipo, el ingeniero de calidad ayuda en el proceso de prueba de desplazamiento a la izquierda.

¿Qué hace exactamente un QE?

Un QE no es un desarrollador que se enfoca en las pruebas (como un SDET), ni es alguien que se enfoca en el desarrollo y las operaciones (como un DevOps). Mucho menos, es alguien que garantiza la calidad (como un QA).

El QE es quien aplica ingeniería a distintas partes del proceso de desarrollo de software en beneficio de la calidad.

Federico toledo, COO de Abstracta

Funciones principales de un Ingeniero de calidad

En términos generales, un QE tiene conocimiento de las operaciones (infraestructura, servidores, plataformas) que ayudan a realizar pruebas de seguridad, pruebas de rendimiento, integrando controles en un esquema de CI / CD, etc.

Asimismo, un buen QE debe tener una cierta sensibilidad por la calidad, como lo hace un buen Tester. También es esencial que un Tester que se dedica a las pruebas de rendimiento conozca Selenium.

De igual manera, que sepa cómo definir una estrategia de prueba funcional o definir un criterio de aceptación de una historia de usuario.

Por otro lado, es importante que un QE ser capaz de gestionar la automatización de pruebas a diferentes niveles; desde el nivel API, el nivel UI o el nivel de protocolo.

En conclusión, un Ingeniero de Calidad también podría ser llamado un full stack tester.

¿Qué es lo que hace al QE tan relevante en la actualidad?

Un QE es tan importante hoy porque el rol en sí mismo está impulsado por metodologías ágiles y está asociado con la idea de la prueba de Shift Left Testing, ya que el Tester debe involucrarse en las primeras tareas de desarrollo, incluso cuando aún no hay un producto completo.

Pese a los rumores, los avances tecnológicos no dejarán obsoleto el papel de Tester e ingeniero de calidad. Está claro que un Tester estará mejor preparado para trabajar con los equipos de hoy si él o ella es capaz de: revisar el código, analizar componentes, automatizar pruebas, tener conocimientos de Jenkins y herramientas similares, conocer cómo funcionan los contenedores de software, por ejemplo Docker, entre otros conocimientos que detallamos más abajo.

Por tanto, si bien el papel del Tester no está desapareciendo, está claro que los Testers necesitan hoy en día, tener más habilidades técnicas que nunca.

El rol del Tester en las metodologías ágiles

El desarrollo ágil también influye en el cambio en el papel de un Tester, porque los equipos generalmente están compuestos por no más de nueve miembros (también conocidos como “Two-Pizza-Teams”).

Esto hace referencia a que para ser autosuficientes, menos personas necesitan concentrar más conocimiento y responsabilidad.

Por esta razón, tal vez algunas empresas tengan equipos especializados o incluso tercericen algunas tareas. Pero el éxito de esa externalización será mayor si hay alguien en el equipo que pueda administrar en detalle, las tareas delegadas.

Te puede interesar: 10 errores que cometen las empresas al externalizar las pruebas de software

Actividades de un QE

Dentro de las principales actividades de un QE destacan:

  • Definir un plan y una estrategia de calidad: determinar qué hacer y qué no hacer, de acuerdo con los objetivos y riesgos asociados, dado el contexto. Cómo probar, con qué herramientas, de acuerdo con las restricciones presupuestarias, etc.
  • Revisiones del código: comprender el código y sugerir mejoras. Herramientas como SonarQube son útiles para realizar un plan de acción basado en un análisis del código y un informe técnico del reporte.
  • Pruebas funcionales: un QE debería poder probar un sistema y buscar errores con un ojo muy crítico. Debe conocer diversas técnicas para diseñar casos de prueba y debe conocer con profundidad las pruebas exploratorias.
  • Reportar incidentes: dentro de los objetivos de las pruebas no solo se encuentran encontrar bugs, sino también resolverlos. Para esto, es fundamental contar con las habilidades para informarlos adecuadamente, en aras de la colaboración con los desarrolladores.
  • Automatizar las pruebas funcionales en diferentes niveles: tal vez no incluiríamos pruebas unitarias aquí, ya que estas son para el desarrollador. Un QE podría realizar revisiones periódicas de las pruebas unitarias y sugerir nuevos casos de prueba, analizar la cobertura y decidir si las pruebas están en el nivel correcto. Ahora bien, un QE automatiza a nivel API (REST, SOAP) y a nivel UI con herramientas como Selenium. Debería preparar las pruebas con un enfoque BDD (Behavior Driven Development) utilizando por ejemplo, Cucumber. Por último, debería poder definir una estrategia de prueba automatizada, que se base idealmente en la pirámide de Cohn.
  • Pruebas de rendimiento (Test Performance): esto implica ser capaz de automatizar a nivel de protocolo, así como analizar datos de monitoreo de diferentes componentes, buscar bottlenecks y oportunidades de mejora.
  • Pruebas de seguridad (Test Security): utilice diferentes herramientas y técnicas para el control de acceso, piratería ética (ethical hacking), etc. Al igual que las pruebas de rendimiento, esto requiere un conocimiento muy específico de las tecnologías y plataformas utilizadas.
  • Comprender y manejar el git-flow: es fundamental que las pruebas se alineen con el desarrollo, y un punto de contacto muy relevante entre los dos es la forma en que se manejan las versiones de código, las diferentes ramas y los diferentes entornos. El código de prueba (test code) debe tratarse como parte del código del sistema, utilizando las mismas herramientas que un desarrollador y la misma metodología de gestión de versiones.
  • Utilizar entornos de integración continua (CI): todas las comprobaciones automatizadas deben mantenerse en un entorno de prueba de CI / CD como Jenkins o algo similar, para ejecutarlas con frecuencia. El QE debería manejar todos los artefactos de prueba, y me atrevo a decir que podría ser un usuario de Jenkins más experto que los propios desarrolladores.
  • Hablar y Pensar como el dueño del negocio: además de los aspectos técnicos anteriores, lo que hace que un QE excepcional suele ser su comprensión de la visión global del negocios. No debe olvidarse que todo el trabajo de calidad es para que el negocio prospere, por lo que esta visión es tan importante como el conocimiento técnico.

La anterior lista podría ser más larga, todo depende del producto, el tamaño de la empresa, el contexto, entre otros factores.

Seguramente, hay varias actividades más que podríamos agregar a esta lista, ¡agregue en los comentarios la que se le ocurra!

El valor de un QE en mercados exigentes

Mientras se iniciaba en informática como Tester Performance en 2005, Federico participó en diferentes roles en proyectos de pruebas funcionales, pruebas automatizadas, pruebas de seguridad, pruebas de usabilidad, revisión de código, y más.

Recientemente en proyectos en los que apoyan la construcción de un esquema de CI/CE (Integración Continua / Entrega Continua).

Por esta razón, señala que las actividades y competencias mencionadas anteriormente, esto es por lo que todo Tester debería esforzarse. Los QE son muy buscados en los mercados más exigentes y siempre se valorarán más (sobre un QA tradicional).

En definitiva, quien tenga la visión más completa de la calidad -aunque sus tareas se hayan limitado inicialmente a un área determinada- será más valioso para cualquier organización.

Somos implacables en la búsqueda de soluciones de calidad

En Abstracta, llevamos más de una década ayudando a algunas de las marcas más grandes del mundo como Shutterfly, CA Technologies y BBVA, aportando QE dedicados y de excelencia

Todos nuestros Testers en Abstracta, con el tiempo, proyecto tras proyecto, se vuelven cada vez más completos y se ramifican en diferentes áreas de calidad.

Esperamos que esta publicación le haya dejado más claro todo lo que engloba el rol de un ingeniero de Calidad. ¿Necesita un QE excepcional y flexible?

Artículo original de Federico Toledo, tomado del blog de Abstracta.


Artículos recomendados