martes, 23 de octubre de 2012

Evaluación de Pruebas

EVALUACIÓN DE PRUEBAS


  • Debemos tomar en cuenta que cuando una prueba ya se realizó –ya se obtuvieron resultados– eso no implica que ya concluyó, el ciclo de vida de pruebas se concluye con la evaluación, en donde se especifica la comparación entre los resultados esperados y los obtenidos con la prueba determinando si ésta fue o no exitosa.

JMeter

  • Los reportes generados con JMeter nos proporcionan información que podemos agrupar en tablas o cuadros comparativos o en un resumen respecto a lo que arrojaron las pruebas efectuadas, indicando cuál fue el objetivo.

Tipos de Resumenes

JMeter proporciona un resumen de los reportes que se generaron. Éstos pueden ser de tres tipo:

  • Un resumen de las pruebas realizadas.


  • Una estadística de cada llamada.

  • Todos los componentes que se llamaron.

Mètricas

  • Se debe tener métricas de calidad establecidas para calcular las cifras y hacer la comparación con los resultados arrojados por las pruebas elaboradas con la herramienta.

Pruebas Cliente-Servidor


Un aspecto que debes de tomar en cuenta es que la arquitectura del software afecta el rendimiento, la robustez y el mantenimiento del software a desarrollar
 Retomando lo observado en Programación web, recordemos que una arquitectura cliente-servidor es una manera de organizar el sistema, en el cual se tiene, por un lado, un conjunto de servicios y servidores; por otro lado, un conjunto de clientes que utilizan y acceden a los servicios.
Los componentes principales son el cliente, el servidor y la red de comunicación de la arquitectura cliente- servidor.
 Los clientes pueden conocer los nombres de los servidores y los servicios asociados, en cambio para los servidores no es indispensable conocer a los clientes.  El protocolo a usar es http.
Las pruebas se deben realizar al servidor, a la base de datos y a las comunicaciones.
·         En el servidor se comprueban las funciones de coordinación y administración de datos, así como su desempeño en cuanto a tiempo de respuesta y procesamiento completo de datos.
·         En la base de datos se comprueban la exactitud e integridad de los mismos; se inspeccionan las transacciones. También debemos cerciorarnos de que se guardan, modifica y recuperan los datos
·         En las pruebas de comunicación de red hay que verificar la comunicación entre los nodos, el paso de mensajes, transacciones y que el tráfico de la red se efectúe sin errores. “Para las Comunicaciones, hay que incluir algunas cuestiones:
JMeter es ApacheJakarta. Se puede usar para pruebas de carga; es una herramienta para analizar y medir el funcionamiento de varios servicios. También se puede emplear para las pruebas de unidad para JDBC, conexiones de la base de datos, Ftp, LDAP, Webservices, JMS y conexiones genéricas del TCP.
Conclusión:
Las pruebas que se elaboran en cliente-servidor, son de gran importancia, puesto que, forman parte del ciclo de vida del software y mediante las distintas herramientas que se nos son proveídas por el protocolo HTTP; tales como el JMeter y las herramientas de edición en XML –y cumpliendo con los requisitos que las mismas demandan- , podemos detectar errores en nuestro código para así proceder a corregirlos y posteriormente, asegurar la calidad de nuestro software y como consecuencia de esto, asegurar la satisfacción del cliente.

Manual de pruebas


Un manual es una guía para resolver dudas comunes. Nos explica cómo realizar o desarrollar cierta actividad.
Deben ser elaborados por la misma empresa ya que posteriormente se van requerir para la capacitación del personal o simplemente para salir de alguna duda.
Nos va a permitir hacer ágil el desarrollo de nuestro proyecto, pues tendremos una guía de cómo hacer las pruebas adecuadamente o seguir un proceso paso a paso.
Apache JMeter es una herramienta de carga diseñada para realizar Pruebas de Rendimiento y Pruebas Funcionales sobre Aplicaciones Web. Hoy en día su arquitectura ha evolucionado, ahora no sólo puede llevar a cabo pruebas en componentes típicos de Internet (HTTP), sino también puede realizar pruebas sobre Bases de Datos, scripts Perl, servlets, objetos java, servidores FTP y prácticamente cualquier medio de los que se pueden encontrar en la red.
La mejor forma de desarrollar un manual es llevar un orden en su estructura por lo cual se requieren los siguientes puntos:
·         Nombre del manual
·         Logotipo de la empresa
·         Nombre de la empresa
·         ID del documento
·         Lugar y fecha de la elaboración
·         Número de revisión
·         Nombre de quien lo elaboró
·         Nombre de quien lo revisó y autorizó
·         Tabla de contenidos
·         Introducción
·         Objetivo
·         Desarrollo
·         Glosario de términos
·         Bibliografía


