SDET vs QA: el debate más reciente en el Testing

¿Qué es SDET? ¿Cuál es la diferencia entre SDET y QA? ¿Realmente necesita un ingeniero de desarrollo de software especialista en pruebas? Discutamos y encontremos las respuestas a estas preguntas.

«La calidad nunca es un accidente; siempre es el resultado de un esfuerzo inteligente»

John Ruskin

Y los testers contribuyen en gran medida a este esfuerzo para garantizar la calidad en el desarrollo de software.

Desde colocarlo en último lugar en la lista de prioridades hasta convertirlo en un componente clave del desarrollo de software, las empresas se han dado cuenta de que las pruebas de software son una etapa crucial y decisiva en el ciclo de vida del desarrollo de software (SDLC: Software Development Life Cycle). Como resultado, las metodologías de prueba han sufrido cambios a lo largo del tiempo.

Los cambios en las metodologías de prueba también han dado lugar a un cambio en el papel de los testers. Un ingeniero de aseguramiento de calidad o ingeniero de QA (Quality Assurance) es un rol de pruebas tradicionales. Una nueva incorporación a los roles de prueba es el ingeniero de desarrollo de software especialista en pruebas o SDET (Software Developer Engineer in Test). Es un rol relativamente nuevo que todavía deja a muchos confundidos.

Aquí se discute la necesidad y el aumento de SDET en las pruebas, qué es SDET y en qué se diferencia de los QA.

¿Qué es SDET?

Un SDET es la fusión de un desarrollador y un ingeniero de pruebas. Un SDET es esencialmente un desarrollador y participa en el proyecto desde su etapa de planificación, pudiendo ayudar a automatizar el proceso de pruebas.

Considerando que, un QA es alguien que tiene un conocimiento completo de varios procesos y metodologías de pruebas.Un SDET también deben estar versado en gestión de datos, informes de errores, resolución de problemas y entornos de pruebas.

SDET vs QA: diferencias fundamentales

La definición anterior debería haber dejado una idea de las diferencias entre un SDET y un QA. Sin embargo, las definiciones son solo una breve introducción a las diferencias entre estos dos roles. Aquí hay algunos puntos adicionales de diferenciación que lo ayudarán a comprender mejor los roles.

Funciones y responsabilidades

Las responsabilidades de un QA son las siguientes:

  • Planificación del proceso de prueba
  • Asignar pruebas a varios testers
  • Decidir el calendario y presupuesto de las pruebas.
  • Interactuar con el equipo de desarrollo para garantizar que las pruebas vayan por buen camino.
  • Crear informes que resuman los resultados de las pruebas para el equipo de desarrollo.
  • Crear casos y escenarios de pruebas.
  • Revisar las pruebas para asegurarse de que se cumplen todos los requisitos del cliente.

Los roles y responsabilidades de un SDET incluyen lo siguiente:

  • Revisar el código del producto a lo largo del SDLC.
  • Participar en los procesos de planificación y diseño
  • Defender al cliente asegurándose de que el producto cumpla con las expectativas del cliente.
  • Escribir marcos de trabajo (frameworks) escalables y robustos que se pueden usar para automatizar las pruebas.
  • Desarrollar herramientas de prueba que ayuden a los testers.
  • Realizar pruebas de rendimiento / desempeño, funcionales y de regresión.
  • Asegurar que el producto sea robusto, confiable y escalable
  • Preparar exhaustivos informes de pruebas.

En resumen, el SDET es principalmente responsable de automatizar las pruebas y entregar un producto de alta calidad, confiable y escalable al participar en el proceso de desarrollo desde el principio. En comparación, el QA es el único responsable de las pruebas y no participa en las fases de planificación y diseño.

Habilidades necesarias para el trabajo: SDET vs QA

La diferencia en los roles y responsabilidades de ambos roles se traduce también en una diferencia en las habilidades necesarias para el trabajo. Un QA solo necesita conocimientos básicos de programación, debe estar bien versado en el uso de herramientas de prueba como Selenium, desarrollar y ejecutar casos de prueba y crear y rastrear errores (bugs).

