En este momento estás viendo No más clic clic clic, del QA al QTeam

No más clic clic clic, del QA al QTeam

  • Autor de la entrada:
  • Categoría de la entrada:Agile / testing

Entrando en tema

“No más clic clic clic, del QA al QTeam” charla ofrecida por Alejandra Aspee, durante la 9na edición del “Testing Day Chile“. Aquí una síntesis de la exposición e incluyo el desarrollo de los conceptos más importantes al final para un mejor entendimiento.

La evolución del rol: Pasando del QA Tradicional al QTeam

El modelo tradicional de QA, donde se asigna un único tester por cada cinco desarrolladores (5:1), resulta insostenible, forzando al QA a un ciclo constante de «apagar incendios».

Responsabilidad compartida: La calidad debe dejar de ser vista como una etapa o un costo, para ser considerada una propiedad colectiva y una responsabilidad de todos.

El rol del QA moderno: El rol de QA evoluciona para apoyar, enseñar y ser un impulsor de la calidad. El QA debe ser capaz de entender múltiples lenguajes: el de negocio, el técnico, el de Data Science y Ethical Hacking (o ciberseguridad), actuando como un conector entre las áreas.

Foco en el valor: El trabajo del equipo debe orientarse a construir productos con valor para el cliente, buscando un outcome que haga recordar al producto por su excelencia.

Visión holística de la calidad: Las cuatro etapas

Alejandra propone estructurar la calidad a través de cuatro etapas interconectadas, enfatizando que la calidad comienza mucho antes de la codificación y se mantiene durante la entrega:

2.1. Descubrimiento (Discovery):

Inclusión del equipo: Es fundamental que todo el equipo (PO, stakeholders, desarrolladores, QA, Data Science, IA, etc.) participe en el descubrimiento para asegurar que el producto sea propiedad de todos (Propiedad Colectiva).

Herramientas de empatía y definición: Se recomienda el uso de herramientas como el Customer Journey Map, Design Thinking, Empathy Map, User Story Mapping, Lean Inception y Product Backlog Building (PBB) para definir la visión, los clientes y el viaje del producto.

Gestión de riesgos: La identificación y priorización de riesgos (Risk Storming y Example Mapping) deben ser acciones prioritarias, ya que los riesgos conllevan pruebas que deben ser consideradas desde la planificación.

Spikes técnicos: Realizar investigaciones técnicas (spikes) para determinar la viabilidad del producto y compartir los hallazgos con el equipo.

2.2. Diseño (Design):

Definición de atributos: El equipo y, especialmente el Product Owner, deben comprender y definir los atributos de calidad funcionales y no funcionales. Los requerimientos no funcionales (como performance, accesibilidad, ciberseguridad y observabilidad) son vitales y a menudo olvidados.

Acuerdos de trabajo: La calidad se define a través de acuerdos claros, como el Definition of Done y el Definition of Ready, que permiten estandarizar el proceso.

Diseño técnico y de pruebas unitarias: Se deben definir acuerdos sobre la arquitectura (microservicios, web services). El QA debe apoyar al desarrollador en el diseño de pruebas unitarias, aunque la implementación sea responsabilidad del desarrollador.

Documentación viva: Se debe privilegiar la documentación que esté activa y disponible para todos (e.g., Notion, Confluence), en lugar de documentos estáticos (e.g., Word, PPT).

Integración de calidad en el desarrollo y la entrega

El desarrollo y la entrega se enfocan en la ejecución colaborativa y la aseguración técnica del producto.

Enfoque de desarrollo: Se debe trabajar con historias pequeñas (de 3 a 4 días) y realizar Dailies centradas en el avance de la historia priorizada y no en tareas individuales, lo que promueve la sinergia y la resolución de bloqueos.