Conclusión:
El Plan de Pruebas es una parte fundamental en la fase de pruebas con base a que está es una guía de lo que se debe hacer, asimismo el diseño de un proceso para determinar los pasos a seguir para conseguir un resultado determinado.
El manual siempre será indispensable en nuestra área de trabajo ya que pueden surgir dudas que podremos aclarar con él. También nos puede servir para capacitar al personal. 

Error e Incidencia


Error: Forman parte de los “Artefactos y entregables” para la automatización de pruebas. Un error es algo equivocado o desacertado. Puede ser una acción, un concepto o una cosa que no se realizó de manera correcta.
Tipos de errores:
  • ·         De sintaxis (sintácticos).
  • ·         De ejecución.
  • ·         De lógica (lógicos).

Depuración o Debugging:
Es el proceso para encontrar y reducir los errores, en este proceso se lleva a cabo la detección de las causas que provocan los errores a partir de los resultados dados al aplicar las pruebas.
Cuando se detecta un error es necesario realizar un archivo donde se deben registrar los datos que sirven para evidenciar que las pruebas se han realizado adecuadamente y se han detectado errores
Incidencia: El primer objetivo de la gestión de incidentes es recuperar el nivel habitual de funcionamiento del servicio y minimizar en todo lo posible el impacto negativo en la organización de forma que la calidad del servicio y la disponibilidad se mantengan.
El proceso habitual para encontrar incidentes es:
  • ·         Detección y registro del incidente.
  • ·         Clasificación y soporte inicial.
  • ·         Investigación y diagnóstico.
  • ·         Resolución y recuperación.
  • ·         Cierre del incidente.
  • ·         Monitorización, seguimiento y comunicación del incidente.

Conclusión:
Básicamente seria que el error es a causa de una falta humana, entonces siempre existirán errores por el hecho de que los programadores son humanos, entonces siempre existirán incidencias, que se necesitaran registrar, para llevar a cabo el proceso de depuración que es el cual le dará calidad al software.

Plan de Pruebas


Tema 1 Plan de pruebas
Un plan de pruebas sirve para definir hasta dónde abarcará el proceso de calidad, cuáles son los objetivos a cumplir, las personas y recursos con los que se debe contar, las fechas de entrega y los responsables de cada fase del proceso; en él se basa todo el equipo de pruebas.
También es necesario determinar qué software se debe utilizar para realizar cada prueba e indicar las herramientas a utilizar para cada una de ellas: se deben describir en la sección “descripción de pruebas”.

·         Las herramientas pueden ser:

·         El diseño de casos de prueba.
·         Registro y reporte de defectos (vistos en la unidad de aprendizaje Técnicas de administración de calidad).
  • ·         Check list. 
  • ·         Gráficas. 
  • ·         Métricas.

El propósito del plan de pruebas es reunir la información necesaria para planear y controlar el esfuerzo de pruebas al sistema. Describe el enfoque de las pruebas de software, y es el plan de alto nivel generado y usado por los administradores del proyecto para dirigir el esfuerzo de pruebas.
El documento debe contener:
  • ·         OBJETIVOS
  • ·         PROPOSITO
  • ·         ALCANCE
  • ·         ABREVIACIONES, DEFINICIONES Y ACRÓNIMOS
  • ·         REFERENCIAS
  • ·         GENERALIDADES


Así se diseña el proceso de pruebas y estos son los tipos:
·         Prueba Funcional: identifica que el sistema cumpla con los requerimientos definidos
·         Prueba de Interfaz de Usuario: Verifica la interacción con el software, asegurando que el usuario cuenta con el acceso y navegación adecuada para las funciones de la aplicación.

·         Pruebas de rendimiento:  verifica el desempeño de la aplicación para cumplir con los requerimientos establecidos
·         Pruebas de carga: verifica la funcionalidad del sistema, en diferentes situaciones de carga de trabajo esperada o más allá del límite.
·         Pruebas de estrés: verifica la funcionalidad del sistema bajo condiciones de recursos que no se presentan de manera normal.
·         Pruebas de control de acceso y seguridad: Pruebas de niveles de acceso a la aplicación, a fin de verificar que el nivel de acceso es adecuado para los datos o funciones de negocio, según se requiera.
·         Pruebas de falla y recuperación: Permiten asegurar que el sistema es capaz de recuperarse ante una falla de software o hardware con la consecuente pérdida de integridad en los datos.
·         Pruebas de configuración: Verifican que la aplicación se comporta adecuadamente en diferentes plataformas de hardware o software para las cuales fue realizada.
·         Pruebas de Instalación: Verifica que la aplicación y sus actualizaciones sean instaladas adecuadamente.


