software testing (2)

47
Estrategias de Prueba para Software Orientado a Objetos Estrategias de Prueba para Aplicaciones Web Pruebas de software (II) M.I. Capel ETS Ingenierías Informática y Telecommunicación Universidad de Granada Email: [email protected] Desarrollo de Software Ingeniería de Software (3er curso de Grado) 21 de mayo de 2014 M.I.Capel Tema 4 1/46

Upload: manuel-capel-tunon

Post on 03-Jul-2015

280 views

Category:

Technology


0 download

DESCRIPTION

Technical review of non-classic software (OO, WebApps...) testing techniques

TRANSCRIPT

Page 1: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de software (II)

M.I. Capel

ETS Ingenierías Informáticay Telecommunicación

Universidad de GranadaEmail: [email protected]

Desarrollo de SoftwareIngeniería de Software (3er curso de Grado) 21 de mayo de 2014

M.I.Capel Tema 4 1/46

Page 2: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Índice

1 Estrategias de Prueba para Software Orientado a ObjetosPruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

2 Estrategias de Prueba para Aplicaciones WebPruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

M.I.Capel Tema 4 2/46

Page 3: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Índice

1 Estrategias de Prueba para Software Orientado a ObjetosPruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

2 Estrategias de Prueba para Aplicaciones WebPruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

M.I.Capel Tema 4 2/46

Page 4: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Software Orientado a Objetos

Cómo probarlo¡La naturaleza del software OO modifica la estrategia y latáctica de la prueba del software!Cambia el concepto de unidad en la pruebas unitarias decomponentes softwareYa no se pueden probar una sola operación aisladamente,sino como parte de una claseLa prueba de clases en el software OO es el equivalentede la prueba unitaria en el software convencionalLa prueba de clases en software OO es conducida por susoperaciones encapsuladas y el comportamiento del estado

M.I.Capel Tema 4 3/46

Page 5: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diseño de tests para pruebas de software OO

Características de los métodos de pruebaLas pruebas unitarias se aplican clase por claseSe han de ejercitar todas las operaciones (métodos) queencapsula la claseSe diseñan secuencias de tests para asegurar que lasoperaciones importantes son ejercitadasSe ha de examinar el estado de cada clase (representadopor los valores de sus atributos) para determinar si existealgún error todavía no identificado

M.I.Capel Tema 4 4/46

Page 6: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diseño de tests para pruebas de software OO (II)

DesafíosLa encapsulación propia de las clases puede hacer difícilel extraer el estado concreto de cualquier objeto duranteun momento de la ejecuciónEl mecanismo de herencia puede complicar la realizaciónde las pruebas de una claseLa herencia múltiple complicaría aún más las pruebas, yaque incrementa el número de contextos de utilización

M.I.Capel Tema 4 5/46

Page 7: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diseño de tests para pruebas de software OO (III)

Lista común de pasos de los tests1 Los estados de la clase que se va a probar2 Los mensajes y las operaciones que serán ejercitados

como consecuencia de aplicar el test3 Las excepciones que pueden suceder cuando la clase

esté siendo probada4 Las condiciones externas5 Información suplementaria, que ayudará a entender o

implementar el test que se está diseñando

M.I.Capel Tema 4 6/46

Page 8: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diseño de tests para pruebas de software OO (IV)

Categorias de métodos de prueba

Pruebas basadas en fallosPruebas aleatoriasPruebas de partición

M.I.Capel Tema 4 7/46

Page 9: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas basadas en fallosCaracterísticas

Partiendo del modelo de análisis OO, el comprobador tratade identificar posibles fallosSe diseñan casos de prueba para ejercitar el diseño delsistema o su codificaciónSe buscan posibles fallos en las llamadas a los métodos ylas comunicaciones a través de mensajes:

llamadas a operaciones: hay que examinar sucomportamientotipos de errores: resultado inesperado, operación/mensajeincorrecto, invocación incorrectaSe trata de determinar si existen errores en el código quellama, no en el llamado

M.I.Capel Tema 4 8/46

