La ingeniería de pruebas de software, también conocida como pruebas de software, es una fase crítica en el ciclo de vida del desarrollo de software. Es el proceso de evaluar y verificar que una aplicación o sistema de software funcione correctamente y cumpla con los requisitos especificados. El objetivo principal de las pruebas de software es identificar defectos, errores o problemas en el software y garantizar que funcione como se espera.
En GfK, las pruebas de software son increíblemente importantes para garantizar que nuestros productos estén a la altura y satisfagan las necesidades de nuestros clientes. Para obtener más información sobre este proceso, hablamos con Dzarrin Zubairy, ingeniero de pruebas de software de GfK en nuestra oficina de Kuala Lumpur, quien compartió sus conocimientos sobre el puesto, lo que hace a diario y los beneficios que aporta al equipo.
¿Qué tipo de trabajo hace usted en GfK?
Como ingeniero de pruebas de software automatizadas, mi principal responsabilidad es garantizar la calidad y confiabilidad de las aplicaciones de software. Me concentro en validar la funcionalidad del software, identificar y probar errores y garantizar que el software cumpla con los estándares de rendimiento y seguridad. Mis tareas diarias son hacia SDET (Ingeniero de desarrollo de software en pruebas), donde desarrollo y mantengo scripts de prueba automatizados que simulan interacciones del usuario y realizo pruebas de regresión. También creo casos de prueba integrales, planes de prueba y escenarios basados en requisitos de software e historias de usuarios, no solo la funcionalidad sino también el rendimiento de las aplicaciones. Aparte de eso, tuve la oportunidad de integrar scripts de prueba automatizados en el proceso de integración y entrega continuas (CI/CD) para garantizar que las pruebas se ejecuten automáticamente como parte del proceso de construcción e implementación. La parte que más disfruto es trabajar en estrecha colaboración con el ingeniero de software para comprender la arquitectura y el código base de la aplicación. Colaboramos para identificar problemas potenciales en las primeras etapas del proceso de desarrollo y ayudamos a depurar y corregir defectos y, al mismo tiempo, aprendo algunas de las mejores prácticas y códigos.
¿Qué son las pruebas de software automatizadas y cómo se utilizan en GfK?
Las pruebas de software automatizadas son un proceso en el que los procedimientos de prueba y los casos de prueba se ejecutan automáticamente mediante el uso de herramientas y scripts de software en lugar de hacerlo manualmente por parte de evaluadores humanos. En GfK utilizamos scripts automatizados no sólo para probar la funcionalidad del software sino también para probar el rendimiento de la aplicación. Los scripts de prueba se desarrollan en base a las historias de los usuarios y el conocimiento del evaluador. La experiencia del usuario se convierte en códigos y se ejecuta diariamente. Utilizamos marcos de prueba de desarrollo impulsados por el comportamiento, ya que se trata de pruebas basadas en escenarios que una persona sin conocimientos técnicos puede leer y comprender fácilmente y luego configurar para que se ejecuten en el proceso. El proceso está listo para funcionar para que otros puedan ejecutar paquetes de regresión o pruebas de humo cuando sea necesario. Se realizó una ejecución programada de nuestra prueba de rendimiento automatizada para identificar la degradación repentina o gradual del rendimiento introducida por cambios en el código, garantizando que los problemas se identifiquen y solucionen con prontitud. Se creará una mejora cuando haya una degradación en el rendimiento. ¡Queremos que los usuarios tengan solo la mejor experiencia!
¿Cómo ha contribuido su trabajo con las pruebas de software automatizadas a mejorar el trabajo realizado por GfK?
Avanzamos hacia las pruebas de desplazamiento a la izquierda, donde las pruebas de software automatizadas ayudan a identificar y eliminar defectos y problemas en el proceso de desarrollo inicial. Esto da como resultado un software de mayor calidad y reduce los costos relacionados con errores. Al automatizar los procesos de prueba, GfK puede lanzar nuevas funciones y actualizaciones más rápidamente. Esto, a su vez, conduce a ciclos de desarrollo más rápidos y a la capacidad de lanzar nuevas funciones y actualizarlas más rápidamente. Adoptar pruebas automatizadas puede responder de manera más efectiva a las necesidades cambiantes de los clientes y a las tendencias de la industria, brindando una ventaja competitiva en el mercado. Las pruebas automatizadas se pueden ejecutar de forma consistente y repetitiva, lo que reduce el riesgo de error humano en las pruebas. También ayuda a la eficiencia de los recursos, donde las pruebas automatizadas pueden escalar para adaptarse a aplicaciones más grandes y complejas, lo que reduce la necesidad de contratar evaluadores adicionales para proyectos en crecimiento. Esto puede contribuir significativamente a la rentabilidad de una empresa y al éxito a largo plazo en un mercado competitivo.
¿Cuáles son algunas herramientas de prueba de software automatizadas que ha tenido la oportunidad de utilizar?
Con casi cinco años de experiencia en Pruebas de Software, tengo experiencia en diferentes tipos de herramientas de prueba según sus categorías. He usado Selenium en Java con marcos de prueba TDD y BDD y también experimenté el uso de Protractor y Cypress, que están en Typecript. Fue un desafío pasar de Java a Typecript, pero disfruté aprendiendo diferentes lenguajes y herramientas. Las pruebas de rendimiento y las pruebas de API son nuevas para mí. Aquí utilizamos k6 y JMeter para probar el rendimiento de las aplicaciones. Para las pruebas de API, utilizamos Postman y enviamos scripts para garantizar que se comporte en consecuencia. También se puede automatizar en el proceso de CI/CD utilizando Newman. Las herramientas de CI/CD desempeñan un papel importante en las pruebas automatizadas. Algunas herramientas que tuve en mis manos son Jenkins y GitLab. Esta plataforma automatiza los procesos de entrega de software. Las herramientas de gestión de pruebas desempeñan un papel crucial en las pruebas de software automatizadas. Ayuda no solo a organizar casos de prueba sino también a crear un diseño de prueba y control de versiones eficientes. Al igual que TestRails, almacenamos casos de prueba como referencia cuando hay cambios en los escenarios de prueba. La mejor parte es que puede integrarse con nuestros scripts de prueba de automatización.
¿Cuáles son algunos de los beneficios que ofrecen las pruebas de software automatizadas sobre las pruebas de software “tradicionales”?
Existen muchas ventajas críticas de las pruebas de software automatizadas. La primera estadística que destaca es su rápida ejecución. Los scripts de prueba automatizados se pueden ejecutar mucho más rápido que las pruebas manuales en términos de obtener comentarios más rápidos sobre los cambios de código. Los scripts también se pueden reutilizar en diferentes ciclos de prueba y proyectos, lo que ahorra tiempo y esfuerzo en la creación y el mantenimiento de casos de prueba. También es consistente y confiable, ya que realiza las mismas acciones y verifica constantemente cada vez que se ejecutan y puede ejecutarse las 24 horas del día, los 7 días de la semana, lo que proporciona resultados de prueba confiables.
Las pruebas automatizadas también son ideales para las pruebas de regresión, lo que garantiza que los nuevos cambios de código no introduzcan defectos en la funcionalidad existente. También reduce el riesgo de pasar por alto problemas que surgen de cambios de código. En comparación con la forma tradicional, puede provocar errores humanos cuando se repite la misma prueba. Y ayuda a reducir la necesidad de realizar pruebas manuales, lo que genera ahorros de costos en términos de horas-persona.
En las pruebas de software tradicionales, puede resultar un poco complicado mantenerse al día con las actualizaciones y correcciones en comparación con un modelo automatizado, que integra perfectamente las mejoras del software y garantiza que el software siempre obtenga los últimos cambios y mejoras. Finalmente, las pruebas automatizadas facilitan la colaboración entre equipos multifuncionales, proporcionando una forma estandarizada y compartible de validar la funcionalidad del software.