Cuestiones Generales- Ordenar las capacidades de aplicaciones web,
y herramientas que necesitamos para estas- Seleccionar el origen de las herramientas de
desarrollo- Considerar la categoría de la aplicación web
para la elección de herramientas y tecnología.
Ing. de software enfocada en lograr la cohesión de componentes, lograr un sistema simple de entender y mantener.
Para aplicaciones webs, se ordenan por separado (con respectivas aplicaciones):◦ Almacenamiento de contenido◦ Adaptación de contenido◦ Presentación y adaptación de la misma◦ Estructura y navegación de contenido◦ Funcionalidad.
¿Como separar las preocupaciones del impacto de herramientas y tecnologías?
Open Source, rápida evolución, carencia de soporte.
Herramientas y tecnologías propietarias, con soporte e implementación en ciclos lentos.
Tomar en cuenta si las herramientas:◦ Permite cumplir lo deseado◦ Calidad y extensión adecuadas◦ Ayudara ahora y en el futuro◦ Tiene soporte, documentación, y ayuda◦ El costo es parte del presupuesto
¿Cual tecnología – Open Source o Propietario?
La categoría de las aplicaciones Web define el tipo de tecnologías a aplicar.
Inicialmente de difusión de información. Mas compleja interacción de los usuarios,
Web 2.0(Folksonomies, Mashups, Social networking, wikis)
Mas parecidas a las aplicaciones de escritorio.
Disminuyen las limitaciones de usuarios y administradores.
¿Cual es el impacto de la aplicación de categorías en las Tecnologías de la Ingeniería Web?
Implementación de Herramientas y
TecnologíasSin fin de tecnologías en constante cambioNo intentar conocer todo, solo enfocar a las herramientas y tecnologías necesarias
Conjunto de librerías y/o componentes usados para implementar estructuras básicas de una aplicación, basado en lenguajes simples.
Los frameworks complejos cubren Mayoría basados en el modelo vista
controlador (MVC). Permiten separar la aplicación para ser
administrada por expertos. Seleccionado al inicio, porque influye en la
arquitectura.
¿Qué es la aplicación de Frameworks?
CMS permite administrar variedad de contenido por diversos usuarios en sistemas basados en Web.
Presentación, estadísticas, publicación y despliegue, seguridad, compatibilidad con diversas aplicaciones.
Algunos permiten control de capacidades.
¿Cómo los Sistemas de Gestión de Contenido y la tecnología de control de versiones son aplicados?
Indexación de contenido. Avanzada búsqueda, implica configuración
de la búsqueda, de la estrategia de indexado, y análisis de las búsquedas realizadas anteriormente.
¿Qué pasa si la capacidad de búsqueda debe ser aplicada en nuestra aplicación Web?
Herramientas y Tecnologías de desarrollo
Variedad de herramientas de desarrollo web, pero de bajo nivelHerramientas adaptadas de convencionales, para software, no cubren las características especiales de las aplicaciones Web.
Son pocas las orientadas específicamente para aplicaciones Webs.
Herramientas limitadas, estructuras básicas.
Muchos sin habilidad de modelar procesos de negocios, casos de uso o escenarios.
Herramientas de generación de documentación y código, requieres ciertos ajustes finales.
¿Puedo adquirir herramientas que me ayuden con la actividad de modelado?
La mayoría de pruebas son de implementación, pocas de especificación y diseño.
Categorías: Validación de:◦ Lenguaje◦ Navegación◦ Rendimiento y carga◦ Plataforma y entorno◦ Funcionabilidad y análisis◦ Usabilidad.
Muchas de las mismas utilizadas antes de lanzar las aplicaciones al mercado, o para buscar errores que se presenten.
¿Existen herramientas de testeo que se enfoquen específicamente en aplicaciones Webs?
Pocas herramientas que directamente soporten los procesos de ingeniería web (formulación, calidad, costo, etc.)
La mayoría de desarrolladores web combinan herramientas generales para proyectos, y las configuran para dicha tarea.
¿Hay herramientas que puedan asistirme con la administración de los procesos de Ingeniería Web
Herramientas para su uso, pocas para modelado de aplicaciones web, o para el desarrollo
Separa preocupaciones y encontrar herramientas para cada una
El origen de la herramienta que se usara Considerar la categoría de la pagina para definir
las herramientas y tecnología que se usara. Determinar el modelado formal, testeo, y
mantenimiento de los procesos. Una metodología ágil y sin problemas.
Capitulo 15 - Testeo en Aplicaciones Web
Fuente:Libro: Web Engineering: A Partitioner’s Approach , 6ta EdiciónAutor: Roger S. Pressman y David LoweCap: 15 (Testing Web Apps)
Edwin O. Ramos VelásquezUniversidad Nacional Jorge Basadre
GrohmannMaestría en Ingeniería de Sistemas
Definiciones previas- Dimensiones de la calidad- Típicos errores en web- ¿Usar estrategias en el testeo?
Definiciones PreviasDIMENSIONES DE LA CALIDADLa calidad de una aplicación web es consecuencia de un buen análisis y diseño de la solución. Las complejidad de las aplicaciones así como sus componentes críticos deben ser evaluados sin descuidar ambos aspectos.
• Contenido, Se evalúa semántica y sintácticamente. En el nivel sintáctico se evalúa La ortografía y la gramática de los textos expuestos(errores ortográficos). En el nivel semántico se evalúa la consistencia de la información presentada, así como el cuidado de la relación de los objetos mostrados en pantalla(estética).
• Funcionabilidad: Cada funcionalidad es verificada, así como la respectiva existencia de posibles inestabilidades.
• Estructura. La conformidad del soporte que la aplicación web le al contenido mostrado
• Usabilidad. Con la interfaz existente el usuario le puede dar el correcto uso a la aplicación web?
• Navegabilidad. Toda la sintaxis y semántica de la web pueden ser usados para evitar errores de navegación. P.e. identificación de enlaces muertos, etc.
• Rendimiento. Se verifica su correcto desempeño en las diferentes configuraciones y en las situaciones de carga plena.
• Compatibilidad. Se verifica su funcionamiento en escenarios diferentes. Por ejemplo, en hosts diferentes.
• Interoperabilidad. La aplicación web interactúa adecuadamente con otras aplicaciones, como ser por ejemplo con la base de datos u otras aplicaciones?
• Seguridad. Se verifica su comportamiento ante posibles vulnerabilidades.
TÍPICOS ERRORES DE LAS APLICACIONES WEB• Scripting en el lado del cliente, • Errores en la arquitectura de capas que no puede ser fácilmente detectado, Navegación, pruebas de
rendimiento, etc.
¿ES NECESARIO EL USO DE ESTRATEGIAS DE TESTEO?• Revisar el modelo de contenido de la aplicación web.• Revisar el modelo de interfaz, para asegurar que todos los casos de uso han sido considerados.• El modelo de diseño de la aplicación web es revisado para descubrir los errores de navegación.• En la interfaz de usuario se verificar errores en la presentación y / o de navegación manual.• Verificar los componentes funcionales por unidades.• Navegación a través de la arquitectura.
¿Planificación en las estrategias de testeo?Es razonable. Ocasionalmente es posible hallar más errores en las pruebas adhoc.
Planificación de la prueba ¿Cuánto es necesario?
Lo razonable. Solamente se podría justificar la minimización de pruebas de verificación en sistemas pequeños.
Objetivo de las pruebas: Detectar errores para corregirlos
Nivel sintáctico: Ortografía y el buen uso del idiomaEn documentos de texto e imágenes/multimedia
Nivel Semántico: Consistencia de la información presentada
• ¿Es la información actualizada y precisa los hechos?• ¿Está la información concisa y al grano?• ¿Es el diseño de los objetos de contenido fácil para el usuario de entender?• ¿Puede la información incluida en un objeto de contenido se encuentra con facilidad?• Tener las referencias adecuadas ha proporcionado toda la información procedente de
otros fuentes?• ¿Es la información que se presenta internamente consistente y coherente con la
información se presentan en objetos de otros contenidos?• ¿Puede el contenido debe interpretarse como ofensiva o engañosa, o se abrir la
puerta a un litigio?• ¿El contenido infringe los derechos de autor o marcas existentes?• ¿El contenido contiene enlaces internos que complementan el contenido ya
existente?• ¿Son los vínculos correctos?• ¿Tiene el estilo estético de los contenidos conflicto con el estilo estético de la
interfaz?
Objetivos del testeo de contenidos
Objetivo de las pruebas: Detectar errores en los contenidos de la aplicación web
En muchas aplicaciones web el contenido es dinámico. Y mucho de lo que se construye e implementa depende del contenido de la base de datos, y la construcción de objetos se hace en tiempo real. Por lo cual puede decirse que la BD esta estrechamente ligada a la presentación web.
¿Que tipo de errores de contenido podrían estar relacionados con una base de datos? Pressman menciona la no coincidencia de la información visualizada con la existente en
BD
Es necesario validar el contenido de la Base de Datos?
500
300250
A1 A2 A3
A1
A2
A3
250 400 500
AgenciaAño Contable
Total2008 2009 2010A1 110 180 210 500A2 130 200 50 380A3 80 90 80 250
Extrañas divergencias entre gráficos que supuestamente presentan la misma información
Si este caso se presentare, podríamos corregir el error, ¿porque?... Pues porque lo podemos detectar visualmente
Cuando la información no es mostrada en una interfaz gráfica al usuario.Ejemplo: Cuando usted retira información del cajero automático puede visualizar gráficamente la información: Saldo = Saldo – Retiro
Cuando la Base de datos esta localizada en una estación remota, diferente a la que aloja la aplicación web.La comunicación de estación a estación es crítica, un problema de comunicación podría afectar la coherencia de la data
La aplicación Web recibe información de la BD, y la transforma para su transmisión hacia el cliente.
Validación de la BD (1)
WebApp
BD
WebApp
BD
Host A Host B
DataData con formato
Lógica web
WebApp
BD
Host A Host B
Data
1
2
3
Compatibilidad el objeto de datos con formato, con las diferentes configuraciones del cliente
Validación de la BD (2)
WebApp
BD
Host A Host B
DataObjetos con Datos
4
Cliente modo
X
Cliente modo Y
Cliente modo
Z
Los objetos de datos con formato deberían poder desempeñarse adecuadamente con cualquiera de las distintas configuraciones de los clientes
En resumen:En resumen, validamos:• Información transferida en la comunicación cliente/servidor• Ejecución de Scripts en la WebApp.• Transferencia de información formateada• Comunicación adecuada con el Servidor de datos
Interfaz de Usuario
WebAppTransformación de datos
Administrador de datos
Acceso a Datos
Base de Datos
La interfaz se verifica y valida en dos fases del desarrollo de la aplicación: Diseño: Comunicación, modelado y diseño propiamente dicho Implementación: validación del comportamiento y funciones. Se
verifica la sintaxis, semántica, la facilidad de uso, etc.
Se verifica en una interfaz: Mecanismos de interfaz: aspectos netamente de la interfaz,
funcionamiento de enlaces (navegabilidad), Ingreso de datos.
Se verifican aspectos funcionales: Funcionalidad de la interfaz, navegabilidad de acuerdo a las especificaciones, etc.
Hay estrategias viables para validar la interfaz de usuario?
Evalúa qué tan bien el diseño se hace cargo de los usuarios, ofrece una dirección clara, ofrece retroalimentación, y mantiene la coherencia del lenguaje y el enfoque.
Se pueden usar los modelos de diseño y/o casos de uso concebidos en el diseño
Además, la prueba de la serie debe incluir la selección del menú y el uso indebido enlace. La intención es
determinar si la aplicación web proporciona el manejo de errores y recuperación eficaces.
Cómo realizamos las pruebas semánticas de la interfaz?
Links: ¿funcionan? Scripts del cliente: Codigo ejecutable en el lado del cliente que se encarga de ingreso
de datos (VBScript, JavaScript, html) Forms: Los datos corresponden a los campos de datos? Html dinámico: ¿adecuada relacion con las archivos de estilo CSS, y scripts? Menus pop-up: ¿los menus se presentan adecuadamente? Scripts del lado del Servidor: php, java, asp Links de descarga Cookies. Se almacenan y destruyen según corresponde (autenticaciones, etc.). Mecanismos de
interfaz, ej. Carrito
de compras, etc.
Mecanismos de interfaz
Cookies de seguridad
Ventana que lee cookies
Ventana que graba y destruye cookies
¿Cómo podemos probar mecanismos específicos de la interfaz de la interfaz?
¿Funcionan los botones? ¿Las imágenes se muestran adecuadamente?
Reglas generales de diseño: tipo de letra, colores, marcos, imágenes, plantillas, etc.
Reglas individuales por interfaz (por c/u). Similar a la prueba de una unidad. La interfaz se verifica a plenitud. Scripts, html, lógica de aplicación, etc.
Integración de interfaces. Se verifican que las interacciones o casos de usos de cumplan
Prueba integral de la aplicación. Se verifican todos los casos de uso en los que intervienen las interfaces.
Prueba de compatibilidad: se verifica la correcta ejecución de la WebApp en diferentes entornos y/o navegadores web. También se verifica el adecuado funcionamiento con las configuraciones diversas.
Puntos a considerar en una estrategia de pruebas
Index.html
Page1.php Page2.php Page3.php Page4.php
Page7.phpPage6.php
Page5.php
Page9.phpPage8.php
Indicadores para evaluar el proceso de testeo
UsabilidadCompatibilidadNavegabilidadConfiguraciónSeguridadPerformance (rendimiento)
Consiste básicamente en: «Pruebas de usuarios de interfaz». Debemos determinar que tan bien se adapta la interfaz al usuario tratamos de responder a la pregunta ¿La interfaz puede usarse correctamente? ¿No habrán mensajes que se presten a confusión?
Medir usabilidad es básicamente medir si la WebApp cubre las necesidades del usuario
En las pruebas de usabilidad deben participar los usuarios finales.
Se sugieren los siguientes pasos:◦ Definir un conjunto de objetivos/metas de la evaluación◦ Definir un conjunto de pruebas (testeos) para cada uno de los objetivos/metas
definidas previamente.◦ Registrar (anotar) los sucesos ocurridos en la interacción de los usuarios con la
aplicación web◦ Desarrollar los indicadores de evaluación de usabilidad para la WebApp. Reducir al
mínimo las medidas subjetivas y/o apreciaciones subjetivas.
Usabilidad
Constantine, L., “What Do Users Want? Engineering Usability in Software,”Windows Tech Journal, December 1995, www.foruse.com. (accessed August 13, 2007).
Usabilidad: indicadores
Indicadores de usabilidad para una Web App- ¿Fácil de usar?- ¿Fácil de entender?- ¿Predecible?
La WebApp debe operar dentro de los ambientes que se diferencien entre sí. Los diferentes parámetros de compatibilidad a consideran deberían ser:
arquitectura de ordenadores, dispositivos de pantalla, sistemas operativos, navegadores, y de la red, resoluciones de pantalla, velocidad de conexión
Algunos navegadores, tales como Internet Explorer suelen exceder a las normas estándar del World Wide Web Consortium (W3C).
Los navegadores, ocasionalmente producen distintos resultados a un mismo código html.
Las pruebas de compatibilidad consiste en la verificación del mismo comportamiento cuando varían todas esas características de los dispositivos hardware y software que sirven de plataforma de alojamiento a las aplicaciones web.
Compatibilidad
El World Wide Web Consortium, abreviado W3C, es un consorcio internacional que produce recomendaciones para la World Wide Web las mismas que son consideradas Estándares en Web.
Es el conjunto de pruebas orientadas a descubrir errores en las funciones de la WebApp. Particiones equivalentes: el dominio de la entrada de datos se subdivide en categorías
Análisis de valores límites. Los formularios de datos son sometidos a valores críticos y/o extremos y se verifica su comportamiento
Ruta de prueba. Si la funcionalidad es compleja, se diseñan pruebas secuenciales que permitan verificar el cumplimiento de todos las bifurcaciones posibles de acciones de los componentes
Funcionabilidad: Pruebas de las funciones de la aplicación
WebApp
BD
Lógica web1Nombre: JuanEdad: 25
Nombre: LuisEdad: 45
Categoría 1
Categoría 2
WebApp
BD
Lógica web1Nombre: A?xz4Edad: 180
Nombre: LXT%aEdad: 0
Categoría 1
Categoría 2
Nombre: A?xz4Edad: 180
Nombre: LXT%aEdad: 0
Caso 1
Caso 2
Page1.php
Page1.php
Page2.php
Page2.php
Page3.php
Page4.php
¿infoX?
¿infoX?
¿infoY? ¿infoZ?
¿infoY? ¿infoZ?
La primera fase del testeo de navegabilidad se produce en la verificación de la interfaz, donde se verificaron links, redireccionamientos, frames, etc.
El diseño de la navegabilidad consiste básicamente en agrupar contenidos para ser explorados (Pressman los llama Unidades de Navegación Semantica o NSU). Estas NSU son un conjunto de rutas de navegación, agrupadas en base a la relación de la información que representan.
El equipo de desarrollo Web debe verificar: ¿Hay errores en los NSU? ¿Se accesa adecuadamente a cada Nodo de navegación (NSU)? ¿Existe un mecanismo (que no sea la flecha hacia atrás del navegador) para volver al nodo de
navegación anterior y al inicio de la ruta de navegación? ¿Existen mecanismos para la navegación dentro de un gran nodo de navegación (por ejemplo,
el ancla de enlaces junto a una página Web de longitud) funciona correctamente? Si una función se va a ejecutar en un nodo y el usuario elige no proporcionar de entrada,
puede bloquearse el acceso al resto de la NSU? Si una función se ejecuta en un nodo y se produce un error en el procesamiento de la función,
puede ser completado el NSU? ¿Hay alguna manera de interrumpir la navegación antes de que todos los nodos hayan sido
alcanzado, pero luego regresar al lugar donde la navegación se suspendió y proceder a partir de ahí?
Es accesible cada nodo del mapa del sitio web
Navegabilidad
Se refiere a las modificaciones en los parámetros de configuración de la WebApp, en donde, se considera los de la plataforma de alojamiento de la misma.
Aquí mencionamos algunas de las preguntas a dilucidar en esta sección: Es la aplicación web totalmente compatible con el sistema operativo del servidor? ¿El sistema de archivos, directorios, y datos relacionados estará disponible para
correctamente cuando la aplicación web esté en funcionamiento? ¿Las medidas de seguridad del sistema (por ejemplo, firewalls, o cifrado) no
interfieren con la correcta ejecución de la Aplicación web, ni con su rendimiento? ¿Los scripts del lado del servidor se ejecutan correctamente?
Configuración
Las pruebas de seguridad son complejas. Las consideraciones son: Hackers: por ejemplo bloqueos de la pagina web empresarial, corrupción de la data,
etc. Empleados descontentos Competidores deshonestos
Los puntos comúnmente considerados son: Firewalls o cortafuegos. Es un mecanismo de hardware y software que verifica
cada paquete de datos para asegurarse que su origen es de fuentes confiables. Autenticación. Verificación de todos los clientes y servidores que permite la
comunicación solo cuando ambas partes estén plenamente identificadas. Autorización. Autorización de acceso al sistema en los niveles que correspondan
solamente a los debidos usuarios registrados. Cifrado de la data. Sistemas de codificación que permiten proteger la
confidencialidad de la información.
En lo relativo a performance verificamos características tales como: velocidad de respuesta, salidas adecuadas a fallos del sistema, etc.
Seguridad y Performance
Las pruebas de rendimiento están diseñados para simular situaciones del mundo real de carga. A medida que el número de usuarios simultáneos aplicación web crece, o el número de transacciones en línea aumenta, o la cantidad de datos (descarga o subida) aumenta, el rendimiento prueba le ayudará a responder las siguientes preguntas:
¿El tiempo de respuesta del servidor degenera hasta el punto donde es notable e inaceptable?
¿En qué momento (en términos de usuarios, transacciones, o la carga de datos) el rendimiento ha llegado a ser inaceptable?
¿Qué componentes del sistema son responsables de la degradación del rendimiento? ¿Cuál es el tiempo medio de respuesta para los usuarios en una variedad de
condiciones de carga? ¿La degradación del rendimiento tiene un impacto en la seguridad del sistema? ¿Es la fiabilidad o exactitud de la aplicación web afectada cuando la carga del sistema
crece? ¿Qué ocurre cuando se aplican cargas mayores a las de la capacidad máxima del
servidor? ¿Cuál es el impacto de los malos resultados en los ingresos de la compañía?
Seguridad: ¿Cuáles son los objetivos de las pruebas de rendimiento?