Page 10: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Prueba aleatoria para clases OO

CaracterísticasEste tipo de prueba se utiliza para ejercitar una claseExisten restricciones en el orden de invocación de lasoperaciones de una clase, debido al problemaIncluso con dichas restricciones, existen muchas posiblespermutaciones de la secuencia de llamadas a operacionesSe generan aleatoriamente diferentes secuencias paraejercitar distintas historias de la vida de las instancias

M.I.Capel Tema 4 9/46

Page 11: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Prueba aleatoria para clases OO (II)

Ejemploclass CuentaCorriente:métodos:{abrir(),iniciar(),ingresar(),retirar(),saldo(),movimientos(),limiteCredito(),cerrar()}atributos:{saldo,limiteCredito}Historia mínima: abrir() · iniciar() · ingresar() · retirar() · cerrar()Todos los comportamientos legales: abrir() · iniciar() · ingresar() ·[ingresar()|retirar()|saldo()|movimientos()|limiteCredito]n ·retirar() · cerrrar()Test 1: abrir() · iniciar() · ingresar() · ingresar() · saldo() ·movimientos() · retirar() · cerrar()Test 2: abrir() · iniciar() · ingresar() · retirar() · ingresar() ·saldo() · limiteCredito() · retirar() · cerrar(). . .

M.I.Capel Tema 4 10/46

Page 12: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Prueba de Partición

CaracterísticasRespecto de la prueba aleatoria, reduce el número detests necesarios para realizar la prueba de una claseSe categorizan las entradas y las salidas de lasoperaciones y se diseñan tests para ejercitarlasParticionamiento por estados: clasifica las operacionessegún su habilidad para cambiar el estado de la claseParticionamiento basado en los atributos: clasifica lasoperaciones según los atributos de la clase que utilizanParticionamiento basado en categorías: clasifica lasoperaciones de la clase según las funciones genéricas

M.I.Capel Tema 4 11/46

Page 13: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Prueba de Partición para clases OO (II)

Ejemploclass CuentaCorriente:

Partición por estados:{{ingresar(),retirar()}},{{saldo(),movimientos(),limiteCredito()}}

Test 1:abrir() · iniciar() ·ingresar() · ingresar · retirar() · retirar()saldo() · cerrar()Test 2:abrir() · iniciar() · depositar() ·movimientos() · limiteCredito() · saldo() · retirar() · cerrar()

Partición por atributos:

Operaciones que usan limiteCreditoOperaciones que usan saldoOperaciones que no usan o modifican los atributosanteriores

M.I.Capel Tema 4 12/46

Page 14: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Prueba de Partición para clases OO (III)

Ejemploclass CuentaCorriente:

Partición por categorías:operaciones de inicialización:{abrir(),iniciar()}operaciones computacionales:{ingresar(),retirar()}consultas:{saldo(),movimientos(),limiteCredito()}operaciones de terminación:{cerrar()}

Construir tests como secuencias distintas que incluyanoperaciones de cada categoría

M.I.Capel Tema 4 13/46

Page 15: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas de Integración

AntecedentesDado que el software OO no posee una estructura decontrol jerárquica obvia, las estrategias de integracióntop–down y bottom–up tradicionales fracasanEl integrar operaciones de una en una en una clase es, amenudo, imposible

M.I.Capel Tema 4 14/46

Page 16: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas de Integración IIEstrategias

El integrar operaciones de una en una, en una sola clase,es, a menudo, imposible(1) Pruebas basadas en hebras: cada hebra de laaplicación es probada individualmenteHay que aplicar la prueba de regresión (muy importante)(2) Pruebas basadas en la utilizaciónDespués de probar las clases independientes, se pruebala siguiente capa de clasesLa secuencia de prueba de capas de clases dependientescontinúa hasta se construye el sistema completo

M.I.Capel Tema 4 15/46

Page 17: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas de Integración III

Estrategias

Se suelen utilizar drivers y stubs en las pruebas delsoftware OO: permiten probar la funcionalidad del sistemaantes de la implementación(3) Cluster Testing: se intenta descubrir los posibleserrores en las colaboraciones entre clases

