Comencemos con ejemplos.
Este es un documento de trazabilidad justo en el puño de la suite utilizada en la misión Apollo 11 Moon (el costo reportado fue de 25.4 mil millones de dólares ).
- ¿Cómo va la aplicación Cardback?
- ¿Las películas 'grandes' se editan en una computadora? ¿Lo hace individualmente el director? ¿Qué programas y software de edición usarían?
- ¿Cómo mejorar mi inglés? ¿Cuál es la mejor aplicación para aprender inglés?
- ¿Cuánto costaría crear una aplicación móvil similar a la oferta?
- ¿Qué es una aplicación donde podemos escribir en inglés la palabra telugu y verificar su significado en inglés y en hindi y viceversa, sugerir algún sitio incluso?
Mirada más cercana:
(Las imágenes de arriba tomadas del archivo de la NASA).
Los proyectos de desarrollo de software típicos no cuestan 25.400 millones de dólares, pero los evaluadores tienen misiones de exploración similares. Tener una “lista de lavandería” de características para explorar y riesgos para investigar ayuda mucho.
En una forma primitiva, la matriz de trazabilidad se parece a una tabla con pares de “requisito – caso de prueba”.
- La idea es tener cada requisito “cubierto” con un caso de prueba.
- La falla es que los requisitos y defectos no están en relación 1–1, y no hay forma de predefinir cualquier número de casos de prueba para proporcionar una cobertura suficiente; lo sabrá solo después de haberlo probado.
- La falla crítica es que los requisitos no son partes aisladas, sino que especifican un sistema, que siempre es más que una suma de componentes, ¿dónde están los casos de prueba para eso? Lea una ilustración perfecta: Mentiras, malditas mentiras y matrices de trazabilidad.
Estrategia de prueba
Las matrices de trazabilidad que se centran solo en los requisitos no tienen en cuenta que
- Las diferentes características tienen diferente importancia comercial y riesgos asociados,
- Los probadores nunca tienen tiempo suficiente para probar exhaustivamente todo.
Por lo tanto, una forma más práctica y más apropiada para el negocio es definir su estrategia de prueba en función de los riesgos.
Hay aspectos deterministas y probabilísticos en nuestra estrategia.
Comenzamos con dos factores fundamentales: resultado de falla y probabilidad de falla . Los puse juntos en una matriz, ver la imagen de arriba.
- Aprende sobre tu producto.
- Clasificar áreas de productos y elementos.
- Identificar las consecuencias de la falla (interrupción) de un elemento de producto dado.
- Asigne niveles de importancia (por ejemplo, de catastrófico a insignificante ).
- (Nota: puede hacer este ejercicio de manera informal o seguir el Esquema de Nivel de Integridad como se define en el Estándar IEEE-829 para Pruebas de Software).
- Definir matriz de prioridad.
- Vea la imagen de arriba: la importancia de la prueba (y, por supuesto, ¡la corrección!) Depende de las consecuencias del fracaso y la probabilidad de que ocurra .
- Asigne estas prioridades de prueba en las áreas de productos.
- Terminará con otra tabla, o una lista, o un mapa mental, dependiendo de cómo elija representar sus áreas de productos. Esta es su matriz de trazabilidad con una clasificación basada en las prioridades.
Voila! Aquí está el punto de partida de su estrategia. ¡Esto no es solo un artefacto!
Es una entidad “en vivo”:
- A medida que se desarrolle el proyecto, se volverá más preciso y detallado al definir áreas de productos y clases de fallas.
- en cuanto a las probabilidades (verosimilitud): es una imagen en constante cambio, por lo que necesitará un “radar” …
Ahora a las tácticas: ¿qué hay en tu radar?
Fuente de la imagen: Pixabay
Para estimar la probabilidad de fallas, es posible que desee utilizar factores estadísticos y probabilísticos. A continuación sugiero algunos patrones comunes, pero no es una lista exhaustiva .
- Nuevo código Las posibilidades son aún mayores si no se ha realizado dicha detección y prevención de errores, como revisiones de código y pruebas unitarias.
- Código de buggy Se sabe que tiene errores. Cualquiera sea la razón de este dolor crónico, ¡mejor vigílelo!
- Código complejo Si es difícil de entender y explicar, también es difícil hacerlo bien.
- Código modificado Si el código fue modificado en algún sentido, es como nuevo. No importa si solo se modificaron algunas líneas, y he aquí por qué: El patrón universal de enormes pérdidas de software por Gerald Weinberg.
- Puntos de integración . Código y / o datos que de alguna manera están distribuidos pero que deben funcionar como un todo.
- Hilos . Cualquier secuencia es sensible a las condiciones de carga / pico / estrés, y hay complicaciones de subprocesos múltiples.
¡No estás solo! Hablar con sus compañeros de equipo puede ayudar a identificar los riesgos y las probabilidades de errores. Ejemplo: algunas preguntas para hacer sobre una corrección de errores –
- ¿La corrección se aplica a todas las funcionalidades afectadas?
- Si no, ¿cuáles fueron reparados y cuáles no?
- ¿Hay módulos de código similares?
- En caso afirmativo, ¿es posible que tengan el mismo problema?
Conclusión
- El número de pruebas posibles es siempre infinito y el tiempo / recursos siempre son limitados. Identificar los riesgos y priorizar en consecuencia. ¡Comunica tu estrategia!
- Centrarse solo en el número precalculado de casos de prueba es muy arriesgado porque dicha estrategia ignora los riesgos y prioridades cambiantes a medida que se desarrollan los proyectos.
- Sin embargo, dicha evaluación “estática” de la cobertura y las prioridades de las pruebas es un buen punto de partida.
- Mientras los cambios en el código continúen ocurriendo, surgirán nuevos riesgos.
- Moverse en incrementos pequeños y bien probados ayuda a reducir los riesgos.
- Ampliar las actividades de prueba en todos los sentidos, desde el recorrido de las funciones hasta la revisión del código, desde las pruebas unitarias hasta el monitoreo de la producción, ayuda a reducir los riesgos.
- Grandes pruebas necesitan 3 componentes
- visión estratégica de todo el equipo;
- dirección táctica por cables técnicos;
- desempeño individual de probadores expertos.
¡Gracias por leer!
- Si te gustó esta respuesta, vota y sígueme
- Si lo encuentra útil, por favor comparta con otros
- ¿No estás de acuerdo o no te gustó? ¡Dispárame un comentario! Estoy seguro de que hay un margen de mejora.