Skip to content

Los Múltiples Roles Dentro de Software Testing

roles dentro de software testing

Durante los últimos años las empresas de software han buscado activamente varios roles dentro de software testing y quality assurance. Derivado de esta búsqueda y demanda de profesionales han surgido diferentes roles como lo son QA Engineers (QE), Automation Tester, Software Developer in Test (SDT o SDET), Performance Tester o QA Engineers híbridos.

software testing roles

Estos nuevos roles vienen con algunas implicaciones, varias compañías basan la verificación de calidad de su software en la automatización de pruebas, sin embargo,  no debemos olvidar que son personas las que siguen construyendo software para otras personas. Teniendo esto en mente debemos adoptar una mentalidad enfocada a la calidad y entender cada rol dentro del área de QA, además debemos identificar cuál de estos roles  se ajusta a lo que requiere nuestra empresa.

Quality Assurance Engineer

Es probable que en tu empresa actual, el rol de QA Engineer (QAE) se utilice para referirse a las personas que realizan actividades relacionadas con QA (testing). Para los más puristas en QA, existe un debate acerca de qué es quality assurance y qué es testing. Algunas personas pueden llegar a sentirse ofendidas si nos referimos a ellas solamente como “testers”. 

Me gustaría hacer una aclaración en el más puro estilo bibliográfico, una persona que es “tester” es aquella que detecta defectos, mientras que, un quality assurance engineer debe prevenir dichos defectos, trabajar en test cases centrados en flujos de usuarios finales y entender las necesidades de los productos y las aplicaciones a validar.

Las actividades que incluye el rol de QAE pueden incluir lo siguiente:

  • Prevención y detección de defectos.
  • Entender los productos y servicios a validar.
  • Testing tradicional (casos de pruebas funcionales y agile testing).
  • Testing reports.
  • Conocimiento de la unidad de negocio a validar (Banking, FinTech, Gaming, Telco, etc).
  • Shift-left testing.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

Algunas de estas actividades son convencionales dentro de las responsabilidades de un QAE, sin embargo, algunas empresas pueden requerir actividades adicionales como pueden ser la implementación de algunas herramientas o frameworks de test automation. Para aquellos QAE que no estén familiarizados con la parte de coding, mi sugerencia es que se aproximen a las herramientas de automatización de prueba sin código ya que pueden maximizar sus capacidades actuales como QAs.

Un enfoque moderno a este rol es no sólo orientarse a procesos de calidad, sino también hacer énfasis en una cultura de calidad integral. La calidad debe ser considerada en cada fase de un proyecto y cada persona debe ser responsable de la calidad, desde los desarrolladores hasta las personas de ventas necesitan entender que QA brinda valor a la empresa y es una actividad necesaria a seguir.

Automation Tester

El rol de automation tester es bastante conocido y puede incluir conocimiento y experiencia en las siguientes actividades:

  • Frameworks de automatización de pruebas. 
  • Herramientas de automatización de pruebas.
  • Diseño de patrones de automatización de pruebas.
  • Entender los enfoques de automatización de pruebas.
  • Conocimiento de herramientas importantes que ayuden con las actividades de automatización de pruebas.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

Este rol se enfoca en acelerar la calidad dentro de cada sprint. En agile testing es primordial acelerar ciertos procesos pero, ¿qué sucede si no estás siguiendo una metodología agile? En ese caso, la automatización de pruebas puede ayudar a reducir los tiempos de testing. Hasta cierto punto los automation testers ayudan a los QAE creando scripts de pruebas para poder reducir los tiempos de las actividades repetitivas y así enfocar el esfuerzo en otras actividad de valor durante el testing.

La automatización de pruebas es necesaria pero recordemos que si los scripts de prueba no están agregando valor o aportando en términos de calidad, quizás sea tiempo de considerar un enfoque diferente. Los automation testers necesitan aprovechar los escenarios centrados en los usuarios finales en lugar de tratar de automatizar todos los test cases.

“El hecho de que su automatización de pruebas esté funcionando no significa que agregue valor.”

Enrique A. Decoss – SENIOR QA MANAGER

Software Development in Test