M.I.Capel Tema 4 16/46

Page 18: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas de Integración IV

Pruebas de múltiples clases1 Para cada clase cliente: usar la lista de operaciones para

generar secuencias de prueba aleatorias (las operacionesenviarán mensajes a otras clases)

2 Para cada mensaje: determinar la clase colaboradora y laoperación correspondiente en el objeto servidor

3 Para cada operación en el objeto servidor: determinar losmensajes que transmite

4 Para cada uno de estos mensajes: determinar el siguientenivel de operaciones que son invocadas e incluirlas en lasecuencia inicial de prueba

M.I.Capel Tema 4 17/46

Page 19: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas para múltiples clases

EjemploLa prueba de partición para múltiples clases es similar a lade 1 claseAhora, la secuencia es ampliada para que incluya lasoperaciones que se activan en las clases colaboradoras,después de recibir los mensajes:

secuencia paraBanco : verificarCuenta() · verificarPIN() ·[[verificarPolitica() · peticionReintegro()]|peticionIngreso()|inforCuenta()]Una secuencia aleatoria:Test 3:verificarCuenta() · verificarPIN() · peticionIngreso()Secuencia con colaboraciones:Test 4:verificarCuenta() · [Banco : InformacionValidacion.inforCuenta()]·verificarPIN()[Banco : InformacionValidacion.validarPIN()]·peticionIngreso()[Banco : Cuenta.deposito()]

M.I.Capel Tema 4 18/46

Page 20: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diagrama de Colaboración de Clases

M.I.Capel Tema 4 19/46

Page 21: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Pruebas derivadas de los modelos–UML decomportamiento

Diagramas Estados–UML

Se utilizan para representar el comportamiento dinámicode una claseAhora, lo usamos para derivar una secuencia de pruebasque ejercite el comportamiento dinámico de la clase y suscolaboradorasLos tests diseñados han de incluir todos los estados deldiagrama–UMLEl modelo de estados puede ser atravesado de formabreadth–first

M.I.Capel Tema 4 20/46

Page 22: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas Basadas en FallosPruebas AleatoriasPruebas de ParticiónPruebas de IntegraciónPruebas que Implican Múltiples Clases

Diagrama de Estados para la ClaseCuentaCorriente

M.I.Capel Tema 4 21/46

Page 23: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas para Aplicaciones Web

AntecedentesSe siguen los principios básicos y los pasos de la pruebasde software en general: unitarias, integración, regresión,etc.Se aplican las tácticas de la prueba de software OOLo que se quiere llegar a probar:

Exclusión de errores de navegaciónPreocupación por la usabilidadCompatibilidad con diferentes plataformas yconfiguracionesConfiabilidad (= seguridad+robustez+fiabilidad+disponibilidad)Rendimiento

M.I.Capel Tema 4 22/46

Page 24: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas para Aplicaciones Web (II)

M.I.Capel Tema 4 23/46

Page 25: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas para Aplicaciones Web III

Pasos del Proceso de Prueba1 Revisar el modelo de contenidos2 Comprobar que todos los casos de uso son tratados en el modelo de interfaz3 Descubrir cualquier error de navegación en el modelo de diseño4 Exclusión de errores de la mecánica de navegación o de la presentación en la

interfaz de usuario5 Prueba unitaria de cada componente fucnional6 Navegación a través de toda la arquitectura software de la aplicación7 Tests de compatibilidad con plataformas y configuraciones8 Pruebas de seguridad, exclusión de vulnerabilidades de la aplicación o de su

entorno9 Tests de rendimiento

M.I.Capel Tema 4 24/46

Page 26: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Contenidos

CaracteríticasCombina las revisiones con la generación de pruebasejecutablesObjetivos:

Descubrir errores sintácticosErrores semánticosErrores en la organización de la página o en la estructurade los contenidos que se presentan al usuario

M.I.Capel Tema 4 25/46

Page 27: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Contenidos IISemántica

