Organización de pruebas en un proyecto de desarrollo Scrum(ish)

Primero: estoy probando este foro, aunque esto es más una cuestión de gestión de pruebas que de gestión de proyectos. El intercambio de prueba/control de calidad parece centrarse en preguntas y problemas técnicos y prácticos.

La pregunta central, copiada de la parte inferior por solicitud: Supongo que lo que estoy preguntando son sugerencias sobre qué/cómo probar qué/dónde y cómo organizar las pruebas. Con respecto a la participación del cliente/usuario, pero también en el propio equipo de desarrollo (con los desarrolladores y probadores). Intentaré aclarar la pregunta más si es necesario, por supuesto.

Me pregunto si alguien tiene alguna idea y / o pensamiento sobre un entorno de desarrollo y prueba con el que estoy luchando un poco, en cuanto a la gestión de pruebas y pruebas.

Vengo de un entorno más tradicional, donde habíamos separado Pruebas de sistema y Pruebas de aceptación. La prueba del sistema fue realizada por los probadores/ingenieros de control de calidad, mientras que la prueba de aceptación fue realizada por el cliente y sus usuarios avanzados/probadores. Por lo general, la prueba de aceptación tenía un administrador de pruebas dedicado, y el administrador de pruebas del sistema le entregaba su informe de prueba a él y a los propietarios del producto.

También he sido probador y gerente de pruebas en equipos Scrum (ish). Pero esto no era muy diferente de cómo solíamos hacerlo en entornos más basados ​​en cascada. El administrador de pruebas y/o los evaluadores crearon casos de prueba al comienzo y durante cada sprint. Estos se crearon a partir de los requisitos y se ejecutaron durante los sprints tan pronto como las tareas de desarrollo se terminaron y registraron.

Durante los sprints, especialmente cerca del final, ejecutamos el conjunto de pruebas de regresión. Esta fue una colección de pruebas existentes, así como aquellas pruebas nuevas que decidimos incluir en la suite. Bastante estándar.

Los sprints a menudo también terminaban en una demostración para los propietarios del producto/cliente, aunque esto no siempre era posible debido a una posible planificación deficiente del sprint y la funcionalidad.

Al final de los X sprints, teníamos una fase de prueba del sistema, que incluía una gran colección de pruebas realizadas durante los sprints, pruebas de regresión, etc.

Luego se creó el informe de prueba y se entregó "todo" a los gerentes de prueba y proyecto para el cliente.

Ahora, me encuentro en un entorno/equipo de desarrollo donde las cosas son un poco diferentes, y me cuesta un poco descubrir qué, cómo, cuándo, etc. Tanto en lo que respecta a las pruebas reales como a las métricas. administración, etc. Es el desarrollo de una nueva versión de un sistema que ya está en producción, con nuevas funciones y corrección de errores.

  • El proceso de desarrollo es una especie de scrum (ish), en el sentido de que está organizado en sprints de dos semanas (lo que me parece un poco corto). Sin embargo, no hay reuniones diarias, solo una reunión semanal.
  • Usamos implementación e integración continuas (en los entornos de prueba). (Los procesos de liberación para prod. env. aún no están grabados en piedra.)
  • El proyecto usa TFS y los flujos de trabajo especificados y los tipos de elementos de trabajo predeterminados para ese sistema: EPICS, CARACTERÍSTICAS e HISTORIAS DE USUARIO (así como errores y tareas, por supuesto).
  • Todavía no hay un buen enfoque en las pruebas unitarias entre los desarrolladores. Este es un trabajo en progreso.
  • No hay una fase de planificación de todo el equipo al comienzo de cada sprint; El gerente de desarrollo/equipo decide qué Historias de usuario llevar a cada sprint.

Así está estructurado el proyecto (por el momento):

EPICS: Todavía no los he resuelto por completo, y tampoco los líderes de desarrollo, o eso parece. Un trabajo en progreso.