Antes de entrar de lleno en el rol de software developer in test (SDT) es importante entender su origen. El rol de SDT fue usado por primera vez dentro del equipo Bing en Microsoft en el año 2005, en ese entonces a este rol se lo conocía como software engineer in test.

Microsoft identificó un curioso paradigma en la estrategia de desarrollo. En conjunto con las necesidades de su equipo nace un término denominado “Combined Engineering” donde los desarrolladores eran responsables de escribir los test automatizados de la funcionalidad que estaban desarrollando. El resultado de esta estratégia fue ciclos de desarrollo más cortos y ágiles.

 El equipo Bing hizo las cosas bien al usar esta nueva estrategia la cual fue popularizada y altamente adoptada por otras empresas de tecnología.  

Retomando el tema de lo que es un SDT actualmente. El rol de SDT se enfoca en desarrollar herramientas para el testing las cuales ayudan a ejecutar las pruebas de manera más rápida.

El rol de SDT incluye las siguientes actividades:

  • Desarrollar los frameworks de automatización de pruebas.
  • Colaborar con los desarrolladores para mejorar el diseño del software y la testabilidad.
  • Revisar el código del producto.
  • Crear los dashboards para reportar los resultados de las pruebas.
  • Desarrollar las herramientas que ayuden a los QAEs.
  • Crear la infraestructura para realizar testing continuo.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

De manera práctica podemos describir a este rol como un ingeniero de software especializado en testing. Si actualmente eres un SDT en tu actual empresa, las actividades pueden estar enfocadas en la automatización de pruebas así como en el desarrollo de nuevas herramientas que ayuden a los QAEs. 

Algo que me gusta mencionar a los SDTs es que debemos darle un mayor peso a los individuos y sus interacciones sobre los procesos y las herramientas. En testing nuestro principal compromiso es cumplir con las expectativas de los clientes así como entregar aplicaciones con la más alta calidad. Recordemos que la automatización de pruebas es solo una área; los SDTs deben ayudar a mejorar otras áreas, como lo son performance, accesibilidad, testabilidad y seguridad entre otras.

Performance Tester

La demanda de performance testers ha sido menor en los últimos años y esto podría indicar que este rol está desapareciendo. Aún así, todavía existen empresas requiriendo performance testers, aquí podemos encontrar algunas actividades que realiza este rol:

  • Diseñar scripts de pruebas orientados a performance.
  • Crear scripts de pruebas orientados a performance.
  • Experiencia en automatización de pruebas y herramientas de monitoreo.
  • Experiencia con algunas herramientas de performance testing usando Silk Performer/JMeter/LoadRunner/NeoLoad/Gatling.
  • Ejecutar benchmark, load, stress, endurance, y otras pruebas no funcionales. Monitorear los logs de las aplicaciones para reconocer algunos comportamientos dentro de  los sistemas.
  • Analizar la utilización del CPU, uso de memoria, network usage, garbage collection, parámetros de DB y reportes de DB.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

Además de las actividades antes enlistadas, un performance tester debe realizar constantemente monitoreos y proveer recomendaciones para prevenir problemas dentro de su área.. Dentro de algunas empresas se han mezclado los roles de automatización y performance, si a esto le sumamos que muchos performance testers han cambiando su rol a automation tester o SDT, no nos debería sorprender que cada día haya menos vacantes abiertas buscando cubrir la posición de performance tester. Mi sugerencia es siempre seguir aprendiendo.

Quality Assurance (Híbrido)

Hoy en día muchas empresas están demandando releases más rápidos y con menos fallas; las entregas a producción deben ser más ágiles y con la más alta calidad. Además, los presupuestos con los que se cuentan son limitados y en general hay menos recursos. Mencionado lo anterior exploremos un poco más lo que es un rol híbrido dentro de QA. 

Un QA híbrido es un una persona que puede combinar pruebas automatizadas y testing funcional. Las responsabilidades pueden incluir las siguientes:

  • Prevención de defectos.
  • Entender los productos y servicios a validar.
  • Revisar, ejecutar, y automatizar los casos de pruebas donde sea posible..
  • Establecer los test automatizados para front-end testing, para back-end testing, performance testing, mobile testing, entre otros.
  • Entrenar a los miembros del equipo acerca de la colaboración y las herramientas de calidad; herramientas de calidad.
  • Ayudar a los equipos cross-funcionales, incluyendo desarrollo, UX, QA, y soporte técnico.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

