Prueba como Google: prácticas recomendadas de gigantes de la industria (09.30.22)

Podemos aprender mucho de los gigantes de la industria al observar sus métodos y enfoques en los flujos de trabajo.

¿Cómo se las arreglan para mantener el proceso de prueba de software en millones de líneas de código?

¿Cómo organizan el flujo de trabajo con miles de ingenieros de control de calidad?

¿Cómo afrontan la expansión del proyecto?

La experiencia de empresas como Google o Spotify puede ayudar a mejorar los procesos de prueba en pequeñas empresas y equipos.

Echemos un vistazo más de cerca a cómo prueban los gigantes.

Google: la importancia de la cobertura del código

Aún así, muchos ingenieros discuten sobre la importancia de tal medida de eficiencia de prueba de software como cobertura de código. Los especialistas de Google insisten en que los datos de cobertura de código pueden ser información valiosa para evaluar riesgos y cuellos de botella en una actividad de prueba. Carlos Arguelles, Marko Ivanković y Adam Bender comparten las mejores prácticas para la cobertura del código:

  • La cobertura del código puede ayudar a reducir errores y fallas. La experiencia de los ingenieros de control de calidad de Google demostró que el aumento de la cobertura del código conduce a cambios en los enfoques y actitudes de las pruebas. Los equipos con cobertura de código como objetivos principales tienden a mejorar la capacidad de prueba de sus productos. Escriben código más eficiente para realizar pruebas a fin de lograr los objetivos de las pruebas de forma más fácil y que requieran menos tiempo.
  • Utilice las pruebas de mutación para garantizar una alta cobertura de pruebas. La cobertura completa del código puede ser un desperdicio y no garantiza una cobertura de prueba de alta calidad. Un alto porcentaje de cobertura de código no significa que todas las funciones se hayan probado correctamente. Significa que el código se probó en general. Para garantizar una cobertura de prueba de alta calidad, los expertos de Google recomiendan utilizar pruebas de mutación. Este método incluye implementar pequeños cambios de código y verificar cómo los conjuntos de prueba los identifican.
  • El porcentaje de cobertura del código depende de muchos factores. No debemos apuntar a una alta cobertura de código, pero una baja cobertura también conduce a una gran cantidad de fallas. Y la pregunta es, ¿cuál es la cobertura de código específico para un sistema en particular? Para responder a esta pregunta, debemos considerar aspectos como la criticidad, la complejidad y la frecuencia de cambio de código. La cobertura del código es una decisión empresarial y los propietarios de los productos deben definirla.
  • Analice qué cubrir. No podemos obtener una cobertura del código del 100%, por lo que los ingenieros de control de calidad deben observar que se cubren las partes más valiosas del código. Un equipo de desarrolladores debe discutir y pensar no en cuántas líneas de código están cubiertas, sino en qué se cubre exactamente.
Spotify: estrategia confiable

Spotify es una empresa de rápido crecimiento. Fue establecido en 2008 con 150 empleados. En 2019, la cantidad de empleados aumentó a 4 405. Hoy en día, Spotify atiende a unos 300 millones de usuarios en todo el mundo, lo que lo convierte en el servicio de transmisión más popular del mundo.

Podemos aprender lecciones sobre cómo Spotify escala sus pruebas y procesos de desarrollo.

  • Establezca objetivos de producto para el equipo de control de calidad. Spotify tiene equipos multifuncionales. Cada equipo tiene metas y un conjunto de habilidades particulares para acercarse a estas metas. La estructura del equipo depende de los objetivos. Por lo tanto, algunos equipos constan solo de desarrolladores y algunos tienen desarrolladores y probadores. Por lo tanto, los evaluadores cooperan estrechamente con el equipo de desarrollo y se centran en los objetivos principales del producto. Este enfoque permite a Spotify escalar el proceso de desarrollo de manera eficiente.
  • Las pruebas de automatización son una herramienta, pero no una panacea. El administrador de pruebas y desarrollo en Spotify, Kristian Karl, afirma que los probadores de software no pueden ser reemplazados por la automatización. Las pruebas requieren experiencia y conocimiento humanos. Las pruebas de automatización son una herramienta sólida para acelerar el proceso, pero los humanos toman decisiones y analizan informes automatizados. Spotify utiliza la automatización como una de las herramientas de escala. Permite a los evaluadores dejar la rutina por los algoritmos y centrarse en los objetivos del producto.
SpaceX: las pruebas continuas son imprescindibles

SpaceX es una empresa innovadora conocida por el transporte espacial comercial, un sistema de lanzamiento reutilizable y alta eficiencia.

Nicholas Chaillan, director de software de la Fuerza Aérea, dijo que el sistema del departamento de desarrollo de SpaceX es cinco veces más eficiente que las empresas con un flujo de trabajo clásico. ¿Cómo afronta SpaceX el proceso de prueba con tal rendimiento?

DevOps y los enfoques ágiles permiten a los ingenieros de control de calidad de SpaceX proporcionar pruebas de automatización masiva. A lo largo del ciclo de desarrollo, los evaluadores proporcionan pruebas continuas para obtener comentarios instantáneos y eliminar los riesgos existentes. Por lo tanto, están trabajando de manera proactiva, probando con frecuencia y de manera temprana.

La empresa desarrolló una estrategia sobre cómo implementar pruebas continuas en el proceso de desarrollo.

  • Priorizar el valor. Al igual que Google, SpaceX recomienda utilizar métricas de cobertura de código para comprender qué debe automatizar y qué no. Ayuda a optimizar las pruebas continuas y mejorar las actividades que ya se han realizado.
  • La clave son las pruebas automatizadas de un extremo a otro. Haga que un análisis de impacto sea parte de la integración continua. Permite a las empresas analizar cómo la adición de nuevas funciones o el cambio de código pueden afectar un sistema en general o algunas partes de su sistema.
  • El equipo debe tener un entorno de prueba estable y fácil de replicar. Una herramienta como Virtual Machine Snapshot puede ayudar a guardar el estado de los datos, volver a realizar pruebas o reanudar el trabajo.
  • Utilice la inteligencia artificial y el aprendizaje automático para analizar los informes de las pruebas. AI Las herramientas basadas en herramientas aceleran la implementación y optimizan el proceso de prueba.
  • Construye una arquitectura de integración continua sólida. La principal ventaja del sistema CI son los cortos períodos entre la compilación y las pruebas del código. . Las pruebas continuas deben estar involucradas en el proceso de desarrollo e involucrar los tipos de pruebas necesarios.
  • Resumen

    Cada empresa tiene su estrategia, proceso y enfoques de prueba. Cada equipo selecciona y ajusta el proceso de prueba en función de los objetivos finales y las capacidades del producto. La principal tarea de cualquier especialista es pensar en el cliente y el usuario final, adaptarse a los nuevos requisitos y adoptar la experiencia de los mejores de la industria.


    Video de Youtube: Prueba como Google: prácticas recomendadas de gigantes de la industria

    09, 2022