Herramientas de usuario

Herramientas del sitio


bloque6:pruebas

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque6:pruebas [2020/10/29 19:36] fernandobloque6:pruebas [2024/09/16 20:55] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
-====== Diseño de Pruebas ======+====== Realización de Pruebas ======
 La etapa de pruebas de software (software testing) es un proceso más dentro del __desarrollo de software__. Sirve para mantener un control de calidad sobre el producto que creamos, y aunque requiera tiempo al igual que programar, a la larga el software mal programado acaba saliendo demasiado caro.  La etapa de pruebas de software (software testing) es un proceso más dentro del __desarrollo de software__. Sirve para mantener un control de calidad sobre el producto que creamos, y aunque requiera tiempo al igual que programar, a la larga el software mal programado acaba saliendo demasiado caro. 
- 
  
 ===== ¿Qué se prueba? (Caso de Prueba) ===== ===== ¿Qué se prueba? (Caso de Prueba) =====
Línea 17: Línea 16:
   * **Objeto de la prueba**: asegurarnos que Math.abs() devuelve el valor absoluto   * **Objeto de la prueba**: asegurarnos que Math.abs() devuelve el valor absoluto
   * **Caso de prueba**: si calculo el valor absoluto de -7 debe dar 7   * **Caso de prueba**: si calculo el valor absoluto de -7 debe dar 7
- 
  
 En otras palabras, un caso de prueba //es una pregunta que se le hace al programa para saber si el programa contesta (reacciona) correctamente// (tal y como se quiere que reaccione). En otras palabras, un caso de prueba //es una pregunta que se le hace al programa para saber si el programa contesta (reacciona) correctamente// (tal y como se quiere que reaccione).
- 
- 
  
 ===== Tipos de pruebas según su enfoque ===== ===== Tipos de pruebas según su enfoque =====
  
 ==== Caja Negra ==== ==== Caja Negra ====
-{{ :apuntes:blackbox.png?200|}}+{{ :bloque6:blackbox.png?200|}}
 Son las pruebas que se centran en evaluar el valor de las salidas de un sistemas a partir de unas entradas concretas, sin tener en cuenta el funcionamiento interno del sistema. Se centran en el **qué** hace un sistema y no en el **cómo** lo hace. **El programador no necesita saber cómo funciona el código, sino evaluar solamente la salidas**. Son las pruebas que se centran en evaluar el valor de las salidas de un sistemas a partir de unas entradas concretas, sin tener en cuenta el funcionamiento interno del sistema. Se centran en el **qué** hace un sistema y no en el **cómo** lo hace. **El programador no necesita saber cómo funciona el código, sino evaluar solamente la salidas**.
  
 Este tipo de test se puede aplicar a cualquier nivel de testeo de software: pruebas ''unitarias'', de ''integración'', de ''aceptación'', etc. Este tipo de test se puede aplicar a cualquier nivel de testeo de software: pruebas ''unitarias'', de ''integración'', de ''aceptación'', etc.
 ==== Caja Blanca ==== ==== Caja Blanca ====
-{{ :apuntes:whitebox.jpg?200|}}+{{ :bloque6:whitebox.jpg?200|}}
 Estos tipos de pruebas se centran en analizar cada uno de los posibles caminos en el flujo de ejecución de un programa antes unos valores de entrada concretos. **Es decir, si ante unos valores de entrada (parámetros) de un método, el flujo del programa ejecuta los //if//, o los //else//, o entra en un //bucle//, o sale de él. ** Estos tipos de pruebas se centran en analizar cada uno de los posibles caminos en el flujo de ejecución de un programa antes unos valores de entrada concretos. **Es decir, si ante unos valores de entrada (parámetros) de un método, el flujo del programa ejecuta los //if//, o los //else//, o entra en un //bucle//, o sale de él. **
 Este tipo de funcionamiento se puede comprobar también con el depurador. Este tipo de funcionamiento se puede comprobar también con el depurador.
Línea 64: Línea 60:
  
 No es necesario que se trate de una aplicación completamente terminada, pudiendo tratarse de un prototipo o de las distintas etapas de avance de un proyecto. No es necesario que se trate de una aplicación completamente terminada, pudiendo tratarse de un prototipo o de las distintas etapas de avance de un proyecto.
- 
- 
- 
- 
  
 ===== JUnit ===== ===== JUnit =====
-{{ :apuntes:junitlogo.png?200|}}+{{ :bloque6:junitlogo.png?200|}}
 Es un framework para Java enfocado en la realización de __pruebas unitarias__ (//unit testing//). Consiste en unas librerías JAR que debemos añadir a un proyecto en Java. http://www.junit.org Es un framework para Java enfocado en la realización de __pruebas unitarias__ (//unit testing//). Consiste en unas librerías JAR que debemos añadir a un proyecto en Java. http://www.junit.org
  
Línea 374: Línea 366:
  
  ==== El algoritmo TDD ====  ==== El algoritmo TDD ====
-{{ :apuntes:test_driven_development_agile_testing.jpg?300|}}+{{ :bloque6:test_driven_development_agile_testing.jpg?300|}}
  
 La esencia de TDD es sencilla pero ponerla en práctica correctamente es cuestión de entrenamiento, como tantas otras cosas. El algoritmo TDD sólo tiene tres pasos: La esencia de TDD es sencilla pero ponerla en práctica correctamente es cuestión de entrenamiento, como tantas otras cosas. El algoritmo TDD sólo tiene tres pasos:
bloque6/pruebas.1604000204.txt.gz · Última modificación: 2024/09/16 20:55 (editor externo)