Los QAs híbridos proveen gran flexibilidad en lo que concierne a las necesidades de pruebas aunque puede sonar a que tienen una gran carga laboral debido a que recaen diferentes áreas sobre este rol (un QA generalista o full stack). Muchas empresas están requiriendo roles híbridos actualmente tanto en desarrollo como en DevOps. Recordemos que la especialización puede ser muy costosa para ciertos nichos en tecnología, en cambio, compartir ciertas habilidades en diferente áreas puede ser un gran diferenciador en testing.

Quality Assurance Manager

En ocasiones cuando trabajamos en agile testing se vuelve difícil identificar las actividades del QA manager; esta situación ha ocasionado que se genere un debate acerca de la redundancia de este rol dentro de las metodologías ágiles. En un contexto más tradicional los QA managers están a cargo de los equipos de pruebas ayudando a definir procesos dentro de esta área.

Algunas de las actividades que recaen sobre el rol de QA manager y por las cuales creo que este rol es necesario dentro de un equipo de calidad de software son:

  • Impulsar los estándares de calidad.
  • Ayudar al equipo a elegir las herramientas de pruebas.
  • Construir el equipo de QA (reclutar a los miembros del equipo).
  • Proveer técnicas y experiencia en QA.
  • Realizar el presupuesto para la proyección de QA en el año. 
  • Facilitar las mejores prácticas para prevenir defectos en varios equipos ágiles y en la organización.

Nota: Lista informativa, algunas empresas pueden incluir más actividades o quizás menos, listamos las siguientes como parte importante de lo que puede ser el rol en cuestión.

El rol de QA manager en metodologías ágiles está relacionado a brindar soporte, entrenamiento y proporcionar consejos a los miembros del equipo de calidad, así como asegurar y establecer mejores prácticas al momento de iniciar proyectos o sugerir mejoras para eliminar complejidad durante el día a día.

Puntos Finales a Considerar

Como mencionamos anteriormente, existen múltiples roles dentro de QA enfocándose en diferentes actividades y procesos. En ocasiones podemos confundir las limitaciones entre un rol y otro o quizás podamos tener diferentes expectativas. Como líderes de QA debemos proveer descripciones de trabajo claras y precisas con base a las necesidades actuales de nuestra empresa.

Actualmente existe una alta demanda de roles híbridos en las empresas por ejemplo, full-stack developers o site reliability engineers. Como mencionamos anteriormente, el área de QA tiene un rol generalista que no necesariamente necesita una especialización en una sola área de testing y el cual puede ser de gran ayuda en startups (tratemos de evitar situaciones de ser el único tester cuando la demanda de testing aumente).

Un QA híbrido puede ser una gran adición a nuestra empresa si aún no tenemos testing ayudando con varias actividades, en especial si existen ciertas restricciones de presupuesto así como el uso de herramientas sin código o de código bajo.

(Visited 50 times, 1 visits today)
Enrique De Coss

Enrique De Coss

Enrique is an enthusiastic IT professional with 17+ years of experience in different IT domains, focusing on quality assurance (automation, performance, functional) of web & mobile applications. He has been working as QA Manager for the last years, mainly involved in building robust test automation solutions from the ground up and in test strategies to improve software quality. Curious by nature about new techniques in testing and testing tools. An active member of various software testing communities, speaker, and a guest blogger on multiple platforms.
Enrique De Coss

Enrique De Coss

Enrique is an enthusiastic IT professional with 17+ years of experience in different IT domains, focusing on quality assurance (automation, performance, functional) of web & mobile applications. He has been working as QA Manager for the last years, mainly involved in building robust test automation solutions from the ground up and in test strategies to improve software quality. Curious by nature about new techniques in testing and testing tools. An active member of various software testing communities, speaker, and a guest blogger on multiple platforms.

Get the latest articles, news, and feature releases from MuukTest emailed to you once a month