Existe una relacion entre un error, un defecto y un fallo al realizar el desarrollo de nuestro software. 



Tenemos que cumplir con los siguientes objetivos para cumplir con la CALIDAD en el desarrollo

  • La prueba es el proceso de ejecucion de un programa con la intencion de descubrir un error? 
  • un buen caso de prueba es el que puede fallar 
5 elementos esenciales para realizar pruebas.- Utilizamos todos los elementos que nos puedan permitir obtener resultados erróneos y hacer que nuestro software funcione mal. 
los elementos a probar son los DATOS (carga de la base de datos, funciones en red, validacion de datos, etc.)
  1. Estrategia de pruebas.- es un plan que nos ayuda a encontrar una cantidad de defectos en el software
  2. Plan de pruebas.- que nos diga como cumplir con la estrategia y llevarla a cabo
  3. Casos de pruebas.- que preparemos con anterioridad en la forma de ejemplos detallados que usaremos para comprobar si el software cumple con los requerimientos
  4. Datos de prueba.- es en los datos de entrada y las bases de datos de prueba que se utilizan para ejecutar los casos de prueba
  5. Un ambiente de pruebas.- nos permite llevar a cambio dichas pruebas
Como se hacen las pruebas en el mundo real?
  1. Reunion inicial.- Quien es el cliente? duracion y fecha de entrega? stakeholdres
  2. Plan de pruebas.- desarrollado en base al SRS: se divide el diseño en modulos
  3. Casos de prueba y escenarios.- se crean pruebas siguiendo una filosofia botton-top (se hacen pruebas de modulos y luego su integracion)
  4. Testing y debugging.- testing es verificar y debugging es identificar los errores y solucionarlos

todo desarrollo tiene una entrada, proceso y salida
Vision arquitectonica inicial.-
Vision y asignacion de presupuesto inicial.-
Requerimientos iniciales.- 
Plan general.-

Que es un backlog.- Lista de trabajo con prioridad, la lista en la que se debe priorizar los elementos mas importantes del desarrollo, 
Reuniones de retrospectiva.- si hay observaciones hay que analizar el proceso y hacer reportes de mejora en el proceso de entrada proceso y salida

Pruebas y aceptacion y ATTD
Las diversas metodologias, son indispensables para la liberacion exitosa con CALIDAD para eso se planifica, se genera guias y se generan estrategias el Desarrollo dirigido por Pruebas y el Desarrollo por Pruebas de Aceptacion.
La diferencia entre las pruebas de aceptacion y dirigido por pruebas son los STAKEHOLDERS el equipo de trabajo puede hacer el desarrollo dirigido por pruebas y el Desarrollo dirigido por pruebas de aceptacion es donde trabajan conjuntamente con los stakeholders

Pruebas en Metodologias Agiles  


Product owner.- es un actor del equipo de desarrollo que utiliza las metodologias agiles, es el que genera el producto backlog, es el encargado de proyecto o el encargado de coordinar con el stakeholder, a veces es el directivo o lider de proyecto 

SCRUM Master.- es el especialista de la metodologia y se encarga de supervisar todo el procedimiento y coordina con todas las areas 

Reunion diaria de SCRUM: se hace una reunion en base a los elementos importantes segun el backlog

Reunion de retrospectiva: pasarle el avance al product owner y que se vuelva a realizar el proceso 

Diferencias entre metodologías tradicionales y metodologías agiles.- (algunas metodologias tradicionales como la espiral y la cascada) vs scrum, xp y otras. 
  • En los modelos tradicionales se tenian reuniones al principio y no durante el proceso.
  • pruebas de aceptacion, se utiliza como aceptacion el diseño y desarrollo del sistema
  • requieren entrar tempranamente en detalle de implementacion e instanciacion de datos de pruebas 
  • El uso de documentacion menos rigida 
Pruebas.-


Se realiza todo el diseño y desarrollo para las pruebas de aceptacion, quien lo revisa es el cliente, pasa del usuario al analista de acuerdo donde corresponde pasa al desarrollador y finalmente al ingeniero de pruebas para pasar nuevamente al usuario o cliente, son diferentes elementos en la metodologia agil que incluye el entorno de pruebas.
Metodos de prueba.- Se usan diferentes tecnicas para ver si son apropiadas, estas aplican en diferentes momentos en el desarrollo de software
  • quien prueba primero el codigo es el desarrollador a veces asistido por grupos de pruebas independientes para proyectos grandes
  • el rol del tester es eliminar el conflicto de intereses inherente cuando el desarrollador prueba su propio producto 
2 conceptos muy importantes son 
Verificacion.- Estamos construyendo el producto correctamente? - Reuniones diarias
Validacion.- Estamos construyendo el proyecto correcto? -Reuniones de retrospectiva 
los cuales incluyen mas conceptos importantes

hay que tomar muy en cuenta los alcances y limitaciones de las tecnologias utilizadas 

Etapas de Pruebas
  1. Pruebas de Modulo o unitarias.- se realizan pruebas modulo por modulo 
  2. Pruebas de Integracion.- se realizan pruebas al integrar un modulo con otro 
  3. Pruebas de Funcion.-se realizan pruebas de si el software hace lo que dice que hace 
  4. Pruebas de Rendimiento.- si el software soporta distintos tipos de estres
  5. Pruebas de Aceptacion.-  las pruebas las realiza el stakeholder
  6. Pruebas de Instalacion.- en que sistemas operativos es compatible, que tipo de componentes son requeridos para un buen funcionamiento, etc. etc. etc. para que el sistema funcione de manera eficiente 
Principios de las pruebas
  • no son posibles las pruebas exhaustivas, no es posible hacer una prueba general de todo 
  • las pruebas deberian ser realizadas por un equipo independiente fuera de los que lo desarrollaron