Pruebas de impacto vs. pruebas de formato: El QA no debe enfocarse en pruebas básicas de sintaxis o formato (e.g., verificar que un RUT tenga un guion y un dígito verificador correctos), ya que esto debe ser cubierto por las pruebas unitarias del desarrollador. El QA debe concentrarse en pruebas de impacto, flujos complejos, inyección SQL, seguridad, modelos de encriptación e intervenciones.

CI/CD y Seguridad: La integración continua/despliegue continuo (CI/CD) debe incluir revisiones de código estático (número ciclomático menor a 7), cobertura de pruebas unitarias y gestión de permisos. Es crucial proteger contra ataques comunes (OWASP Top 10) y asegurar la autenticación/autorización.

Observabilidad: La observabilidad es vital, incluyendo la trazabilidad de peticiones, logs conscientes (definidos en la historia de usuario) y métricas con alertas para monitorear el estado de los servicios.

Entrega segura: La entrega debe ser una responsabilidad compartida. El uso de feature flags se recomienda enfáticamente para permitir que nuevas funcionalidades se liberen a producción sin impactar inmediatamente a todos los clientes, ofreciendo capacidad de rollback.

Conclusiones sobre la productividad y el mindset

El cuestionamiento como habilidad clave: El QA debe intervenir en los acuerdos de trabajo y utilizar preguntas incómodas, pero constructivas, para educar al equipo sobre las necesidades de calidad. La capacidad de cuestionar y educar al equipo es lo que permite que el QA evolucione y que las personas empiecen a adoptar las prácticas necesarias.

Mejora continua: La comunicación es fundamental, pero debe ser respaldada por la adherencia a los acuerdos de trabajo. La falta de documentación y de comunicación de calidad es lo que genera costos futuros en soporte (Nivel 3).

Calidad sobre velocidad: El objetivo final no es acelerar el proceso a expensas de la calidad, sino asegurar que cada paso sea de calidad. El diseño debe enfocarse en cuán «seguro, rápido y confiable» será lo que se entregue.

Inicia su charla en el timestamp: 7:25:18


Desarrollo algunos conceptos

🧠 Concepto de Ethical Hacking

Ethical Hacking —también conocido como hacking ético o de sombrero blanco— es la práctica autorizada de evaluar la seguridad de sistemas informáticos, redes y aplicaciones mediante la simulación controlada de ataques cibernéticos. El objetivo no es dañar, sino descubrir vulnerabilidades antes que los atacantes maliciosos, permitiendo fortalecer la seguridad y la calidad del software.

El hacker ético actúa bajo un marco legal y ético definido (contratos, alcance, permisos) y sigue metodologías estandarizadas como OWASP, NIST SP 800-115 o PTES, que establecen pasos como:

  1. Reconocimiento: recolección de información del sistema.
  2. Escaneo y enumeración: identificación de puertos, servicios, versiones, endpoints y configuraciones.
  3. Explotación controlada: validación de vulnerabilidades.
  4. Post-explotación y reporte: documentación de hallazgos y recomendaciones.

Su propósito es mejorar la ciberresiliencia y proteger la información crítica dentro del ciclo de vida del software, integrando prácticas de seguridad desde las fases tempranas del desarrollo (Shift-Left Security Testing).


🤖 Integración con IA Generativa

La IA Generativa redefine el papel del tester de seguridad, brindando asistencia inteligente en todas las etapas del Ethical Hacking Lifecycle. Basándome en el curso (AiU GenAI-Assisted Test Engineer), la GenAI aporta en tres planos complementarios:

1. Automatización cognitiva de tareas repetitivas

  • Generación de scripts de escaneo personalizados (por ejemplo, en Python, Bash o PowerShell).
  • Creación dinámica de payloads de fuzzing y pruebas de inyección basadas en contexto.
  • Análisis de logs y trazas de seguridad con embeddings para detectar patrones anómalos o comportamientos sospechosos.

