Table of Contents
Seguimos con nuestra serie de entrevistas (anteriormente hemos entrevistado a Diego Ojeda – Android Lead en Apiumhub ) y hoy tenemos una entrevista de QA con Serhii Zabolennyi – ingeniero de QA en Apiumhub.
En esta entrevista, Serhii comparte sus ideas y recomendaciones sobre cómo crecer como ingeniero de QA y habla de sus principales lecciones aprendidas en la industria.
Entrevista con Serhii Zabolennyi – Ingeniero de automatización de QA
1. ¿Cuál es la diferencia entre la garantía de calidad y la garantía de seguridad del software?
La diferencia entre estas dos definiciones es autodescriptiva. Una se refiere a la calidad en general y otra a los aspectos de seguridad. La calidad significa que el software se ejecutará de acuerdo con su diseño y propósito. La totalidad de la funcionalidad y las características de un software, cumple con los requisitos especificados o las necesidades del usuario; por otro lado una garantía de seguridad se refiere a un sistema que cumple con sus requisitos de seguridad y es resistente contra las vulnerabilidades de seguridad. Una prueba de penetración utilizada para los controles de seguridad. Prueba de penetración: intenta explotar las vulnerabilidades para evitar ciberataques como el acceso no autorizado o la actividad maliciosa. Hoy en día los tipos de ciberataques más comunes son: malware, phishing, inyección sql, zero day exploit, dns tunnelling, credential stuffing, etc.
2. Enumera sus 3 principales técnicas de pruebas de rendimiento.
- Pruebas de carga para comprobar la capacidad de la aplicación de funcionar bajo cargas previstas (por ejemplo, simulando que varios usuarios acceden al programa simultáneamente). Las pruebas de carga identifican la sostenibilidad de la aplicación con respecto a los picos de carga de los usuarios y prueban la infraestructura de la aplicación.
- Pruebas de estrés para comprobar la capacidad de gestión de errores en condiciones de carga extremadamente pesada. La principal diferencia entre las técnicas de pruebas de estrés y de carga es que ambas determinan el rendimiento del sistema bajo carga de trabajo, pero CARGA (comprobar el rendimiento de la aplicación) -> bajo una carga específica esperada y ESTRÉS (comprobar la estabilidad de la aplicación) -> cargas extremas del sistema.
- Pruebas de escalabilidad: el rendimiento se mide en términos de su capacidad para escalar (número de usuarios/uso de la CPU/red, uso de la memoria, etc.). El objetivo de estas pruebas es determinar cuándo una aplicación empieza a degradarse con una carga máxima y tomar las medidas adecuadas para garantizar que la aplicación desarrollada sea lo suficientemente escalable.
3. Las 3 principales lecciones aprendidas en QA
- La primera es que «todos los errores» no se pueden arreglar en ninguna web/app. Es un poco obvio, pero muchas veces se menciona en el discurso de los PO/interesados que los desarrolladores y el equipo de control de calidad deben arreglar «todos los errores» y entregar un producto «sin errores». En lugar de eso, se debería hablar de arreglar todos los errores críticos y prevenir fallos/caídas en las principales funcionalidades de la aplicación, así como del coste de la corrección de errores (arreglar antes reduce el coste). Encontrar rápidamente los errores importantes. Así que lo más importante para una persona de control de calidad es explicar esto a todas las personas involucradas en el desarrollo de productos de software.
- La segunda lección es que las habilidades de comunicación y de búsqueda en Google son muy importantes en la industria moderna de las TI. Como ya se ha dicho, parece muy obvio. Por ejemplo, la comunicación entre diferentes departamentos (diseño, del, qa, devops, negocio, etc) te permite ser más eficiente en tu trabajo diario. El uso adecuado de Google te facilita la vida (el 99% de las dudas ya están preguntadas/resueltas en stackoverflow, foros, etc.). Vieja pero buena recomendación: antes de distraer a tu universidad, intenta buscar en Google la pregunta CORRECTA.
- La tercera lección es que el control de calidad y las pruebas son mucho más complejas de lo que se piensa. Siempre hay que seguir aprendiendo. Al igual que el desarrollo en las pruebas, hay MUCHOS tipos/técnicas/modelos, etc. Así que selecciona lo que te interesa y sigue buceando.
4. ¿Cuáles son los tres principales retos de la garantía de calidad?
- No hay tiempo suficiente. El tiempo limitado de las pruebas es muy común en el mundo moderno de la informática.
- Cultura de garantía de calidad: explicar la complejidad y la importancia de las pruebas para las personas que subestiman el trabajo de garantía de calidad. Percepción de la GC por parte del equipo. La forma de superar este problema es explicar cómo la GC beneficia a todos.
- El tercero es el cambio de requisitos y la falta de información. Típico problema en el desarrollo ágil cuando se reciben cambios de última hora y hay que lidiar con ello. Afectando al alcance de las pruebas.
5. ¿Cuáles son sus tres principales consejos para un ingeniero de QA?
- Estar al tanto de las tecnologías/marcos modernos y colaborar estrechamente con los desarrolladores.
- Automatizar sus tareas de rutina diaria, ahorra tiempo y energía más tarde.
- Aumenta tus habilidades de programación y de comunicación.
6. ¿Qué consejo darías a los testers junior que esperan crecer profesionalmente como ingenieros de QA?
Profundizar en la programación, aprender de los errores, pensar como un usuario final. Ser más social (LinkedIn, meet-ups, bootcamps…). Asume la responsabilidad del producto de software.
7. ¿Cuáles son las 3 principales responsabilidades de un ingeniero de QA?
- El departamento de QA asume toda la responsabilidad del éxito o fracaso del software. Preparar la estrategia de pruebas y ejecutarlas. Llevar a cabo las actividades de prueba.
- Participar en el desarrollo de software desde la fase inicial hasta el soporte después de la puesta en marcha del producto. Estrecha comunicación entre equipos (colaboración con PO, partes interesadas, desarrollo, diseño, etc.).
- Incorporar la cultura del control de calidad al proyecto.
8. ¿Cuál es tu visión en términos de QA y DevOps?
Mobil first. Haz pruebas en la nube. Automatizar la rutina lo antes posible. Las actividades de pruebas CI/CD están aumentando en los últimos años.
9. ¿Cómo afrontas los imprevistos como ingeniero de QA?
Mi recomendación es utilizar el método de resolución de problemas de los cinco porqués. En mi opinión, es un método poderoso y eficaz. Además, como siempre, la comunicación con los demás es la clave.
10. ¿Cómo describirías tu estilo de testing?
Teniendo en cuenta que cada proyecto tiene sus propios requisitos, el estilo de pruebas adecuado depende de las necesidades de su proyecto para cubrir desde la perspectiva de las pruebas. Aplicación de los métodos de prueba BDD y TDD. También aplicando los principios OOP al diseño de la automatización de pruebas.
11. ¿Tienes algún libro o autor favorito?
- “Lessons Learned in Software Testing” de Cementosa Kaner y James Bach.
- “How Google Tests Software” de James Whittaker.
- “Continuous Delivery” de Martin Fowler.
- “Agile testing” de Lisa Crispin
12. ¿Qué importancia tiene para ti la cultura tecnológica?
Siempre estoy al tanto de la tecnología. Hoy en día, con el IoT, el 5G, los smartphones, etc., es difícil no estar involucrado en la pila tecnológica. El mundo está rodeado de tecnología. También me gusta formar parte de ella, trabajar en la industria, ver las conferencias tecnológicas anuales (MWC, wwdc, google i/o ,etc.), aplicar nuevos marcos en mi trabajo, leer nuevos libros y visitar meetups (bueno, durante la pandemia, meetups online) me permite crecer como profesional, lo cual es importante. Ser un geek de la tecnología = un amor ❤️
Y si necesitas ayuda con la automatización del control de calidad, ¡háznoslo saber! ¡Somos expertos en este campo!