CARACTERÍSTICAS: Esta es una colección de historias de usuarios (generalmente no más de un puñado.

HISTORIAS DE USUARIOS: Estas son muy pequeñas y específicas. Ejemplo:

  • US1: Como usuario X, puedo ver una lista de cada arrendatario de un cliente.
  • US2: Como usuario de X, puedo editar una entrada de arrendatario para...

El equipo de control de calidad/los probadores están, a partir de ahora, probando las historias de los usuarios. Al principio, traté de implementar una rutina de creación de casos de prueba para cada historia de usuario, organizada por sprint. Sin embargo, pronto vi que todos los casos de prueba e historias de usuarios terminaban 1 a 1, y que las descripciones de los casos de prueba eran solo una repetición de la historia de usuario y sus detalles, que son muy sencillos y no están sujetos a debate ni interpretación. (véase más arriba). Un montón de casos de prueba con uno o dos pasos que eran 100% obvios al mirar la historia del usuario parecía una pérdida de tiempo. Así que decidí/decidimos tratar de omitir los casos de prueba y solo usar los comentarios y el estado de las historias de los usuarios, ya que los casos de prueba han demostrado ser nada más que trabajo extra hasta el momento. Con solo dos semanas por sprint, no es deseable hacer trabajo/documentación doble o innecesaria. Tampoco hay "

Tiene alguna idea sobre esto? Estoy acostumbrado a los PBI en una configuración de Scrum, que a menudo eran lo suficientemente complejos como para necesitar al menos un caso de prueba con muchos pasos detallados y, a veces, más de uno. O había casos de prueba bastante grandes que, naturalmente, cubrían más de un PBI. En este caso, ese no ha sido el caso todavía. En este entorno, los casos de prueba son muy pequeños y aislados, y rápidos de probar. (La calidad entregada para cada historia de usuario es otra historia por completo, pero eso es un trabajo en progreso con los desarrolladores y líderes).

He estado pensando en la necesidad de casos de prueba para las CARACTERÍSTICAS, que creo que está más relacionado con el cliente. Sin embargo, estos son solo una colección de historias de usuarios que ya se probaron. Sus títulos tampoco son más que una breve descripción. Pero supongo que este es el lugar para los casos de prueba, ya que creo que deben ser probados o verificados por los clientes/usuarios del sistema.

Supongo que lo que pido son sugerencias sobre qué/cómo probar qué/dónde y cómo organizarlo con respecto a la documentación, la trazabilidad y la mayoría de los problemas comunes relacionados con las pruebas. Todavía no hay una participación real de los clientes/usuarios, pero creo que esto debe hacerse, al menos a nivel de CARACTERÍSTICA o ÉPICO. Pero esto requiere el tiempo y el conocimiento para escribir casos de prueba basados ​​en cadenas de valor y escenarios, lo que creo que es bastante diferente desde el punto de vista de un sistema/historia de usuario.

Vale la pena señalar que este es un equipo de desarrollo permanente que trabaja en un sistema de forma permanente y ahora trabaja en la versión 3 del mismo sistema. Entonces, el objetivo es el mismo sistema, solo que con más y mejores funciones, así como funciones adicionales solicitadas tanto por clientes externos como por usuarios internos. Pero a partir de ahora no hay nadie que actúe como propietario del producto o responsable de los requisitos. Esto también está en proyecto.

También puede probar Software QA.SE.
pedro: si Pero como mencioné en mi publicación, ese foro parece estar enfocado en pruebas técnicas y prácticas de control de calidad. No vi ninguna pregunta sobre la gestión de pruebas/proyectos allí.
Si bien los antecedentes que incluye pueden ser relevantes, es difícil encontrar su pregunta central. ¿Podría copiar su pregunta principal en la parte superior y ponerla en negrita para que sepamos lo que realmente está preguntando? De lo contrario, esto parece demasiado amplio para este foro.
He intentado. El trasfondo fue un intento de arrojar luz sobre lo que tradicionalmente he considerado como el(los) proceso(s) adecuado(s) en el desarrollo y las pruebas, que podrían no ser tan relevantes para un entorno aún más ágil, con implementación/integración continua, entre otras cosas.
@knoten Vaya. Supongo que debería haber leído con más atención.

Respuestas (2)

No hay nada de escoria (ish) sobre este proyecto

  • Los miembros del equipo no están involucrados en decidir qué se puede lograr en el sprint. Sin planificación de sprint. Es de arriba hacia abajo.
  • No hay coordinación entre los miembros del equipo en forma de Daily Stand-up.
  • El equipo no está intentando crear un incremento potencialmente entregable al final del sprint.
  • El equipo no muestra el trabajo completado al final de cada sprint a las partes interesadas ni busca sus comentarios.
  • El equipo de desarrollo no está haciendo las estimaciones de esfuerzo.
  • No se mencionan los roles de Scrum Master o Product Owner.

Tienes la intuición correcta cuando dijiste:

Todavía no hay una participación real de los clientes/usuarios, pero creo que esto debe hacerse, al menos a nivel de CARACTERÍSTICA o ÉPICO.

El mayor riesgo parece ser llegar al final del proyecto y que el cliente lo mire por primera vez y diga: "Esto no es lo que pedimos".

Por lo tanto, haga un seguimiento de su intuición y use la noción en el equipo de que este es un proyecto de escoria (ish) para organizar Revisiones de Sprint con el cliente a intervalos regulares. Basado en los comentarios:

  1. Sabrá qué tan bien las historias de usuario representan lo que pidió el cliente.
  2. Puede ajustar cuándo/cómo probar.

Y esto también te ayudará a hacer un seguimiento de tus otras sensaciones viscerales:

...esto requiere el tiempo y el conocimiento para escribir casos de prueba basados ​​en cadenas de valor y escenarios, lo que creo que es bastante diferente desde el punto de vista de un sistema/historia de usuario.

Estoy de acuerdo con la mayor parte de lo que dices. Sin embargo, lo que estás diciendo es un poco "fuera de lugar" ya que es directamente del libro imo. Hay coordinación, por supuesto, ya que todos los desarrolladores están ubicados y hablando juntos todo el tiempo. Esto incluye el equipo y los líderes de desarrollo. Todos, incluidos los evaluadores/control de calidad, se encuentran a menos de 5 metros entre sí. Lo que le falta es una adecuada planificación del sprint y retrospectiva, naturalmente. Sin embargo, en cuanto al producto potencialmente entregable, este es un sistema en ejecución, y cada sprint le agrega funcionalidad. Entonces es lanzamiento a prod., aunque irregularmente.
Además, dije "scrum (ish) EN QUE está organizado en sprints. Lo cual es. También es un proyecto continuo y permanente, sin fecha de inicio y finalización. Además, cuando se trata de los clientes, esto no está claramente definido identidad la mayor parte del tiempo, ya que PUEDE ser un cliente real, o podría ser un cambio interno/solicitudes de funciones. Debería estar más definido y organizado, por supuesto, pero como ingeniero de control de calidad, tengo un poder limitado para forzar el desarrollo y la gestión. estructura que quiero en el proyecto. Esto también es un trabajo en gestión de proyectos, pero necesito trabajar con lo que tengo ahora, no con lo que deseo.
Caramba. Los puntos de la historia no se mencionan exactamente en ninguna parte de la Guía de Scrum. Si va a criticar a las personas por no hacer Scrum correctamente, al menos debe saber qué hay y qué no en el documento.
@RubberDuck editó mi respuesta.
@RubberDuck Buen punto. Además, esto no necesariamente tiene que ser un proyecto Scrum.

Mi proyecto también está en desarrollo ágil activo de un producto recién lanzado.

El objetivo principal de mis pruebas es garantizar que no rompamos accidentalmente algo que ya hemos entregado, por lo que me enfoco en agregar conjuntos de pruebas para las funciones agregadas en cada sprint.

Por lo tanto, en su situación, no tendría reparos en agregar pruebas que coincidan con las historias de los usuarios aunque sea obvio, porque no estoy probando si hicimos bien este sprint: estoy agregando maquinaria de control de calidad para asegurarme de que se mantiene en lo cierto.

Por lo general, no involucro al usuario en las pruebas, excepto cuando nos han indicado que agreguemos una nueva función que rompa o cambie una función anterior. En este caso, les muestro las pruebas fallidas y les digo "esto es lo que esperaban que sucediera, ¿verdad?" y obtenga su aprobación antes de actualizar las pruebas al nuevo comportamiento.

En pocas palabras, las pruebas en mi proyecto son para el equipo de desarrollo, no para el propietario del producto.