Conclusión:
Un guión de pruebas no es más que la lista de los casos de prueba con los cuales vamos a experimentar.
Los casos de prueba dependerán del tipo de examen que apliquemos, pues cada prueba tiene un objetivo distinto. 

Ciclo de Pruebas


CICLO DE PRUEBAS




El ciclo de vida de la automatización comienza en la etapa de diseño del modelo de desarrollo en cascada del software, para plantear en principio los casos de prueba y elaborarlos en la herramienta correspondiente, concluyendo en la etapa de mantenimiento del software, de acuerdo a esta arquitectura, teniendo en consideración los requerimientos con su respectiva gestión.  




En cada desarrollo de software tenemos un ciclo de pruebas y varios ciclos de vida de las pruebas, lo cual, normalmente, está determinado por el modelo de desarrollo del software. En cada uno de estos ciclos se tiene  que planear, diseñar, ejecutar las pruebas, obtener resultados y evaluar estos resultados.






En el ciclo de prueba manual no hay variantes en cuanto a sus procesos, y en un proceso automatizado sí debido al uso de herramientas automatizadas podemos tener distintas pantallas, incluso orden u omisión de algunos elementos porque la herramienta así lo determina. 

Requerimientos de Prueba

Los requerimientos de prueba del software son todos los recursos que necesitamos para ejecutar una prueba. Para ello establecemos un ambiente de pruebas, en el cual se considera: software, hardware, configuración, personal y documentos.
Para una prueba es necesario tenerlos requerimientos del sistema, sobre todo los funcionales que son indispensables para diseñar los casos de prueba. 


Administración de Requerimientos


Para gestionar apropiadamente los requerimientos es necesario controlar y da un seguimiento a las pruebas. Con JMeter se pueden obtener distintos tipos de informes que de alguna manera nos permiten administrar lo que se está llevando a cabo.
En los informes que configuremos evaluaremos los resultados porque allí estarán reflejados, listos para ser analizados. 







Clientes de Prueba

Clientes De Prueba

El cliente de prueba deja a los usuarios establecer parámetros de prueba , mandar la entrada al servicio y observar la respuesta que este devuelve; provee un servicio de prueba sin dificultades cuando se mezcla con el servidor que proporciona el trabajo que se requiere.


Prueba de carga

 Esta es una de las pruebas que se puede realizar y donde podemos simular la petición de 50 usuarios al servidor, esto se lleva a cabo con una herramienta de software (JMeter)

  

Problemas que se pueden presentar

 

  • Interfaz grafica de usuario.
  • Entornos distintos atendiendo a las plataformas usadas.
  • Procesamiento distribuido.
  • Base de datos distribuida.
  • Relaciones de rendimiento. 

Otro enfoque para la aplicación de pruebas a esta  arquitectura es: probar en paralelo, en el cliente de prueba y en el servidor de prueba, sin ejecutar operaciones de red, probándose, de esta manera , la arquitectura completa debes tener en cuenta los métodos que tienes disponibles en los usuarios del paquete.


 

Errores más frecuentes de Interfaz 

  

Abusos de interfaces
Donde existen parámetros de tipo erróneo, en orden incorrecto o con numero de parámetros erróneos

Mal entendimiento de Interfaces

El comportamiento invocado no se comporta como se esperaba.
Errores de tipo

En sistemas de tipo real en el que se usa memoria compartida o una interfaz que pasa mensajes, la fuente de datos y el cliente de datos operan a distintas velocidades

 

JMeter puede simular peticiones de usuarios con parámetros  únicos para cada uno, como por ejemplo, el usuario y el pasword, los cuales son diferentes para cada usuario que inicia una sesión en la aplicación a través de un navegador.

Para que esto se lleva a cabo se debe  crear un archivo llamado users.xml, dentro de la carpeta “bin”  de JMeter. Así pues, la herramienta tiene elementos necesarios para llevar a cabo la simulación de peticiones, creando a nuestros  clientes de prueba.
 

Servidor de pruebas

Uno de los elementos necesarios en la arquitectura cliente-servidor, es el servidor. Paran realizar las pruebas del lado del servidor necesitamos crear un servidor de pruebas, el cual simulara el real.
 La herramienta se llama WAMP, y nos crea y habilita un servidor de pruebas, otra es XAMPP.