¿Por qué?
|
|
|
¿Qué?
Validar | Verificar |
---|---|
permite detectar y corregir los defectos que nos desvían de los requisitos y necesidades reales del usuario. |
permite detectar y corregir los defectos que nos desvían de resultado esperado dados los requisitos especificados. |
|
|
Caso de Prueba
|
|
Resultado de Pruebas
|
|
|||||||
|
|
|
|
|
|
|
|
Verde, pasa! | Falso Negativo | Rojo, no pases! | Falso Positivo |
---|---|---|---|
|
|
|
|
|
|||
|
|
|
¿Para qué?
|
|
|
|
|
|
|
|
||
|
|
|
¿Cómo?
¿Quién? | ¿Dónde? | ¿Cuándo? | ¿Cuánto? |
---|---|---|---|
Actores de Pruebas |
Tipos de Pruebas |
Metodologías de Pruebas |
Cobertura de Pruebas |
Actores de Pruebas
|
Tipos de Pruebas
Según el SUT | Según la Ejecución | Según la Característica |
---|
Según el SUT
Tipo | Autor | SUT | Objetivo |
---|---|---|---|
Aceptación |
Usuario |
|
Validar los requerimientos iniciales, casos de uso, historias de usuario, manuales de usuario,… |
Sistema |
Probador con Usuario |
Verificar los requerimientos iniciales, casos de uso, historias de usuario, manuales de usuario,…, independiente de las decisiones de diseño de la arquitectura de software |
|
Integración |
Probador |
|
Verificar las colaboraciones entre los componentes de un mismo sistema, comunicación entre subsistemas (por ejemplo: DLL, jar, servicio web,…) o entre hardware y software |
Componente |
|
Verificar el funcionamiento correcto, independientemente de otros componentes |
|
Unitaria |
Desarrollador |
|
Verificar el funcionamiento correcto |
Según la Ejecución
Pruebas Estáticas
|
|
|
Pruebas Manuales | Pruebas Semiautomáticas |
---|---|
|
|
Análisis subjetivo de: |
Análisis subjetivo del resultado objetivo de: |
|
|
|
|
|
|
Herramientas para Pruebas Estáticas
Herramientas CASE | Herramientas Analíticas | ||
---|---|---|---|
|
|
||
|
|
|
|
Análisis Ecónomico de las Pruebas Estáticas
Con Pruebas Manuales | Sin Pruebas Manueles | Con experiencia en Pruebas Manueales |
---|---|---|
|
|
|
|
|
|
No existe ninguna otra actividad de pruebas que produzca una detección y corrección de errores de forma más eficiente (inversión/ahorro de tiempo y coste) que las pruebas estáticas basadas en revisiones
Testing Computer Software
Pruebas Dinámicas
|
|
|
Pruebas de Estado o Caja Negra | Pruebas de Comportamiento o Caja Blanca |
---|---|
|
|
|
|
Pruebas Automáticas | Herramientas de Pruebas Automáticas |
---|---|
|
|
|
Pruebas de Registro | Pruebas de Guión |
---|---|
|
|
|
|
|
|
|
|
|
|
Según la Característica
Pruebas Funcionales | Pruebas No Funcionales |
---|---|
Verifican aspectos funcionales del comportamiento del SUT, atendiendo a |
Verifican aspectos no funcionales del comportamiento del SUT, escalabilidad, portabilidad, seguridad, … |
Pruebas No Funcionales
Tipo | Verifica |
---|---|
Pruebas de Rendimiento |
niveles de rendimiento acordados en los requisitos, en las situaciones previstas de interaccion (entradas, transacciones,…). Los criterios de éxito son la comparación de dichos valores establecidos para el volumen de transacciones (throughput), el tiempo y/o velocidad de respuesta, … Obviamente,informan al equipo de producción de las tareas de optimización a acometer. |
Prueba de carga o de esfuerzo o escalabilidad |
las condiciones de uso del sistema bajo una pesada carga de los datos, la repetición de ciertas acciones de los datos de entrada, los grandes valores numéricos, consultas grandes a una base de datos o para comprobar el nivel de los usuarios concurrentes para la escalabilidad, … generando situaciones en un máximo nive. El criterio de éxito es la resistencia a que el tiempo de respuesta no se degrade. |
Pruebas de estrés o volumen |
los limites del sistema escalando la cantidad de carga con el tiempo con el objetivo de examinar cómo falla y vuelve a su funcionamiento normal. Puede incluir cargas de trabajo extremas, limitaciones de memoria, hardware y servicios disponibles o recursos compartidos limitados. Obviamente, informan de las tareas de recuperabilidad a acometer, que la aplicación continúe funcionando incluso después de que el servidor se haya reiniciado o se haya agotado su espacio en disco, … |
Prueba de estabilidad |
anomalias como pérdidas de memoria u otras degradaciones por la continuidad de la ejecución durante más de 24 horas |
Tipo | Verifica |
---|---|
Pruebas de Usabilidad |
aptitud para el uso mediante la confirmación de que los usuarios reales pueden usar la aplicación de software para lograr los objetivos fijados, informando de si se presentan interfaces engorrosos que no siguen los flujos de trabajo normales o esperados |
Pruebas de Seguridad |
la presencia de virus y gusanos, delincuentes que entran en el sistema, vándalos que causan ataques de denegación de servicio y mucho mas |
Pruebas de Manejo y Recuperación de Errores y Desastres |
comportamientos con entradas no validas, fallos en conexiones o del sistema operativo, archivos dañados, ets. |
Pruebas de Instalación y Desinstalación |
cosas que pueden ir mal cuando se instala/desintala una aplicación: la instalación causa daños en el sistema o no se instala, en especial con configuraciones mínima, máxima o inusuales; la desinstalación no elimina completamente los archivos y deshace los cambios, elimina demasiados archivos o "deshace" cosas que la instalación no hizo |
Pruebas de Configuración, Compatibilidad o Portabilidad |
capicidad de ejecutarse en diferentes versiones o configuraciones de los entornos, hardware y software, como con diversos navegadores o versiones de los mismos. |
Pruebas de Internacionalización y Localización |
soportar configuraciones locales, normales o leyes, como si el sistema no soporta los conjuntos de caracteres para el lenguaje local, si el sistema no contempla los efectos locales de distintos calendario de distintos usuarios, … |
Pruebas de Manejo de Fecha y Hora |
tratamientos de expiración de fechas, zonas horarios o eventos basados en fechas u horas |
Pruebas de Mantenibilidad |
la fluidez, flexibilidad, reusabilidad y robustez del código de producción |
Herramientoas para pruebas No Funcionales
|
|
Resumen de Tipos de Pruebas
Disciplina | Caracteristica | SUT | Táctica | Ejecución | Herramienta | Objetivo | Cuándo | Rol |
---|---|---|---|---|---|---|---|---|
Requisitos |
Funcionales y No Funcionales |
Sistema |
Estatica |
Manual |
Inspección |
Validación de Requisitos |
Inicio Iteración |
Analista de Sistemas |
Diseño |
Sistema, Integración, Componente y Unidad |
Manual |
Inspección |
Verificación de Diseño (subjetiva) |
Final Iteración |
Arquitecto, Desarrollador Senior |
||
Automática / Manual |
CASE + Inspección |
Verificación de Métricas de Diseño (subjetiva) |
||||||
Automática |
CASE |
Verificación de Mérticas de Diseño (objetiva) |
||||||
Implemen- tación |
Manual |
Inspección |
Verificación de Diseño (subjetiva) |
|||||
Automatica / Manual |
SonarQube + Inspección |
Verificación de Métricas de Diseño (subjetiva) |
||||||
Automática |
SonarQube |
Verificación de Métricas de Diseño (objetiva) |
||||||
Funcionales |
Unidad |
Caja Blanca y Caja Negra |
Automática |
xUnit, xUnit Reproducción |
Verificación de la Funcionales de la Implementación |
Continua- mente |
Desarrollador |
|
Integración y Componente |
Final Iteración |
Probador |
||||||
Sistema |
Caja Negra |
Robot, xUnit Moderno, xUnit* |
Verificación de la Funcionales de la Implementación |
|||||
No Funcionales |
Sistema, Integración, Componente y Unidad |
Jmeter, xUnit |
Verificación de Umbrales No Funcionales de la Implementación |
|||||
Funcionales y No Funcionales |
Aceptación |
Caja Negra |
Manual |
Inspección |
Validación de Requisitos |
Fin Iteración |
Usuario |
Proceso de Desarrollo Software con Pruebas
Desarrollo con Pruebas al Final | Desarrollo con Pruebas Primero | Desarrollo dirigido por Pruebas | Desarrollo dirigido por el Comportamiento |
---|---|---|---|
Test Last Development (TLD) |
Test First Development (TFD) |
test-driven development (TDD) |
Behaviour-driven development (BDD) |
|
|||
|
|
|
|
|
|
|
|
Las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar, deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto
— Meszaros
xUnit Test Patterns: Refactoring Test Code |
Integración Continua
|
|
Pruebas de Regresión | Pruebas de Humo |
---|---|
|
|
|
|
Entornos de Ejecución
Entorno de Producción: en el que se ejecutan las aplicaciones para su explotación |
Código de Producción: el que está escrito para el despliegue en el entorno de producción |
Entorno de Pre-Producción: de las mismas características que el Entorno de Producción pero cuyo objetivo no es explorar la aplicación si no realizan pruebas de la aplicación antes de llevarlo al Entorno de Producción para evitar "catástrofes" |
Código de Pre-Producción: el que está sometido a pruebas en el Entorno de Pre-Producción para ,en caso de éxito,llevarlo a código de producción |
Entorno de Integración Continua: donde se gestionan todas las ramas del código de un proyecto con sus versiones |
Codigo de Integración Continua: master, develop, feature, release# y hotfix# |
Entorno local: el del desarrollador |
Código local: el del entorno de desarrollo enfocado a una rama |
Ejecución de Pruebas
|
|
|
|
|
|
Pruebas Alfa | Pruebas Beta |
---|---|
|
|
Cobertura de Pruebas
|
||
|
|
"Un hombre sabio dijo una vez: me esperaba un alto nivel de cobertura (80%-90%)! A veces los gerentes requieren una. Hay una diferencia sutil"
— Brian Marick
|
Defecto | Exceso |
---|---|
"Lo barato al final sale caro!" |
"Pagame ahora y ya no me pagas luego!" |
|
|
|
Equilibrio | |
---|---|
"Mas vale prevenir que currar!" |
|
|
|
Sintesis
Bibliografía
Obra, Autor y Edición | Portada | Obra, Autor y Edición | Portada |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ponente
|
|
|