¿La información que se presenta es precisa?¿Es el diseño de los contenidos fácil de comprender?¿La información embebida en el contenido es fácil deencontrar?¿Las referencias y fuentes son las apropiadas?¿Infringe algún (c) o marcas registradas?¿Contiene enlaces internos que complementan loscontenidos?¿Coordina estéticamente el estilo del contenido con elresto de la interfaz?

M.I.Capel Tema 4 26/46

Page 28: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Interfaz entre Aplicación Web–SGBD

CaracterísticasDescubrir errores producidos en la traducción de laspeticiones del usuario al lenguaje de consulta del SGBDIdentificar errores de comunicación entre laaplicación–Web y la BD remotaDemostrar la validez de los datos sin formato recibidos porel servidor de la aplicación WebLos contenidos dinámicos han de ser transmitidos alcliente de una forma que puedan ser mostrados(comprobar compatibilidad con diferentes plataformas yconfiguraciones del usuario)

M.I.Capel Tema 4 27/46

Page 29: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Capas de Interacción entre Aplicación y Base deDatos

M.I.Capel Tema 4 28/46

Page 30: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de la Interfaz de Usuario

Ubicación en el ciclo de vidaDurante el Análisis de RequerimientosDurante el DiseñoDurante la Prueba del SoftwareSe trataría de descubrir errores relacionados conmecanismos específicos de la interfazy los errores relacionados con la semántica de lanavegación, funcionalidad de la aplicación Web ocontenidos mostrados

M.I.Capel Tema 4 29/46

Page 31: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de la Interfaz de Usuario (II)

ActividadesProbar mecanismos de la InterfazComprobación de cookies en el lado del servidor y delclientePrueba de la Semántica de la InterfazPruebas de UsabilidadPruebas de Compatibilidad

M.I.Capel Tema 4 30/46

Page 32: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas a Nivel de Componentes

ConceptoTambién se llama prueba de funcionalidad: un conjunto detests que intentan descubrir errores en las funciones de laaplicaciónCada función es un componente software y puede serprobado utilizando técnicas de caja negraSe pueden automatizar utilizando formularios

M.I.Capel Tema 4 31/46

Page 33: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas a Nivel de Componentes (II)

Métodos de diseño de pruebas concretasParticionamiento en equivalenciasAnálisis de valores fronteraPrueba de caminos (técnica de caja blanca)Prueba de error forzado, para descubrir errores queocurren durante el tratamiento de erroresCada prueba específica de este tipo especifica todos losvalores de entrada y la salida esperada que elcomponente ha de proporcionar

M.I.Capel Tema 4 32/46

Page 34: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Navegabilidad

AntecedentesSe trata de asegurar que los mecanismos que permiten alusuario navegar a través de la aplicación Web son todosfuncionalesValidar que cada unidad semántica de navegación (NSU)puede ser alcanzada por la categoría adecuada deusuariosSe hacen pruebas de Sintaxis de Navegación y de suSemántica

M.I.Capel Tema 4 33/46

Page 35: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Sintaxis

Enlaces de navegaciónRedireccionesMarcas de libro (bookmarks)Frames y framesetsTabla de contenidos de sitioMotores de búsquedas internos

M.I.Capel Tema 4 34/46

Page 36: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Semántica

Definición de NSUUn conjunto de información y estructuras de navegaciónrelacionadas que colaboran para que se puedan satisfacerun subconjunto relacionado de requerimientos del usuario

M.I.Capel Tema 4 35/46

Page 37: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Semántica II

La prueba de navegabilidad ejercita cada NSU paraasegurarse que los requerimientos se alcanzan:

¿Todos los nodos de navegación se alcanzan desde elcontexto definido para un NSU?¿Todos los caminos importantes hacia/desde el NSU sehan probado?¿Funcionan adecuadamente los mecanismos denavegación dentro de los nodos de navegación grandes?¿Son los NSU tolerantes a fallos y errores?

M.I.Capel Tema 4 36/46

Page 38: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de ConfiguraciónTipos de pruebas

