Si eres un desarrollador de automatización de pruebas o estás considerando esta carrera, ¿alguna vez te has preguntado si las habilidades de testing son esenciales para tu trabajo? Este artículo te ayudará a responder esa pregunta.
Así es como aprender la “mentalidad de un tester” me ayudó a convertirme en un mejor desarrollador de automatización.
Mi historia: trabajar como desarrollador de automatización y tester en paralelo
Mi primer empleo después de la universidad fue como especialista en pruebas en IBM. Estaba emocionado, principalmente porque había ingresado a la empresa de mis sueños. Sin embargo, en el fondo, sentía que me faltaba algo. Pronto me di cuenta de que era porque mi pasión siempre había sido el desarrollo de código durante mis años universitarios.
Por eso, para seguir mi meta como programador, durante mis primeros días en el trabajo hablé con mi líder de proyecto para involucrarme en el desarrollo de automatización de pruebas. ¡Para mi alegría, accedió enseguida! Sin embargo, añadió que aún debía considerar desempeñar mi función de especialista en pruebas en paralelo.
El acuerdo era el siguiente: trabajaba como especialista en pruebas para un conjunto de componentes y como desarrollador de automatización para otro componente importante del producto.
Unos días después, ¡hice un descubrimiento sorprendente!
Descubrí que ser tester había ayudado a mejorar mis habilidades de desarrollo. Mientras desarrollaba código, empecé a pensar como un tester. Empecé a pensar en la cobertura de pruebas, múltiples caminos de prueba, aspectos de usabilidad, aspectos de legibilidad ¡y mucho más!
Mi primer mentor experto en testing
También, durante estos primeros días, tuve la oportunidad de trabajar con un experto en pruebas en un artículo técnico sobre pruebas de accesibilidad que iba a ser presentado en una conferencia internacional de tecnología.
Mientras creábamos nuestro artículo, basándonos en nuestra experiencia y aprendizajes sobre el tema, encontré a mi primer mentor en pruebas.
Como era nuevo en el área de testing, tenía muchas preguntas. Mi colega mentor me ayudó con ellas guiándome de la mejor manera posible. ¡Le apasionaba el mundo del testing! Ese amor por las pruebas era contagioso, ¡y a mí también me atrapó!
Red de contactos con amantes del testing
Adivina qué pasó después: ¡asistimos a la conferencia tecnológica donde nuestro artículo fue seleccionado!
Durante la conferencia, conocimos a una comunidad apasionada de amantes del testing como mi mentor. Me impresionó ver cómo la gente respetaba el testing y cómo planeaban crecer profesionalmente. ¡Conocimos personas, intercambiamos ideas, aprendimos consejos y trucos sobre testing!
Un repaso
El destino me llevó al testing en mi primer trabajo, aunque mi verdadera pasión era el desarrollo de automatización.
Con el tiempo, descubrí cómo el testing me había ayudado a ser mejor desarrollador. Finalmente, noté cómo la "mentalidad de pruebas" me permitió crear scripts de automatización de pruebas de alta calidad.
Tuve la suerte de haber tenido la oportunidad de aprender esta perspectiva al trabajar simultáneamente como tester y desarrollador de automatización de pruebas.
Pon a prueba tu código: destaca como desarrollador
Durante mi experiencia trabajando simultáneamente como tester y desarrollador de automatización, descubrí que un desarrollador que mejora sus habilidades de testing termina por aprender a desarrollar un código "mejor".
Después de todo, mientras antes se detecten los bugs en el código, más barato resulta. Así que, si como desarrollador puedes ver ese error antes de entregar el código al equipo de pruebas, ahorrarás esfuerzo.
Además, cuando empiezas a pensar como un tester ideal, priorizas la perspectiva del uso del negocio del producto, lo cual es muy importante. Empiezas a pensar "fuera de lo habitual".
Por ejemplo:
Antes de entregar su código al equipo de QA, los desarrolladores deberían realizar pruebas unitarias bien planificadas. Haciendo esto, se evita que defectos innecesarios se introduzcan al sistema en etapas de integración o a nivel de sistema.
Durante las pruebas unitarias, los desarrolladores evalúan unidades individuales del código fuente para comprobar si cumplen los requisitos y que el código funciona según lo previsto.
Adicionalmente, el desarrollador puede participar en las pruebas de integración.
Las pruebas de integración son una forma de testing en la que los desarrolladores comprueban los sistemas o unidades de código relacionadas para garantizar que diversos aspectos del marco funcionan bien cuando se integran.
¿Cuáles podrían ser las razones por las que los desarrolladores suelen pasar por alto las habilidades de testing?
Las razones pueden ser alguna de las siguientes:
1. Una creencia previa de que las pruebas solo deben ser realizadas por testers
Pueden pensar que el testing de software no tiene mucho que ver con ellos o que no tienen mucho que ver con el testing de software.
2. Suponen que su enfoque debe ser solo perfeccionar el framework
Aquellos desarrolladores que solo se enfocan en refinar el framework y la documentación, en vez de detectar fallos en el software, suelen llevarse una sorpresa desagradable después.
Si un defecto "aparente" es pasado por alto por el desarrollador, cuando un tester lo detecta, implica tiempo para rehacer el código y corregir el defecto. Este no es el escenario preferido.
Y como sabes, un desarrollador es quien más conoce el código que él mismo ha creado. Por lo tanto, ¿no sería mejor que lo encontrara primero, y lo antes posible? Además, esto permitirá que los testers dediquen su tiempo y esfuerzo a errores de mayor prioridad y más críticos.
3. El hábito de postergar la resolución de un problema cuando se detecta por primera vez
Los desarrolladores pueden pensar que depurar más tarde es más eficiente. Pero en realidad, es más fácil depurar cuando el desarrollador detecta el defecto a tiempo.
La depuración de fallos y el número de línea que causó el error se mostrarán en el escenario fallido cuando el desarrollador lo detecte por primera vez.
Por el contrario, si el defecto se "pospone" para después, esto implicará revisiones de defectos, depuración más profunda y tiempo de retrabajo.
Cinco consejos para desarrollar la mentalidad de pruebas como desarrollador de pruebas automatizadas
1. Ofrécete para un rol de tester
Sería una buena idea ofrecerte para un rol de testing y así ganar experiencia práctica. Con esto, los desarrolladores pueden perfeccionar sus habilidades de prueba.
¿Y qué puedes hacer para entrar en un rol de testing?
Pues la respuesta es simple: mientras buscas ese rol, puedes formarte para entender cómo "piensa" un tester eficiente.
2. Edúcate
¡Lee, discute, haz tormentas de ideas, haz preguntas!
Te explicaré cómo puedes hacerlo más adelante en este artículo.
3. Haz networking
Los talleres y conferencias son lugares ideales para encontrar expertos en el campo del testing. Aquí puedes compartir tus ideas y preocupaciones más relevantes, y estoy seguro de que tendrás la suerte de hallar a alguien que podrá ayudarte.
4. Encuentra un mentor
Como mencioné anteriormente, tuve la suerte de encontrar a mi mentor, quien hizo que amara las pruebas. Es sumamente valioso encontrar a un mentor apasionado por el testing, alguien que te guíe.
5. Sé receptivo y escucha las opiniones de tus testers de automatización
Llegarán momentos en los que los testers que ejecutan tu código de automatización pueden enfrentar problemas y compartir sus inquietudes. Escúchales con buena disposición, y actúa en base a sus sugerencias si consideras que son acertadas.
Tus colegas testers te mostrarán nuevas formas de pensar y, finalmente, te ayudarán a mejorar la manera en que escribes código para pruebas automatizadas.
¿Cómo puedes formarte en pruebas de software?
Lee blogs y artículos científicos
Lee mucho sobre testing y pon en práctica lo que aprendas. Tenemos la suerte de vivir en una época donde toda la información está en internet.
De este modo, puedes leer blogs e incluso artículos científicos para acceder a contenido de calidad. ¡Y también puedes contribuir con tus propios aprendizajes!
Asiste a seminarios, talleres y obtén certificaciones
Puedes asistir a seminarios, talleres y conferencias que explican todo sobre el mundo del testing. Son excelentes espacios para aprender, compartir conocimientos y debatir tus ideas. Además, conocerás a personas apasionadas por las pruebas.
De igual forma, puedes animarte a conseguir certificaciones de testing como ISTQB, CSTM, entre otras. Así, aprenderás metodologías, herramientas, consejos y técnicas para comprender todo sobre el mundo de la prueba de software.
Para finalizar
La mentalidad de tester y el conocimiento sobre metodologías, herramientas, consejos y técnicas de pruebas son fundamentales para destacar como desarrollador de automatización de pruebas. Sin duda, es ventajoso para cualquier desarrollador comprender por qué, cuándo y cómo testear.
Cuando un equipo de desarrollo prueba su código de manera eficiente, antes de pasarlo al equipo de QA, habrá una buena mejora en la dinámica del equipo.
Este cambio beneficiará a todos. Los desarrolladores podrán entregar código de alta calidad y los testers podrán centrarse en encontrar defectos críticos que los desarrolladores podrán corregir después.
El resultado es un producto de alta calidad entregado al cliente.
Todo esto es posible aprendiendo más sobre testing, incluso si eres desarrollador. Si aún no has comenzado, no te preocupes, ¡nunca es tarde para aprender! Empieza por revisar nuestra biblioteca de podcasts. Aquí tienes uno que hemos seleccionado para ti: LA ERA DE LA AUTOMATIZACIÓN AUTÓNOMA Y CÓMO SE VE (CON BERTOLD KOLICS DE MABL)
Lectura relacionada: MEJORES PRÁCTICAS DE AUTOMATIZACIÓN EN LA TRANSFORMACIÓN DIGITAL
