Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuál es el modelo de prueba utilizado en el modelo de desarrollo ágil?

¿Cuál es el modelo de prueba utilizado en el modelo de desarrollo ágil?

Nota del editor: el concepto de ágil se ha arraigado profundamente en los corazones de las personas y el proceso de desarrollo se ha vuelto cada vez más perfecto, pero el estado de las pruebas es un poco vergonzoso. InfoQ invitó especialmente al experto en pruebas ágiles de Google, Duan Nian, a responder las preguntas de los lectores, con la esperanza de que todos los profesionales de las pruebas puedan obtener sus propias respuestas. Para obtener más información sobre las pruebas ágiles, visite la columna de pruebas ágiles de InfoQ.

Cuando se habla de Agile con muchos profesionales de pruebas, las preguntas más frecuentes son dos: ¿Qué es exactamente? La primera pregunta es sobre las pruebas ágiles en sí. La primera pregunta es sobre la definición de pruebas ágiles en sí, y la segunda pregunta es sobre la preocupación de que el desarrollo ágil excluya a los ingenieros de pruebas. De hecho, en el proceso de explorar las respuestas a estas dos preguntas, podemos obtener una comprensión más clara de la definición práctica de pruebas en el desarrollo de software ágil, los valores de las pruebas y la coherencia entre los ingenieros de desarrollo y los ingenieros de pruebas en el desarrollo ágil. desarrollo. En vista de la importancia de estas dos preguntas, en el primer artículo de esta columna de pruebas ágiles, intento responderlas lo más claramente posible basándose en mi propia práctica.

De hecho, en comparación con la acalorada discusión sobre el desarrollo ágil, la discusión sobre las pruebas ágiles es mucho más discreta. Agile Alliance define cuatro declaraciones de valores para Agile, acompañadas de un conjunto de 12 principios de apoyo, ninguno de los cuales menciona individualmente las pruebas. ¿Significa esto que las pruebas no son importantes en el desarrollo ágil? De hecho, una mirada más cercana a los 12 principios de Agile y las diversas prácticas ágiles revela que las pruebas juegan un papel muy importante en el desarrollo ágil. Ya sea que se trate de la entrega frecuente de principios, la medición del software en funcionamiento o el desarrollo basado en pruebas y el desarrollo basado en el comportamiento en prácticas de desarrollo ágiles, las pruebas son esenciales. En mi opinión, la razón por la que las pruebas no se describen por separado en el desarrollo ágil es precisamente porque en el desarrollo ágil, las pruebas ya no son un proceso separado e independiente del desarrollo, sino que se convierten en el medio principal para impulsar el desarrollo y medir el resultado, convirtiéndose en ágil. desarrollo que todo ingeniero debe considerar y practicar siempre a la hora de trabajar. En resumen, las pruebas de software ágiles son más una filosofía que un proceso.

En este caso, ¿por qué analizamos específicamente las pruebas de software ágiles en esta columna? Trabajo con muchos ingenieros de pruebas y desarrollo de software cuyas organizaciones están luchando por hacer la transición al desarrollo ágil, o que han estado practicando el desarrollo ágil durante algún tiempo. Sin embargo, debido a hábitos de trabajo a largo plazo, la gran mayoría de ellos no son conscientes del papel clave de las pruebas en el desarrollo ágil y, consciente o inconscientemente, todavía consideran las pruebas como la siguiente etapa que está completamente separada del desarrollo, lo que resulta en El proceso La práctica del desarrollo ágil es más un concepto que un proceso. Por lo tanto, encontrarán varios problemas en el proceso de practicar el desarrollo ágil: o ignoran la calidad del código, lo que lleva a iteraciones frecuentes y hay infinitos problemas en cada iteración, o organizan pruebas sistemáticas del sistema de acuerdo con el método original, lo que da como resultado; El equipo de pruebas está agotado, pero nunca logra mantenerse al día con el progreso requerido por el desarrollo. En este caso, el tema de las pruebas en el desarrollo de software ágil (también conocido como pruebas de software ágiles) debería resultar útil para estos ingenieros.

Entonces, ¿qué es exactamente? Es difícil dar una definición precisa y perfecta de pruebas ágiles. En mi opinión, las pruebas realizadas durante el proceso de desarrollo de software ágil pueden denominarse ágiles si aceptan los valores fundamentales de la metodología ágil (comunicación, simplicidad, retroalimentación, coraje, respeto). Pruebas de software. Por lo tanto, las pruebas de software ágiles no son un departamento al mismo nivel que el desarrollo de software ágil, sino una parte del desarrollo de software ágil. A diferencia de las pruebas tradicionales, las pruebas de software ágiles no son un proceso independiente, sino que están entrelazadas con otras actividades en todo el proceso de desarrollo ágil. . Juntos, en todas partes. Dado que las pruebas de software ágiles no tienden a definirse como un proceso independiente, el autor recomienda comparar las pruebas de software ágiles con las perspectivas de prueba tradicionales, las metodologías utilizadas en las pruebas de software ágiles y el trabajo de los ingenieros de pruebas en el proceso de prueba de software ágil. Este artículo describirá las pruebas de software ágil desde una perspectiva macro. En artículos posteriores de esta columna, describiremos con más detalle los métodos utilizados en las pruebas de software ágil y el trabajo de los ingenieros de pruebas en el proceso de prueba de software ágil.

Utilice paneles, gráficos de avance y más.

Mostrar la distancia entre el trabajo actual y los resultados

Establecer indicadores como la cobertura de pruebas unitarias