Pruebas específicas de configuración en el lado delservidor para probar que puede soportar a la aplicaciónWeb sin errores ni pérdida inaceptable de rendimientoPruebas en el lado del cliente: compatibilidad conconfiguraciones que contienen los siguientescomponentes:

hardwareSistemas operativosNavegadoresComponentes (activos) en la intefaz de usuarioPlugingsConnectividad

M.I.Capel Tema 4 37/46

Page 39: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Seguridad

Tipos de amenazasDesde el cliente: errores en navegadores, correoelectrónico, software de comunicaciones, acceso acookies, spoofing(suplantación)Desde el servidor: ataques de denegación de servicio,scripts maliciosos, robo de datos

M.I.Capel Tema 4 38/46

Page 40: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Elementos de Seguridad

FirewallsAutenticación de todos los clientes y servidoresEncriptación (y certificados digitales)AutorizaciónLas pruebas de seguridad ha de diseñarse para probarque todas las tecnologías anteriores funcionan; se intentadescubrir agujeros de seguridad

M.I.Capel Tema 4 39/46

Page 41: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Rendimiento

ProblemáticaSe utilizan para descubrir problemas que pueden llevar a lafalta de recursos del lado del servidor, ancho de bandainadecuado, capacidades de bases de datos maldimensionadas, funcionalidad pobre de la aplicación Web,problemas con el sistema operativo, etc.

M.I.Capel Tema 4 40/46

Page 42: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Pruebas de Rendimiento II

Objetivos1 Comprender cómo responde el sistema a una situación de

carga creciente: número de usuarios, transacciones,excesivo volumen de datos

2 Reunir métricas que nos ayuden a diseñar modificacionespara mejorar el rendimiento

M.I.Capel Tema 4 41/46

Page 43: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de Carga

ConceptoExamina la carga que puede experimentar el sistema en elmundo real, a varios niveles y en una variedad decombinacionesPrueba de Stress: fuerza el incremento de la carga hastael punto de ruptura del sistema para determinar lacapacidad máxima que puede aguantar

M.I.Capel Tema 4 42/46

Page 44: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de Carga II

Conjunto de condiciones del test:N: número de usuarios concurrentes de la aplicación–WebT: número dede transacciones en línea por unidad detiempoD: datos procesados por el servidor por transacción

Prueba instantáneaDeterminar si una combinación de las tres medidas (N, T, D)puede asociarse a un decrecimiento importante delrendimiento en un momento:

Throughput = N × T × D (1)

M.I.Capel Tema 4 43/46

Page 45: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de Stress

CondicionesLas variables N, T, D de la prueba de carga son obligadas allegar a los límites operacionales del sistema y, después, aexcederlos

M.I.Capel Tema 4 44/46

Page 46: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Prueba de Stress (II)

Cosas a Determinar¿Se degrada el sistema suavemente?¿El software del sistema genera mensajes server notavailable ?¿Almacena peticiones de los usuarios y deja vacía la colauna vez que se supera el ímite?¿Se pierden transacciones?¿Qué valores de N, T, D ocasionan que el servidor falle?¿La integridad de los datos se ve afectada?¿Cuando tardará el sistema en recuperarse?

M.I.Capel Tema 4 45/46

Page 47: Software Testing (2)

Estrategias de Prueba para Software Orientado a ObjetosEstrategias de Prueba para Aplicaciones Web

Pruebas de ContenidosPrueba de Bases de DatosPrueba de Interfaz de UsuarioPruebas de ComponentesPruebas de NavegabilidadPruebas de Configuración y SeguridadPruebas de Rendimiento

Para ampliarBlack (2007).Pragmatic Software Testing.Wiley.

Everett and Raymond (2007).Software Testing.Wiley.

Lewis (2004).Software Testing and Continuous Quality Improvement.Auerbach.

Perry (2005).Effective Methods for Software Testing.Wiley.

Pressman, R. (2010).Software engineering: a practitioners approach.McGraw-Hill.

Spiller (2007).Softwre Testing Process: Test Management.Rocky Nook. M.I.Capel Tema 4 46/46