Conceptos Fundamentales de Pruebas de Software

Diseño e Ingeniería4,48 KB

Precondiciones

  • Datos de Prueba: Datos que deben existir antes de que una prueba pueda ser ejecutada y que afectan o son afectados por el componente o sistema bajo prueba. – Ej. Una base de datos conteniendo instancias específicas de una entidad.
  • Entorno de prueba: Elementos diferentes del objeto de prueba que son necesarios para conducir la prueba – Ej. Hardware, Herramienta de Testing, etc.
  • Entrada de Prueba: El dato recibido por un objeto a prueba, durante la ejecución de la prueba desde una fuente externa la cual puede ser HW, SW o una acción humana.
  • Resultado Esperado: El comportamiento predicho por la especificación u otra fuente, del objeto de prueba, bajo condiciones específicas. Se debe también especificar cómo se obtiene el resultado esperado.
  • Oráculo: Es una fuente para determinar resultados esperados de un caso de prueba. Un oráculo puede ser un sistema existente, un usuario manual, o el conocimiento especializado de un individuo. Nunca debería ser el código. Ej. Simulación, experto en el dominio.
  • Criterio para el Veredicto Pasa/Falla: Reglas de decisión usadas para determinar si un ítem de prueba ha pasado o fallado una prueba.
  • Postcondición: Condiciones del entorno y estado que se deben cumplimentar después de la ejecución de una prueba o un caso de prueba, o un procedimiento de prueba.
  • Caso de Prueba a Alto Nivel: Un caso de prueba que no tiene una implementación concreta, o valores concretos para la entrada de datos y el resultado esperado. Se usa Caso de Prueba Lógico como sinónimo.
  • Caso de Prueba a Bajo Nivel: Es un caso de Prueba con valores concretos, que existen a nivel de implementación, para dato de entrada y resultado esperado. Los operadores lógicos de los casos de prueba a alto nivel son reemplazados por valores reales que corresponden al objetivo de los operadores lógicos.
  • Conjunto de Pruebas Ideal: Es el menor subconjunto de todos los casos de prueba posibles que encuentra todos los defectos sobre un componente o sistema.

Prueba Exitosa

  • Aquella que detecta un defecto aún no descubierto.
  • Es aquella que encuentra muchos defectos, no lo opuesto.
  • Un producto sin defectos daría como resultado que el testing no produzca pruebas exitosas y el consiguiente fracaso del testing.

Características de un Buen Caso de Prueba

  • Fácil de repetir.
  • Teniendo un fijo y preciso punto de inicio. El estado del sistema cuando se introdujo la entrada es conocido.
  • Conociendo exactamente qué datos de entrada fueron introducidos y en qué secuencia.
  • Representativo: el testing exhaustivo no es factible, con lo cual el caso de prueba debería ser representativo de un conjunto posible de casos de prueba.
  • Ayuda a identificar fácilmente cuál es el defecto.
  • Fácil de usar, entender o de realizar.
  • Fácil de mantener.
  • Trazable.

Derivación de Casos de Prueba

a) En Base a Documentos del Cliente

  • Útil para el diseño de casos de prueba de funciones de negocio.
  • Aconsejable para las pruebas de aceptación de usuario.
  • Puede ser muy pobre para un testing funcional.

b) En Base a Documentos de Relevamiento

  • Si se detectan omisiones o supuestos equivocados en el relevamiento, se debe informar para corregir.
  • El diseño de casos de pruebas generado de estos documentos tiene que servir al testing y no hay que confundirlo con el diseño del desarrollo.

c) En Base a Especificaciones de Programación

  • En el área de Testing se reciben las mismas especificaciones que se le envían al programador.
  • Si un programador puede codificar en base a estas especificaciones, Testing debe poder diseñar casos de prueba y testear.
  • Más completo que el diseño que se logra en base a documentos del cliente y de relevamiento.
  • Más detalle.

d) En Base a Código

  • En Testing se recibe el CÓDIGO.
  • Adquiere las mismas ventajas y desventajas que esta técnica tiene.
  • Es complementario al diseño de casos de prueba en base a documentación.
  • Amplia cobertura del código y por supuesto del diseño.
  • Se usa para el diseño de pruebas unitarias o de componentes.

Descargar

PDF Word HTML