****Ayudar a alcanzar los objetivos de calidad significa que todos los ingenieros comparten la responsabilidad de la calidad** **

Las pruebas de desarrollo deben establecer ciertos estándares de cobertura de prueba, por ejemplo, a nivel de prueba unitaria, establecer requisitos de cobertura del 60% o del 80%.

Utilizando TDD, BDD y otras tecnologías para garantizar la capacidad de prueba de los productos y el código

Establecer una cantidad suficiente de pruebas automatizadas para garantizar que las pruebas puedan cumplir con los requisitos de iteración rápida

La lista de verificación menciona el equipo, los comentarios y los cuatro aspectos En mi opinión, la cultura de calidad y las pruebas de desarrollo representan la mayor diferencia entre las pruebas de software ágiles y las pruebas de software tradicionales. El objetivo de las pruebas de software tradicionales es descubrir tantos problemas como sea posible a través de una cobertura lo más completa posible, tratando las pruebas y el desarrollo como dos procesos independientes. Las pruebas son la verificación de los resultados de la fase de desarrollo.

. Las pruebas ágiles de software, por otro lado, establecen una cultura de calidad diferente: el propósito de las pruebas es garantizar el lanzamiento rápido del producto, es decir, aumentar la productividad misma. El punto de partida basado en la verificación requiere necesariamente que las pruebas y el desarrollo sean independientes entre sí, y la calidad del producto debe medirse de la manera más objetiva y completa posible, mientras que el punto de partida basado en la productividad requiere el establecimiento de un equipo ágil, las pruebas y el desarrollo; lo más cerca posible, y el software debe tener un alto grado de capacidad de prueba. Y sobre esta base, se lleva a cabo un alto grado de pruebas automatizadas.

Entre todos los elementos enumerados en la lista de verificación, la cultura de calidad es la base, el equipo es el requisito previo para las pruebas de software ágiles y la retroalimentación y las pruebas de desarrollo son los métodos específicos de las pruebas de software ágiles. Por supuesto, estos proyectos también se pueden desarrollar desde la perspectiva de los valores centrales ágiles: el equipo se centra en la comunicación y el respeto; la retroalimentación corresponde directamente a la base de la cultura de la calidad: el coraje (el coraje de asumir la responsabilidad de la calidad) y el respeto; y las pruebas de desarrollo son la encarnación de la retroalimentación y la simplicidad.

Otra pregunta planteada al inicio de este artículo es: ¿El desarrollo ágil de software todavía necesita ingenieros de pruebas? Algunas personas piensan que es necesario porque siempre hay cosas que requieren las habilidades de los ingenieros de pruebas para completar el trabajo, por supuesto, algunas personas piensan que no es necesario porque las pruebas en el desarrollo ágil se centran principalmente en las pruebas de desarrollo y las pruebas automatizadas, y los ingenieros de desarrollo; pueden encargarse ellos mismos de las tareas relacionadas con las pruebas. De hecho, las empresas que practican el desarrollo ágil a escala, como Google, tienden a reducir la cantidad de ingenieros de pruebas en la organización, asignar menos recursos de prueba a los proyectos e incluso no utilizar ingenieros de pruebas en algunos proyectos.

Según mi experiencia personal, para la mayoría de los proyectos, especialmente aquellos desarrollados para clientes bien definidos, tener un ingeniero de pruebas dedicado en el equipo de desarrollo ágil es muy necesario porque:

Pruebas y El desarrollo tiene diferentes mentalidades: las pruebas prestan más atención a verificar y comprobar exhaustivamente el sistema, mientras que los ingenieros de desarrollo a menudo tienen dificultades para establecer esa mentalidad en proyectos a gran escala. Como resultado, los ingenieros de pruebas dedicados pueden validar productos de manera más efectiva a nivel de sistema o descubrir puntos de acceso que vale la pena probar y validar desde la perspectiva de la aplicación.

Los ingenieros de pruebas dedicados pueden centrarse más en los fundamentos de las pruebas y en la construcción de la infraestructura necesaria para las pruebas: debido a que los ingenieros de pruebas tienen una mejor comprensión de las pruebas, a menudo pueden desarrollar la infraestructura de pruebas para un programa específico. project. (marco de pruebas automatizadas), los ingenieros de desarrollo pueden utilizar estas infraestructuras para crear pruebas orientadas a funciones o códigos.

Sin embargo, hay que decir que el desarrollo ágil plantea requisitos más altos tanto para los ingenieros de desarrollo como para los de pruebas, especialmente los ingenieros de pruebas. Sin embargo, aquellos ingenieros de pruebas tradicionales que solo pueden simular con precisión las operaciones del usuario son más exigentes en el desarrollo ágil. desarrollo Los equipos de desarrollo tendrán dificultades porque no podrán aportar mejoras de productividad al producto. En artículos posteriores de esta columna, analizaremos más a fondo el trabajo y las tareas de los ingenieros de pruebas en el desarrollo ágil de software.

Acerca del autor Duan Nian: Gerente senior de pruebas en Google China, graduado de la Universidad de Ciencia y Tecnología de Huazhong. Ha trabajado en desarrollo y pruebas de software en reconocidas empresas nacionales y extranjeras en comunicaciones y software integrado. , Internet y otras industrias. Tiene una comprensión única de la tecnología de prueba de software y el trabajo de gestión, y ha realizado una extensa investigación en gestión de equipos de prueba de software, pruebas automatizadas, pruebas de rendimiento, pruebas de desarrollo, etc.