Por el contrario, un SDET debe estar bien versado en varios lenguajes de programación y debe poder comprender el proceso de desarrollo. También debería poder traducir los requisitos del cliente en escenarios de prueba.

Dado que los SDET tienen que trabajar con desarrolladores, testers y clientes, las habilidades de comunicación y liderazgo son igualmente importantes para el trabajo. Los SDET deben tener excelentes habilidades con las personas para colaborar de manera efectiva con varios equipos.

Metodología de prueba utilizada

El QA realiza pruebas de caja negra. Su foco es la funcionalidad de cada componente. El código interno no es su motivo de preocupación. Sin embargo, un SDET debe realizar pruebas de caja blanca. Deben asegurarse de que el componente no solo funcione según las especificaciones, sino que su código también sea confiable y robusto.

Las responsabilidades de un SDET son mayores que las de un QA. Dadas estas condiciones, es comprensible que el ingreso promedio de un SDET sea mayor que el de un ingeniero de control de calidad.

Futuro del rol

Con el advenimiento de la automatización en las pruebas, las pruebas manuales se han vuelto redundantes y están desapareciendo. Las principales empresas de software, como Google y Facebook, ya han eliminado el cargo de QA.Siguiendo la tendencia de estos líderes de la industria, los SDET son el futuro.

Así, todos los QA están llamados a mejorar sus habilidades: aprender nuevos lenguajes de programación e iniciar con la automatización de pruebas. Es posible que la necesidad de un QA no desaparezca por completo, pero se reducirá en favor de los SDET.

Necesidad de SDET

Esta es la era de la automatización. Los SDET llevan las pruebas al siguiente nivel mejorando la calidad del código y aumentando drásticamente la probabilidad de que el producto esté libre de errores. La industria del software se está moviendo hacia las pruebas automatizadas de funcionalidad, seguridad y rendimiento del producto.

Los SDET juegan un papel crucial en este proceso. Con su conjunto de habilidades superiores y conocimiento de varias herramientas de prueba y lenguajes de programación, son clave para garantizar que el cliente obtenga un producto de alta calidad, prácticamente libre de errores, confiable, escalable y robusto.

¿Cómo convertirse en un SDET altamente efectivo?

El SDET tiene varias responsabilidades que afectan el producto final. Es un rol complejo que requiere dedicación. A continuación, se ofrecen algunos consejos que servirán de guía para alcanzar este objetivo:

  • Esforzarse por mejorar sus habilidades de programación. Después de todo, un SDET es tanto un programador como un tester.
  • Ser minucioso con las pruebas. Debe observar los detalles de los requisitos y asegurarse de que la prueba sea exitosa solo cuando cumpla con todos los requisitos.
  • Colaborar efectivamente con varios equipos. Por lo tanto, debe ser empático y pensar en todos los puntos de vista.
  • Actualizar constantemente sus conocimientos sobre varias herramientas de pruebas, para poder escoger la mas adecuada para probar la situación en cuestión.
  • Evaluar cada escenario en función de sus méritos y decida si la automatización será realmente beneficiosa antes de continuar. No automatizar solo por automatizar.

Conclusión

El proceso de desarrollo de software ha cambiado drásticamente durante la última década y estos cambios también se reflejan en las pruebas. Los SDET son el resultado de este cambio. Al incorporar las pruebas en el proceso de desarrollo, los SDET tienen el poder de hacer que el producto sea excepcional y se logre entregar con gran satisfacción a las altas velocidades que requiere el mercado actual.

Fuentes

Traducción libre de: SDET vs QA – Addressing The Latest Debate por Maruti Techlabs.

Imagen: Nike research labs.

Author: Alex Andrade

Magister Ingeniería de Software, MBA y Especialista en Gerencia de Proyectos Tel: +57-317-241-5118

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.