sábado, 13 de abril de 2013

Téc D.P.- Basadas en la experiencia (K2).

Objetivos:
  1. Retener las causas para escribir casos de prueba en base a la intuición, la experiencia y el conocimeinto de los defectos comunes (K1).
  2. Comparar técnicas basadas en la experiencia con técnicas de pruebas basadas en la especificación (K2).
Términos usados en este artículo: PRUEBAS EXPLORATORIAS, ATAQUE (falta).

Antecedentes. 




Las pruebas basadas en la experiencia son aquellas en las que las pruebas se derivan de la habilidad e intuición del probador y de su experiencia con aplicaciones y tecnologías similares. Si se utilizan para aumentar las técnicas sistemáticas, estas técnicas pueden ser útiles a la hora de identificar pruebas especiales que no pueden capturarse fácilmente mediante técnicas formales, especialmente si se aplican después de adoptar enfoques más formales. No obstante, esta técnica puede tener distintos grados de efectividad, en función de la experiencia del probador.

  • Una técnica basada en la experiencia muy usada es la predicción de error.
  • En general los probadores anticipan los defectos en base a su experiencia.
  • Un enfoque estructurado de la técnica de predicción de error consiste en enumerar una lista de posibles defectos y diseñar pruebas para atacar dichos defectos.
Este enfoque sistemático se denomina ataque de faltas. Esta lista de defectos y fallos puede elaborarse en base a la experiencia, a los datos disponibles sobre defectos y fallos y a partir del conocimiento común sobre por qué falla el software.

Las pruebas exploratorias coinciden con las fases de diseño de pruebas, ejecución de pruebas , registro de pruebas y aprendizaje , en base a un contrato de pruebas que contempla los objetivos de las pruebas, y se llevan a cabo dentro de los períodos de tiempo establecidos.

Se trata de un enfoque especialmente útil en los casos en los que las especificaciones son escasas o inadecuadas y existe una importante presión temporal, o para aumentar o complementar otras pruebas más formales. Asimismo, puede servir como comprobación del proceso de pruebas, para ayudar a garantizar que los defectos más graves han sido efectivamente detectados.

Definición de técnicas basadas en la experiencia.
  • Práctica para la creación de casos de pruebas sin un claro enfoque metodológico basada en la intuición y experiencia del probador.
  • Los casos de prueba están basados en la intuición y experiencia.
    • ¿Dónde se han acumulado errores en el pasado?
    • ¿Dónde falla normalmente el software?
Fundamentos.
  • Las pruebas basadas en la experiencia también se denomina pruebas intuitivas ("intuitive testing") e incluyen predicciones de errores ("error guessing")( pruebas orientadas a puntos débiles) y pruebas exploratorias (pruebas iterativas basadas en el conocimiento adquiridos respecto del sistema).
  • Principalmente aplicadas con el objeto de completar otros casos de pruebas generados con un mayor formalismo.
  • No cumple los criterios de un proceso de prueba sistemático.
  • Frecuentemente produce casos de pruebas adicionales que no podrían ser creados con otras prácticas, por ejemplo:
  1. Pruebas de un año bisiesto posterior al año 60 (problema conocido en el pasado)
  2. Conjuntos vacíos en valores de entrada (una aplicación similar ha tenido valores en estas circunstancias). 
Diseño de caso de prueba.

El probador debe contar con experiencia o conocimiento aplicables / relevantes al caso.

  • Intuición: ¿Dónde se pueden esconder los defectos? - La intuición caracteriza a un buen probador.
  • Experiencia: ¿Qué defectos han sido detectados y dónde en el pasado?
  • Conocimiento / percepción - ¿Dónde se esperan defectos especificados? 
  • - Se incluyen detalles específicos del proyecto.
  • - ¿Dónde se producirán defectos como consecuencia de la presión por los plazos y la complejidad?
  • ¿Están involucrados programadores sin experiencia?
Diseño intuitivo de casos de prueba - posibles fuentes.
  • Resultados de pruebas y experiencia práctica con sistemas similares. - Posiblemente un predecesor del software u otro sistema con funcionalidad similar.
  • Experiencia de usuario. - Intercambio de experiencia con el sistema como usuario del mismo.
  • Enfoque del despliegue.- ¿Qué partes del sistema serán utilizados con mayor frecuencia?
  • Problemas de desarrollo.- ¿Hay algún punto débil como resultado de dificultades en el proceso de desarrollo?