2. Apoyo al razonamiento y priorización de vulnerabilidades

  • Uso de LLMs para resumir, clasificar y priorizar hallazgos según impacto y probabilidad (Valor-Riesgo / VME).
  • Explicación pedagógica de exploits o CVEs, permitiendo comprender su raíz técnica y su relevancia para el negocio.
  • Generación de reportes automáticos en lenguaje natural, ajustados a distintos públicos (técnicos o gerenciales).

3. Optimización de pruebas de seguridad

  • Aplicación de prompting estructurado para crear casos de prueba éticos en formato Gherkin o BDD.
  • Uso de fine-tuning con datos de vulnerabilidades internas para entrenar asistentes de seguridad específicos.
  • Implementación de estrategias de fuzzing inteligente (mencionadas en el curso, sección 7.2) donde la IA genera entradas malformadas o aleatorias para descubrir fallos en validación o protocolos.

🧩 Cómo ayuda a gestionar el tratamiento de vulnerabilidades

EtapaApoyo de la IA GenerativaBeneficio para el tester
IdentificaciónAnálisis semántico de código y configuración para detectar malas prácticas de seguridad.Aumenta la cobertura de revisión y reduce errores humanos.
EvaluaciónExplicación automática de CVEs, generación de risk scores contextuales.Mejora la priorización basada en impacto real.
MitigaciónSugerencia de patches, hardening scripts o cambios en políticas.Reduce tiempo de remediación y documenta decisiones.
VerificaciónGeneración de casos de re-testing post-mitigación.Garantiza que las correcciones sean efectivas.
ComunicaciónCreación de informes ejecutivos y técnicos basados en resultados.Fortalece la trazabilidad y transparencia del proceso.

🔐 Control de calidad y ética

El uso de GenAI en Ethical Hacking requiere una gestión responsable:

  • Evitar la exposición de datos sensibles: anonimización y cifrado antes de enviar datos a modelos públicos (alineado a la sección Seguridad y Propiedad Intelectual del curso).
  • Prevenir alucinaciones: aplicar Reality Filter Prompts y validación cruzada para asegurar la veracidad de las recomendaciones.
  • Garantizar equidad y legalidad: asegurar que los prompts y datasets no introduzcan sesgos o comportamientos discriminatorios.

El tester moderno debe actuar como custodio ético de la IA, verificando que los modelos no generen pruebas ilegítimas ni revelen información privada.


📘 Conclusión

El Ethical Hacking asistido por IA Generativa marca una nueva fase en el Testing de Seguridad Inteligente. El rol del tester evoluciona de ejecutar scripts manuales a diseñar y gobernar sistemas de defensa cognitivos, capaces de:

  • Aprender del contexto,
  • Anticipar vulnerabilidades,
  • Generar conocimiento reutilizable,
  • Y asegurar la calidad del software desde una perspectiva holística.

En síntesis, la IA Generativa no reemplaza al hacker ético, sino que amplifica su alcance, precisión y capacidad pedagógica, convirtiéndolo en un “AI-Assisted Security Test Engineer”: más analítico, más estratégico y más ético.


Caso práctico: Inyección SQL + Fuzzing inteligente asistido por GenAI

Te comparto las fases que deberían abarcarse como para que tengas conocimiento de todo lo que hay por delante y en qué medida la IA Generativa nos puede estar ayudando:

0) Contexto y alcance (autorizado)

1) Objetivo de aprendizaje

2) Setup rápido (herramientas)

3) Enumeración de entradas (con ayuda del LLM)

4) Generación asistida de payloads (inyección + fuzzing)

5) Ejecución (UI + API)

6) Priorización Valor-Riesgo (VME)

7) Tratamiento (mitigación)

8) Verificación (re-test) y no regresión

9) Evidencia y reporte (Bug advocacy)

10) Controles de calidad (QC) del proceso

11) Mini-biblioteca de prompts (copiar/pegar)

12) Métricas para el tablero del Tester

13) Resultado esperado

Gus Terrera

Apasionado por el agile testing y la ia.