Pregunta: Tiene una gran cantidad de casos de prueba con tiempo y recursos limitados. ¿Cómo se realizan las pruebas de regresión?
Definamos nuestra estrategia de prueba.
- ¿Debo obtener una maestría en ingeniería de software o trabajar durante 2-3 años después de graduarme?
- ¿Cuáles pueden ser los usos alternativos de la automatización de pruebas de software (scripting)?
- ¿Los diseñadores están reemplazando a los ingenieros de software como las nuevas "estrellas del rock" de la industria tecnológica?
- ¿Cuál es la mejor manera de organizar las pruebas en un proyecto en C?
- ¿Cuáles son los trabajos realizados por los probadores?
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 todas 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. Y ahora están marcados en función de 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.