Predicción de errores ("error guessig") en la práctica.

  • Comprobar lista de defectos.
  1. - Enumerar posibles errores.
  2. - Factores ponderados dependientes del riesgo y probabilidad de ocurrencia.
  • Diseño de caso de prueba.
  1. - Creación de casos de prueba dirigidos a producir los defectos de la lista.
  2. - Aumentar la prioridad a aquellos casos de prueba considerando el valor de su riesgo.

  • Actualizar la lista de defectos durante las pruebas.

  1. - Procedimiento iterativo.
  2. Es útil una colección estructurada de experiencia cuando se repite el procedimiento en futuros proyectos. 

Pruebas exploratorias ("exploratory testing").

  • Es un procedimiento de diseño de casos de prueba especialemnte apropiado cunado la información base se encuentra poco estructurada.
  • También es útil cuando el tiempo disponible para pruebas es escaso.
  • Procedimiento:
  1. - Revisar las partes constituyentes (individuales/identificables) del objeto de prueba.
  2. - Ejecutar un número reducido de casos de prueba exclusivamente sobre aquellas partes que deben ser probadas, aplicando predicción de errores ("errores guessing").
  3. - Analizar los resultados, desarrollar un modelo preliminar ("rough model") de cómo funciona el objeto de prueba.
  4. - Iteración. Diseñar nuevos objetos de prueba aplicando el conocimiento adquirido recientemente.
  5. - Por lo tanto concentrándose en las áreas relevantes y explorando características adicionales del objeto de prueba.
  6. Herramientas de captura pueden ser útiles para registrar las actividades de pruebas.
  7. Seleccionar objetos pequeños y/o concentrándose en aspectos particulares del objeto de pruebas. - Una iteración unitaria no debería llevar más de 2 horas.
  8. Los resultados de una iteración constituyen la base de información para la siguiente iteración.- Se obtienen casos de prueba adicionales a partir de la situación particular de la prueba.
  9. El modelado tiene lugar durante el proceso de pruebas.- El diseño , ejecución , registro y aprendizaje basados en una carta de prueba ("test charter") que contiene los objetivos de prueba son concurrentes y ejecutado en ventanas temporales ("time boxes").
  10. Preparación de pruebas adicionales.- Con esto, el conocimiento puede ser adquirido para apoyar la elección apropiada de métodos de diseño de casos de prueba.   
Pruebas basadas en la experiencia versus pruebas basadas en la especificación.

  • El diseño intuitivo de casos de prueba es un buen complemento a los enfoques sistemáticos.
  1. -  debería ser tratados como una actividad complementaria.
  2. - No puede dar constancia de completitud - el número de casos de prueba puede variar de forma considerable.

  • Las pruebas son ejecutadas de la misma manera que los son los casos de pruebas definidos en forma sistemática.
  • La diferencia es la forma en la cual los casos de prueba han sido diseñados I identificados.
  • A través de pruebas intuitivas se puede detectar defectos que no podrían ser detectados a través de métodos sistemáticos de prueba.
Concluyendo:

  • Las técnicas basadas en la experiencia complementan las técnicas sistemáticas para determinar casos de pruebas.
  • Las técnicas basadas en la experiencia dependen en gran medida de la habilidad individual del probador.
  • La predicción de errores y las pruebas exploratorias son dos de las técnicas más ampliamente utilizadas de pruebas basadas en la experiencia.
Pregunta de examen:

40 Error guessing is best used
a) As the first approach to deriving test cases
b) After more formal techniques have been applied-->OK
c) By inexperienced testers
d) After the system has gone live
e) Only by end users

40 Adivinando error es el más utilizado cuando..
a) Como primera aproximación derivar casos de prueba
b) Una vez se han aplicado las técnicas más formales-->OK
c) Por probadores inexperto
d ) Después de que el sistema ha ido en directo
e) Sólo los usuarios finales

No hay comentarios:

Publicar un comentario