CAPÍTULO IV: DESARROLLO DE LA PROPUESTA II

             4.6.    Plan de implementación (Diagrama de Gantt).








              4.7.    Colocación de canaletas, cableado y gabinetes.



De acuerdo a la metodología analizada y una vez estudiado el terreno, podemos concluir que las canaletas los colocaremos a un metro por el estado del terreno.

Para los servidores hemos acondicionado un cuarto el cual tendrá los switch y el router en un ambiente más adecuado para el mejor rendimiento del área de trabajo.


             4.8.    Configuración del direccionamiento de red (IP).


Configuración de equipos para el switch 1


Configuración de equipos para el switch 2


                   4.9.    Configuración del Servidor y/o Configuración del Cliente








4.10. Configuración de los Servicios







4.11. Plan de pruebas y correcciones.

El contenido de este documento de plan de pruebas hace parte integral  de la metodologia de pruebas que se encuentra en el  capitulo 8 del documento general denominado “Plan de Proyecto”;  el contenido de estos dos (2) documentos se encuentran fundamentados en estándares de calidad que no solo permiten el seguimiento y correcciones a tiempo del software  sino que además se encuentra definido por etapas, facilitando el seguimiento y control de los procesos del proyecto en desarrollo y proporcionando a la  UNION TEMPORAL E-NOTIFICACIONES garantizar la operatividad y funcionalidad de la solución desarrollada.

Acorde con el enfoque del desarrollo de la solución, el plan de pruebas está basado en la  metodología de Rational Unified Process (RUP), lo que hace que este plan de pruebas tenga  como propósito establecer las técnicas, herramientas y  actividades relacionadas con la ejecución y validación de cada una de las prueas, incluyendo responsabilidades de cada una de las actividades, los recursos y los prerequisitos que deben ser considerados en el esfuerzo de cada una de las pruebas;  lo anterior permite garantizar el cumplimiento de los requerimientos planteados en el marco del  desarrollo del proyecto denominado “ SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”.


Este documento tiene como propósito establecer las técnicas, herramientas y actividades relacionadas con la ejecución y validación del plan de pruebas; incluye responsabilidades de cada una de las tareas, los recursos y los prerequisitos que deben ser considerados en el esfuerzo de cada una de las pruebas, permitiendo garantizar el cumplimiento de los requerimientos planteados en el marco del  desarrollo del proyecto denominado “SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”.


Este documento de PLAN DE PRUEBAS DETALLADO,  se convierte  en una guía para desarrollar de una forma organizada las diferentes actividades que se realizarán en el proceso del plan de pruebas  en el  desarrollo del proyecto denominado “SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”.

La metodologia de pruebas y este documento de plan de pruebas permitirán al equipo profesionales   expertos que participan en el frente de pruebas del proyecto denominado “SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”, evaluar aspectos como: la lógica estructural, la seguridad, la interconexión, el soporte conceptual, las  herramientas de apoyo y sobretodo la independencia de aspectos técnicos del desarrollo de la solución tecnológica contratada,  tales como: la plataforma tecnológica o la arquitectura de la solución  a probar, sin embargo a continuación se describen las diferentes pruebas a ser aplicadas:



TIPO DE PRUEBA
DEFINICIONES
FASE DE RUP

UNITARIAS

INTEGRACIÓN

Unitarias: Permite verificar la funcionalidad y estructura de cada componente individualmente del sistema una vez que ha sido codificado.

Integración: Permite  verificar el correcto ensamblaje entre los distintos módulos que componen el sistema desarrollado.

ELABORACIÓN

SISTEMA:
·         Carga
·         Volumen
·         Estress
·         Robustez
·         Concurrencia,
·         Interfaz de Usuario Recuperación a Fallas
·         Rendimiento
·         Seguridad
·         Integridad de las BD
·         Interoperabilidad
·         Desempeño
·         Configuración

Sistema: Estas pruebas buscan diferencias entre la solución desarrollada y los  requerimientos, con el fin de identificar  errores que se puedan generar entre la especificación funcional y el diseño del sistema.

Carga: Valida aquellos volúmenes de datos máximos especificados en los requerimientos no Funcionales 

Volumen: Esta prueba somete el software a grandes cantidades de datos para determinar si se alcanzan límites que causen la falla del software

Estrés: Valida aquellos volúmenes de datos máximos que resiste el sistema antes de comenzar con errores.

Robustez:  Valida si el sistema se mantiene estable y consistente después de circunstancias adversas

Concurrencia: Valida la capacidad del sistema de atender múltiples solicitudes departe de los usuarios que acceden a un mismo recurso.

Interfaz de usuario: Ppermite verificar que la navegación a través de los elementos que se están probando, reflejen las funciones del negocio y los requerimientos funcionales.

Recuperación a fallas: Estas pruebas aseguran que el que el software pueda recuperarse a fallas de hardware, software o mal funcionamiento de la red sin pérdida de datos o de integridad de los datos.

Rendimiento: Permite validar si la aplicación cumple los criterios de tiempos de respuesta establecidos.

Seguridad: Verifica el cumplimiento de las políticas de seguridad acordadas para el sistema.

Integridad de las bases de datos: Consiste en asegurar que los métodos y procesos de acceso a la base de datos funcionan correctamente y sin corromper datos.

Interoperabilidad: Esta prueba permite verificar todos los artefactos de la solución desarrollada, su arquitectura base, los protocolos de la solución, las interfaces  y los módulos del sistema, funcionando en forma conjunta.

Desempeño: Este tipo de prueba es un aspecto fundamental en una aplicación, ya que si ésta no responde en el debido tiempo, se pueden perder clientes, o dañar la imagen ante los usuarios.


Configuración: Establece y mantiene la integridad de los productos de software a través del ciclo de vida del proceso del mismo.


























CONSTRUCCIÓN


FUNCIONALES
Funcional: La prueba funcional es un proceso para procurar encontrar discrepancias entre el programa y la especificación funcional.


Caja Negra: Estas pruebas permiten obtener conjuntos de condiciones de entrada que ejecutan todos los requisitos funcionales  de un programa.


Ciclo de Negocio: Esta prueba tiene por objeto garantizar que el proceso de negocio esta adecuadamente soportado por el software desarrollado y que éste dispone de la funcionalidad adecuada para ejecutar todas las tareas incorporadas en el proceso de negocio.

Usabilidad:   Esta prueba permite encontrar problemas de factores humanos, o usabilidad.

Instalación: Esta prueba permite verificar la instalación y desinstalación de la aplicación en diferentes entornos de hardware y software


ACEPTACIÓN

Es la prueba final basada en las especificaciones del usuario o basada en el uso del programa por el usuario final luego de un periodo de tiempo

TRANSICIÓN

REGRESIÓN

En esta prueba se valida que el sistema mantenga su correcta funcionalidad debido a la incorporación de un ajuste, corrección o nuevo requerimiento. Es una prueba funcional y técnica que valida que el sistema siga funcionando perfectamente después de que las correcciones  sean aplicadas.





·         El plan de prueba: describe todos los métodos que se utilizarán para verificar que el software satisface la especificación del producto y las necesidades del cliente. Incluye los objetivos de calidad, necesidades de recursos, cronograma, asignaciones, métodos, etc.
·         Casos de prueba: lista los ítems específicos que serán probados y describe los pasos detallados que serán seguidos para verificar el software.
·         Reporte de pruebas: describen los problemas encontrados al ejecutar los casos de prueba.
·         Herramientas de pruebas y automatización: documentación de las herramientas empleadas en el proceso de pruebas.
·         Métricas, estadísticas y resúmenes: indican cómo ha sido el progreso del proceso de prueba.


Algunos documentos del proyecto SISTEMA DE NOTIFICACIONES Y COMUNICACIONES, son base fundamental de este documento inicial de plan de pruebas, que a continuación se relacionan

  • Metodología de Pruebas – Punto 8 página 67 del Plan de Proyecto.
  • Documento de Especificación de Requerimientos.
  • Documento de Arquitectura General Detallada
  • Términos de referencia del proceso de licitación de la plataforma de interoperabilidad.

Descripción resumida de contenido de cada una de las secciones que siguen, y explicación de la forma en que está organizado el presente documento.


Estrategia de Pruebas:

En este capítulo se presenta una perspectiva general de la estrategia que se va a seguir para analizar, diseñar, implementar y ejecutar las pruebas del proyecto “SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”. Así mismo se definirá qué tipos de pruebas se van a realizar y cómo se ejecutarán.

Recursos del Plan de Pruebas:

Este capítulo identifica los recursos humanos y no humanos (hardware, software, herramientas de soporte,  configuración de entorno de pruebas, entre otros), necesarios para desarrollar el proceso del plan de pruebas de la solución del Sistema de Notificación en Línea.

Evaluación de Pruebas Ejecutadas:

En este capítulo se describe de los métodos de evaluación de las pruebas ejecutadas, de tal forma que permitirá evaluar los grados de aceptación de las pruebas.


Anexos:

En este capítulo se describen los documentos anexos que se utilizarán para la especificación y la documentación de la ejecución de las pruebas.


La estrategia del proceso del plan de pruebas se implementará de acuerdo al esquema de macro-actividades que se presenta en la siguiente gráfica:



El ciclo de pruebas comprende seis actividades las cuales deberán ser desarrolladas de la siguiente manera:




Para el  desarrollo de  la solución del Sistema de Notificación en Línea, se considera de gran importancia la ejecución del plan de pruebas, haciéndose necesario la planificación de las mismas, lo que en consecuencia hace necesario tener claro los siguientes planteamientos:

·         Se planifican pruebas personalizando los estándares específicamente para el proyecto de notificaciones.
·         Se definen niveles de pruebas a aplicar.
·         Se especifican las técnicas a utilizar.
·         Se establece el tiempo para la ejecución de cada una de las pruebas.
·         Uso de herramientas.
·         Criterios de aceptación.
·         Recursos involucrados.

 En la definición del  plan de pruebas, se valorará:

·         El alcance de la aplicación.
·         La complejidad de sus procesos.
·         Plataforma/s en las que se debe probar.
·         Conocimientos y formación de quienes ejecutarán las pruebas.
·         Normativas legales aplicables.
·         Otros recursos involucrados.

Se tendrá en cuenta que:

·         Las pruebas estarán presentes a lo largo de todo el ciclo de vida del desarrollo, de la solución.
·         Siempre hay errores.
·         Probar exhaustivamente el software es imposible.
·         No es recomendable que el programador pruebe sus propios programas.
·         Se puede disponer de herramientas.
·         Se debe considerar la importancia de actualización del plan de pruebas con el fin de reflejar los cambios que se produzcan en los requisitos y/o proceso de desarrollo del producto.

Resultado de la planificación:
                       
·         Cronograma detallado de la ejecución de las pruebas; donde se especifica qué prueba se realiza, cuánto tiempo se estima para su ejecución, recursos a utilizar (humanos y tecnológicos); este cronograma se encuentra dentro del cronograma general del proyecto y específicamente en la fase desarrollo (ver plan de construcción)
·         Formatos a utilizar para el diseño de las pruebas.
·         Formatos a utilizar para el registro y análisis de los resultados de las pruebas.
·         Herramientas a utilizar para la gestión de incidencias.
·         Procedimientos para el control de cambios.
·         Herramientas a utilizar para la ejecución de las pruebas.


Para el diseño de las pruebas, se tendrán en cuenta aspectos que permitirán encontrar defectos en el periodo de desarrollo del software, la realización de pruebas propias de verificación y validación de datos, según se aclara en los siguientes ítems:

A.    Alcance:  El alcance de las pruebas estará dado por el marco del Sistema de Notificación en Línea, que se encuentra en desarrollo, ésta compuesta (Información tomada de los términos de referencia y del documento de Arquitectura General Detallada)  por:

·         Vista de Casos de Uso.
·         Diseño de las clases y su organización en paquetes y subsistemas.
·         Prototipos del sistema


B.    Inventario de las Pruebas: En esta sección se especifica el inventario de las pruebas, el cual permitirá:

  • Definir y asignar prioridades como; alta, media o baja.
  • Establecer un orden de trabajo.
  • Decidir qué casos entrarían en una regresión y cuáles no con mayor facilidad.
  • Recortar alcance en forma rápida y ordenada.
  • Se estima el tiempo en probar cada funcionalidad.
  • Evaluar aspectos técnicos del sistema.

C
C.   Resultado de la ejecución de las Pruebas: En este punto se resaltan las entradas fundamentales que son la partida para la ejecución del plan de pruebas.

·         Inventario de pruebas priorizado.
·         Estimación de esfuerzo de cada funcionalidad.
·         Plan de desarrollo del producto.
·         Plazos previstos para el proyecto.




 A.    Ciclo de la Prueba: Las actividades de la prueba se realizarán para una determinada versión del producto, sobre la cual se ejecutan las pruebas y se reportan los incidentes encontrados. Para cada versión del producto se realizan alguna o todas las tareas asociadas a las pruebas.

El proceso de planificación se ajusta al comenzar cada ciclo debido a posibles:

·         Atrasos de desarrollo
·         Modificaciones en los requerimientos iníciales
·         Cambios en el alcance del producto
·         Calidad del producto


Este capítulo se enfoca a la definición del proceso de administración de la configuración del proyecto “SISTEMA DE NOTIFICACIONES Y COMUNICACIONES ELECTRÓNICAS”, en el cual se establece el mantenimiento e integridad del software a través del ciclo de vida del proyecto y se proveen contextos de trabajo estables para los posibles cambios antes de ser entregado formalmente en producción. 

A continuación se presenta una definición de los conceptos básicos de la disciplina de administración de configuraciones, una descripción de las actividades principales y una propuesta de formatos para facilitar la captura de la información necesaria en las distintas actividades.
Administración de Configuraciones: Es el proceso de identificar y definir los elementos o ítems de configuración del sistema, controlando la entrega y el cambio de estos elementos a través del ciclo de vida del sistema, almacenando el estado de los mismos y de las solicitudes de cambio, y verificando la completitud con respecto a los requisitos especificados.
Configuración: Conjunto completo (respecto de la Arquitectura del Sistema, es decir que cada componente está representado) y coherente (respecto de que defina una versión estable del sistema, es decir que las versiones de cada componente se correspondan) de Ítems de Configuración que constituyen un producto de software.
Comité de control de cambios: Grupo con la autoridad para evaluar, aprobar y/o rechazar la implementación de un cambio. El establecimiento de un Comité de control de cambios  tiene como objetivo proveer un mecanismo para asegurar que toda solicitud de cambio es direccionada adecuadamente.
Ítem de Configuración: Componente de Software y/o producto de software destinado para ser puesto bajo Administración de Configuraciones.
Solicitud de Cambio: Documento a través del cual el equipo técnico autorizado solicita al Grupo de Desarrollo realizar la corrección de un defecto del Sistema de Notificación en Línea o de una mejora sobre la solución antes de salir a producción.
Versión: Resultado de la evolución que ha sufrido un Componente de Software en el tiempo.

En el siguiente gráfico se muestra el modelo estándar de ejecución de pruebas
:
 Como se observa, representa un modelo de pruebas en V, a diferencia de los modelos clásicos, extiende las pruebas a lo largo de todo el ciclo de vida del software.
Mientras se realizan las fases de requerimientos, análisis, diseño e implementación se van diseñando las pruebas del mismo nivel. Al llegar a la etapa de pruebas se inicia la ejecución de lo diseñado desde las pruebas unitarias hasta las pruebas funcionales.

Para cada una de las pruebas se realizará el siguiente procedimiento:

Aquí se tendrán en cuenta las siguientes especificaciones:
  • Elementos del sistema, es decir; los módulos y características de la solución que se van a probar.
  • Se listarán las especificaciones de cada entrada requerida para ejecutar el caso; incluyendo la sincronizaciones entre cada una de estas.
  • Especificaciones de todas las salidas y las características requeridas como el  tiempo y la  respuesta para los elementos que se van a probar. Estas especificaciones se harán utilizando los formatos establecidos en el numeral 5 de este plan de pruebas.
  • Necesidades del entorno del proceso de ejecución del hardware, software y recurso humano.
  • Requisitos especiales de procedimiento o restricciones especiales en los procedimientos para ejecutar este caso.






1.1.1.1.         EVALUACIÓN Y CIERRE
Para la evaluación y cierre de las pruebas se presentará el informe de pruebas donde se documentará el resultado de cada una de las diferentes pruebas ejecutadas. El contenido de este informe estará compuesto de la manera descrita en la “Propuesta de esquema y contenido del Informé de pruebas”; esto ya que el informe de pruebas es un entregable independiente.

Para el seguimiento y control de las pruebas se llevarán a cabo comités técnicos de seguimiento periódico semanal donde se evalúen los siguientes temas.



En este capítulo se señalaran las diferentes herramientas de software que se utilizarán para la ejecución de las pruebas.
Las herramientas que se utilizarán, dependerán del tipo de prueba que se realizará, es decir que por cada tipo de prueba es posible que se utilice una herramienta diferente.




Características
Tipo de prueba
JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba; en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente
JUnit es también un medio de controlar las pruebas de regresión, necesarias cuando una parte del código ha sido modificado y se desea ver que el nuevo código cumple con los requerimientos anteriores y que no se ha alterado su funcionalidad después de la nueva modificación.
En la actualidad las herramientas de desarrollo como NetBeans y Eclipse cuentan con plug-ins que permiten que la generación de las plantillas necesarias para la creación de las pruebas de una clase Java se realice de manera automática, facilitando al programador enfocarse en la prueba y el resultado esperado, y dejando a la herramienta la creación de las clases que permiten coordinar las pruebas.
La versión de la herramienta que se utilizará será: release 4.5
Esta herramienta será utilizada para la ejecución de:
·         Pruebas unitarias.
·         Pruebas de sistema
·         Pruebas de Integración.


Características
Tipo de prueba
Esta herramienta nos permite implementar unidades de test al estilo JUnit, pero donde los módulos a probar son páginas web (servlets, páginas jsp, php, cgi's, etc.). HttpUnit nos permite simular el acceso a un portal web, hacer "click" en los links, consultar las cookies, ejecutar código Java Script, etc.
HttpUnit permite escribir test que simulen a un usuario accediendo a una aplicación basada en Web mediante un navegador. Tiene muchas de las funciones de un navegador: control de cookies por sesiones, análisis de contenido HTML, envío de formularios mediante los métodos GET y POST, autentificación, y otras características. Se puede chequear si hay cierto contenido en la página, enlace por enlace y formulario por formulario, lo que permite verificar que la aplicación devuelve los resultados apropiados
La versión de la herramienta que se utilizará será: release 1.7
Esta herramienta será utilizada para la ejecución de:
·         Pruebas Funcionales.
·         Pruebas de Sistema
·         Pruebas de Configuración





Características
Tipo de prueba
JMeter es una herramienta de carga para llevar acabo simulaciones sobre cualquier recurso de Software.
Inicialmente diseñada para pruebas de estrés en aplicaciones web, hoy en día, su arquitectura ha evolucionado no sólo para llevar a cabo pruebas en componentes habilitados en Internet (HTTP), sino además en Bases de Datos, programas en Perl, requisiciones FTP y prácticamente cualquier otro medio.
Posee la capacidad de realizar desde una solicitud sencilla hasta secuencias de requisiciones que permiten diagnosticar el comportamiento de una aplicación en condiciones de producción.
En este sentido, simula todas las funcionalidades de un Navegador ("Browser"), o de cualquier otro cliente, siendo capaz de manipular resultados en determinada requisición y reutilizarlos para ser empleados en una nueva secuencia.
La versión de la herramienta que se utilizará será: release 1.9
Esta herramienta será utilizada para la ejecución de:
·         Pruebas de Sistema


Características
Tipo de prueba
Es un framework libre en Java, para realizar pruebas de carga o estrés utilizando una consola gráfica.
Esta versión hace uso del lenguaje script jhyton, lo que permite a cualquier código Java ser encapsulado como una prueba.
Esta herramienta permite utilizar un ambiente de red para realizar las pruebas de carga de forma totalmente distribuida.
La versión de la herramienta que se utilizará será: The Grinder 3
Esta herramienta será utilizada para la ejecución de:
·         Pruebas de Sistema

Características
Tipo de prueba
Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos. Desde consola nessus puede ser programado para hacer escaneos programados con cron.
En operación normal, nessus comienza escaneando los puertos con nmap o con su propio escaneador de puertos para buscar puertos abiertos y después intentar varios  para atacarlo exploits. Las pruebas de vulnerabilidad, disponibles como una larga lista de plugins, son escritos en NASL (Nessus Attack Scripting Language, Lenguaje de Scripting de Ataque Nessus por sus siglas en inglés), un lenguaje scripting optimizado para interacciones personalizadas en redes.
Opcionalmente, los resultados del escaneo pueden ser exportados en reportes en varios formatos, como texto plano, XMLHTML, y LaTeX. Los resultados también pueden ser guardados en una base de conocimiento para referencia en futuros escaneos de vulnerabilidades.
Algunas de las pruebas de vulnerabilidades de Nessus pueden causar que los servicios o sistemas operativos se corrompan y caigan. El usuario puede evitar esto desactivando "unsafe test" (pruebas no seguras) antes de escanear.

Esta herramienta será utilizada para la ejecución de:
·    Pruebas de Seguridad

Características
Tipo de prueba
Este es un PlugIn para Eclipse (IDE que será utilizado para el desarrollo). Esta herramienta, entre otras funcionalidades, permite que el desarrollador valide los archivos XML contra el archivo de esquemas XSD correspondiente.

Esta herramienta será utilizada para la ejecución de:
·    Pruebas de Interoperabilidad para los archivos XML que genere la aplicación.


Las pruebas que se realizarán serán aquellas que fueron señaladas como tipos de pruebas en el numeral 8.3 de la metodología de pruebas; en este capítulo solo serán mencionados a manera general los tipos de pruebas.


El objetivo principal de la ejecución de las pruebas esta dado a:

·         Descubrir tantos errores como sea posible.
·         Notificar acerca de los riesgos percibidos del proyecto
·         Identificar falencias funcionales de la aplicación, enmarcadas en grados de usabilidad ya definidos.
·         Evaluar la calidad del producto y señalar un indicador de aceptación del mismo.
·         Evaluar la calidad técnica del producto y resolver las falencias identificadas en las pruebas de tipo técnico.
·         Cumplir con los requerimientos específicos del cliente, en cuanto a la ejecución de las pruebas.



Las pruebas unitarias tienen como objetivo verificar la funcionalidad y estructura de cada componente individualmente del sistema una vez que ha sido codificado.

Es una Prueba técnica que permitirá:

  • Verificar que los módulos del sistema estén libres de errores.
  • Que todos los caminos lógicos principales deben ejecutarse correctamente en cada módulo de la aplicación.
  • Todas las transacciones deben ser probados.
  • Todos los tipos de registro de entrada válidos deben ser procesados
  • Todos los tipos de registro de entrada inválidos deben ser procesados correctamente
  • Códigos de vuelta no nulos.
  • Excepciones a tratamiento normal.
  • Todas las salidas válidas son procesadas.
  • Rasgos de Control son probados y documentados.


Objetivo de la Prueba:
·         Validar las piezas individuales del software como una unidad independiente.
Estrategia:
·         Se efectúan  para los servicios del negocio y para la lógica de beans en capa Web que tengan complejidad alta.
·         Generar casos de pruebas necesarios que permitan identificar:
o   Que al menos cada sentencia o instrucción del programa se ejecute al menos una vez correctamente.
o   Que cada condición tenga por lo menos una vez un resultado positivo y/o negativo.
o   Que cada bucle del sistema se pueda probar considerando: - ignorar el bucle, pasar una vez, pasar n veces.
Herramienta requeridas:
JUNIT
Observaciones

La prueba se realizará por Módulo entendiéndose por tal:
·         Bloque básico de programa
·         Implementa función independiente  y simple
·         Puede probarse por separado.



Las pruebas de sistema buscan diferencias entre la solución desarrollada y los requerimientos, enfocándose en la identificación de los errores que se puedan generar entre la especificación funcional y el diseño del sistema, así como, el negocio objeto de la aplicación.


Objetivo de la Prueba:
·         Validar aquellos volúmenes de datos máximos (por lo general las transacciones o informes) que pueden ser completados dentro de un período específico en el tiempo, y con un nivel de concurrencia dado (carga, concurrencia y desempeño).
·         Validar los requerimientos no funcionales de cada proyecto.
Estrategia:

·         Realizar Set de Pruebas a partir de los Requerimientos no funcionales.
·         Realizar pruebas de rendimiento básico. Consiste en probar la aplicación simulando la carga esperada en el entorno de producción.
·         Realizar las pruebas de concurrencia: verificar el comportamiento de la aplicación en  condiciones de sobrecarga de usuarios, que supone permitirá identificar potenciales problemas de rendimiento o cuellos de botella, antes de su pase a producción.  
·         Realizar pruebas de requerimientos no funcionales: Consiste en probar la aplicación con cada uno de los requerimientos no funcionales establecidos en el proyecto.
·         Identificar posibles cuellos de botella o problemas de rendimiento.
·         Realizar pruebas de carga: Altos volúmenes de información.
Herramienta requeridas:


·         JUNIT
·         HTTPUNIT
·         JMETER o THE GRINDER 3
Observaciones:

La elección de la herramienta de prueba será a discreción del grupo de pruebas y su elección dependerá de la prueba que se va a realizar, es decir puede que para pruebas de carga y altos volúmenes se utilice THE GRINDER 3 pero para validación de funcionalidad se utilice HTTPUNIT.


El objetivo de las pruebas de integración es verificar el correcto ensamblaje entre los distintos módulos que componen la solución una vez que han sido probados unitariamente con el fin de comprobar que interactúan correctamente a través de sus interfaces internas y externas, que cubren la funcionalidad establecida y se ajustan a los requisitos no funcionales especificados en las verificaciones correspondientes.

En esta prueba se comprueba la compatibilidad y funcionalidad de los interfaces entre las distintas ‘partes’ que componen el desarrollo de la solución. Estas partes pueden ser módulos, aplicaciones individuales, es decir esta prueba válida la integración entre los diferentes módulos que componen la solución con el fin de garantizar que su operación integrada es correcta, teniendo en cuenta los siguientes temas técnicos:

  • El funcionamiento integrado de módulos interdependientes debe estar libre de errores
  • Probar todas las dependencias entre módulos
  • Probar el flujo de control y el flujo de datos a través de todas las capas


Objetivo de la Prueba:
Validar la integración entre los diferentes módulos que componen la solución con el fin de garantizar que su operación integrada es correcta
Estrategia:
Pruebas de Integración Incremental Ascendente

·         Combinación de módulos de bajo nivel en grupos que realicen una misma función o subfunción especifica, con el fin de reducir el número de pasos de integración.
·         Se escribe para cada módulo un módulo impulsor o conductor, con el fin de simular  la llamada a los módulos, introducir datos de pruebas y recoger resultados.
·         Se prueba cada módulo mediante su impulsor.
·         Se eliminan los módulos impulsores y se sustituyen por los módulos de nivel superior en la jerarquía.
Herramienta requeridas:
JUNIT
Observaciones:






En esta prueba se valida que el sistema se comunique de manera exitosa con los sistemas externos con que se requiera, de acuerdo a los requerimientos no funcionales. Estos sistemas pueden ser sistemas propios de cada entidad, servicios de estampado de tiempo, servicios para la validación de certificados digitales, servicios publicados en el tramitador transaccional, servicios de envío de SMS, servicios de envío de correo electrónico.

Objetivo de la Prueba:
·         Validar la interoperabilidad de la solución con sistemas externos.
Estrategia:
·         Prueba directa con los servicios que se encuentren disponibles en un ambiente de pruebas controlado suministrado por Agenda de conectividad.
·         Para los servicios que no estén disponibles para prueba se desarrollarán sistemas DUMMIE que garanticen que la integración funcionará.
·         Para los archivos XML generados por la aplicación se verificará que sean válidos según la definición de los esquemas xsd definidos para cada uno.
La verificación de los archivos GEL- XML  la realizará cada desarrollador, aprovechando las características de la herramienta utilizada para estas pruebas.
·         La autenticación de los sistemas externos se probará mediante un DUMMIE; el cual llevará el usuario y contraseña de autenticación frente al sistema de notificaciones. Se probarán 3 escenarios uno con el usuario incorrecto, otro con la clave incorrecta y finalmente un escenario con el usuario y clave correctos.
·         Las pruebas de conexión con el tramitador de gobierno en línea se verificará mediante una prueba técnica utilizando y siguiendo los pasos del Wizard de conexión java con el tramitador de gobierno en línea; de esta prueba se espera que la conexión quede establecida.
·         Se expondrá un servidor de sFTP externo, con el cual se realizarán transferencias masivas de documentos históricos, se probaran tres escenarios: (Correcto, Incorrecto e incompleto).

Herramienta requeridas:
DUMMIES de los servicios que no están construidos o no están disponibles:
·         Autenticación
·         Firma Digital
·         Estampado de Tiempo
·         Sistema Emisor
XSD de cada archivo XML generado. XMLBuddy
Observaciones:





En esta prueba se valida que el sistema mantenga su correcta funcionalidad después de la incorporación de un ajuste, corrección o nuevo requerimiento. Es una prueba funcional y técnica que valida que el sistema siga funcionando perfectamente después de que las correcciones sean aplicadas.


Objetivo de la Prueba:
Validar que el sistema siga funcionando perfectamente después de que las acciones correctivas sean  aplicadas.
Estrategia:

·         Repetir las pruebas (unitarias, de integración, funcionales y de carga) que se hicieron antes de corregir defectos o de añadir nuevas funcionalidades, para comprobar que las modificaciones no provocan errores donde antes no los había. 
Herramienta requeridas:
·         Utilizar las mismas herramientas usadas para las pruebas según sea el caso.
Observaciones

Los  responsables de las Pruebas de Regresión se establecen dependiendo del momento en el que se realicen las modificaciones.  



La prueba funcional es un proceso para procurar encontrar discrepancias entre el software desarrollado y la especificación funcional. La prueba funcional normalmente es una actividad de caja negra. Esta prueba permite validar:

·         Los procesos y reglas de negocio establecidas,
·         Que se cumplan los requerimientos funcionales establecidos

En esta prueba se validan los Casos de Uso que fueron aprobados por el cliente, y a partir de ellos se diseñan y ejecutan los set de pruebas correspondientes. Se deben elaborar los casos de pruebas necesarios que permitan asegurar el funcionamiento de todos los flujos normales y alternos de dichos casos de uso.


Objetivo de la Prueba:
Se asegura el trabajo apropiado de los requisitos funcionales, Incluyendo la navegación, entrada de datos, procesamiento y obtención de resultados.
Estrategia :






·         Validación y ejecución de Set de Pruebas y escenarios definidos, teniendo en cuenta flujo normal y flujos alternativos, usando datos validos e inválidos  para verificar lo siguiente:
o   Los resultados esperados ocurren cuando se usan datos validos.
o   Se despliegan mensajes de error cuando se usan datos inválidos.
o   Cada regla de negocio es propiamente aplicada.
o   Realizar set de pruebas de los requerimientos mínimos para el adecuado funcionamiento de la aplicación
Herramientas Requeridas:

·         HTTPUNIT cuando aplique
·         Formato de casos de prueba funcionales
Observaciones:

Para el reporte de incidencias se utilizará una herramienta  para el registro y seguimiento.



Las pruebas de usabilidad son una forma de medir que tan bien puede una persona usar un objeto hecho por el hombre, como puede ser una página web, una interfaz de usuario, un documento o un dispositivo.

Las pruebas de usabilidad consisten en seleccionar a un grupo de usuarios de una aplicación y solicitarles que lleven a cabo las tareas para las cuales fue diseñada, en tanto el equipo de diseño, desarrollo y otros involucrados toman nota de la interacción, particularmente de los errores y dificultades con las que se encuentren los usuarios.
No es necesario que se trate de una aplicación completamente terminada, pudiendo tratarse de un prototipo


Objetivo de la Prueba:
·         Validar el grado de usabilidad empírico del sistema.
·         El grado de usabilidad se medirá en tres aspectos clave:
o   Facilidad de aprendizaje: facilidad con la que nuevos usuarios desarrollan una interacción efectiva con el sistema o producto.
o   Flexibilidad: relativa a la variedad de posibilidades con las que el usuario y el sistema pueden intercambiar información.
o   Robustez: es el nivel de apoyo al usuario que facilita el cumplimiento de sus objetivos.
Estrategia :
·         Se usarán cuatro métricas principales para medir la usabilidad del sistema
o   Exactitud: Número de errores cometidos por los sujetos de prueba y si estos fueron recuperables o no al usar los datos o procedimientos adecuados.
o   Tiempo requerido para concluir la actividad.
o   Recuerdo: Qué tanto recuerda el usuario después de un periodo sin usar la aplicación.
o   Respuesta emocional: Cómo se siente el usuario al terminar la tarea (bajo tensión, satisfecho, molesto, etcétera).

·         Estas métricas será implementadas para cada uno de los aspectos clave señalados en el objetivo de la prueba.
·         La forma de evaluación será mediante el uso de encuestas; donde cada pregunta evaluará un aspecto clave de usabilidad y aportará valor a una o varias métricas dentro del aspecto clave evaluado.
·         Las encuestas se realizarán a los usuarios utilizando los prototipos del sistema; para así poder realizar cambios de forma temprana al diseño de la capa de presentación.
Herramientas Requeridas:

·         Encuesta
·         Prototipos del sistema.
Observaciones:



Estas pruebas tienen dos enfoques:

·         Pruebas de seguridad de la aplicación; donde se verifica que un actor solo pueda acceder a las funciones y datos que su usuario tiene permitido.
·         Pruebas de seguridad del sistema; donde se verificar que solo los actores con acceso al sistema y a la aplicación están habilitados para accederla.

Objetivo de la Prueba:
·         Que los usuarios están restringidos a funciones específicas o su acceso está limitado únicamente a los datos que está autorizado a acceder.
·         Que solo aquellos usuarios autorizados a acceder al sistema son capaces de ejecutar las funciones del sistema.
·         Que el cortafuego oculte apropiadamente la aplicación.
·         Que los puertos clave solo puedan ser accedidos de la forma establecida para su acceso.
·         Que los puertos restringidos efectivamente no se encuentren accesibles.
Estrategia :
·         Identificar cada tipo de usuario y las funciones y datos a los que se debe autorizar.
·         Crear pruebas para cada tipo de usuario y verificar cada permiso, creando transacciones específicas para cada tipo de usuario.
·         Modificar tipos de usuarios y volver a ejecutar las pruebas.
Herramientas Requeridas:

·         Nessus
·         Pruebas funcionales de seguridad.
Observaciones:

Para el reporte de incidencias se utilizará una herramienta  para el registro y seguimiento.






El propósito de esta prueba es establecer y mantener la integridad de los productos de software a través del ciclo de vida del proceso del mismo. Esta prueba implica la identificación de la Configuración del software en puntos dados en el tiempo, el control sistemático de los cambios en la Configuración y el mantenimiento de la integridad y trazabilidad de la Configuración a través del ciclo de vida del software.




Objetivo de la Prueba:
Validar la integridad de los productos de software.
Estrategia :
·         Validación y ejecución de Set de Pruebas que representen un ciclo del proceso de negocio principal de principio a fin.
·         Validación de la integridad de la configuración de todos los sistemas involucrados en puntos datos en el tiempo.
·         Realizar trazabilidad de los cambios de configuración realizados para puesta a punto.
Herramientas Requeridas:


·         HTTPUNIT
Observaciones:

Para el reporte de incidencias se utilizará una herramienta  para el registro y seguimiento.












Estas pruebas aseguran que el software pueda recuperarse a fallas de hardware, software o mal funcionamiento de la red sin pérdida de datos o de integridad de los datos.

El objetivo de esta prueba es verificar que los procesos de recuperación (manual o automáticos) se realice apropiadamente: las base de datos, las aplicaciones y el sistema a un estado conocido y deseado.

En la prueba se incluyen los siguientes tipos de condiciones:

·         Interrupción de energía al cliente
·         Interrupción de energía al servidor
·         Interrupción de comunicaciones mediante los servidores de la red
·         Interrupción de comunicación o pérdida de energía de los discos del servidor o con los controladores
·         Ciclos incompletos (procesos de filtro de datos interrumpidos, procesos de sincronización de datos interrumpidos)


Objetivo de la Prueba:
·         Validar la capacidad de recuperación a fallas de:
o   Hardware
o   Software
o   Mal funcionamiento de Red.
Estrategia :
·         Interrumpir la energía del cliente: apagar el PC.
·         Interrumpir la energía del servidor: simular o iniciar el proceso de apagado del servidor.
·         Interrupción por medio de los servidores de red: simular o iniciar la pérdida de comunicación con la red
·         (desconectar físicamente la comunicación o apagar el servidor de red o router
·         Interrumpir la comunicación o quitar la energía de los discos del servidor o sus controladores: simular o
·         eliminar físicamente la comunicación con uno o más controladores de disco o los discos.]
·         Una vez que se lograron o simularon estas condiciones, se deben invocar los procedimientos de
·         recuperación.
Herramientas Requeridas:


·         Ninguna
Observaciones:

Para el reporte de incidencias se utilizará una herramienta  para el registro y seguimiento.


El objetivo de las pruebas de aceptación es validar que la solución desarrollada cumpla con el funcionamiento esperado y permitir al usuario de dicho sistema determine su aceptación, desde el punto de vista de su funcionalidad y de su rendimiento. Estas pruebas son realizadas por el cliente, donde comprueba que el sistema cumple con lo definido y se obtiene la conformidad del cliente. Esta prueba se realiza mediante el proceso de validación de caja negra.


Estas pruebas corresponden a la ejecución de las siguientes pruebas por parte de los usuarios funcionales o cliente:

·         Pruebas Funcionales.
·         Pruebas de Usabilidad.
·         Pruebas de Configuración


De acuerdo al tipo de pruebas ejecutadas puede que el entregable del mismo sea diferente, en el siguiente cuadro se señalan los diferentes entregables por tipo de prueba.
TIPO DE PRUEBAS
ENTREGABLES
Pruebas Unitarias
  • Resumen de validación de la prueba.
Pruebas de Sistema
  • Se entregará un documento de resultados de las pruebas realizadas, que incluya resultados de la ejecución de los scripts de pruebas y análisis de los errores o defectos encontrados durante el proceso de realización de las pruebas.
Pruebas de Integración
  • Se entregará un documento de pruebas de integración que incluye resultados de la ejecución de los scripts de pruebas y análisis de los defectos encontrados durante el proceso de pruebas
Pruebas de Interoperabilidad
  • Se entregará un documento de pruebas de interoperabilidad que incluye resultados de la comunicación con los servicios y DUMMIES previstos.
Pruebas de Regresión
  • Se entregará un documento de pruebas de regresión, que incluye resultados de la ejecución de los scripts de pruebas, análisis de los defectos encontrados durante el proceso de pruebas y solicitud de las correcciones recibidas.
Pruebas Funcionales
  • Se entregará un documento de pruebas de regresión, que incluye resultados de la ejecución de los scripts de pruebas y análisis de los defectos encontrados durante el proceso de pruebas y solicitud de las correcciones recibidas.
Pruebas de Usabilidad
  • Indicadores de Usabilidad
Pruebas de Seguridad
  • Informe de vulnerabilidades
  • Resultado de pruebas funcionales de seguridad.
Pruebas de Configuración
  • Resumen de validación de la prueba.
Pruebas de Recuperación a Fallas
  • Resumen de validación de la prueba.
Pruebas de Aceptación
  • Resumen de validación de la prueba.
Los entregables de las pruebas serán elaborados de acuerdo a la estructura del entregable “Informe de Pruebas” solicitados en los términos de referencia para la fase de desarrollo y pruebas.

TIPO DE PRUEBAS
TIPO DE PRUEBA
Pruebas Unitarias
Automáticas
Pruebas de Sistema
Automáticas
Pruebas de Integración
Automáticas
Pruebas de Interoperabilidad
Automáticas
Pruebas de Regresión
Automáticas y Manuales
Pruebas Funcionales
Manuales
Pruebas de Usabilidad
Manuales
Pruebas de Seguridad
Automáticas y Manuales
Pruebas de Configuración
Automáticas y Manuales
Pruebas de Recuperación a Fallas
Automáticas y Manuales
Pruebas de Aceptación
Manuales










TIPO DE PRUEBAS
TECNICA DE EJECUCIÓN
HERRAMIENTAS A UTILIZAR
Pruebas Unitarias
El uso de JUnit normalmente involucra los siguientes pasos:
a.    Crear una subclase de junit.framework.TestCase.
b.    Opcionalmente sobrescribir el método setUp() que será invocado en la inicialización de objetos y variables usados por todos los casos de prueba. No todos los casos de uso necesitan esto. Note que setUp() es invocado antes de cada caso particular.
c.    Opcionalmente sobrescribir el método tearDown(). Método que será invocado al final de cada caso de prueba y que nos sirve para liberar recursos usados en la prueba o incluso para volver atrás lo probado, por ejemplo cuando el caso de prueba involucre la actualización de datos en una base de datos relacional.
d.    Adicionar métodos de prueba a la clase. Note que no necesitamos implementar ninguna interface, pues JUnit usa el paquete reflection del java para detectar automáticamente métodos test. Dichos métodos son reconocidos por su asignatura, la cual debe tener la forma public void test<Descripcion>(), además pueden lanzar cualquier exception.
JUNIT
Pruebas de Sistema
Las pruebas del sistema tal como están concebidas para el proyecto de notificaciones electrónicas involucra los siguientes pasos:
a.    Selección de los casos de uso para los que se probará Carga, volumen, estrés, concurrencia. Estos casos de uso corresponderán al 10% del total de casos de uso y su elección contará con la aprobación del Programa Agenda de Conectividad e Interventoría.
b.    Ejecución de las pruebas de Carga, volumen, estrés, concurrencia mediante la herramienta seleccionada.
c.    Recopilación de resultados.
d.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
e.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias).
f.     Corrección de la incidencia.
g.    Repetición de la prueba.
JMETER
Pruebas de Integración
Las pruebas del integración tal como están concebidas para el proyecto de notificaciones electrónicas involucra los siguientes pasos:
a.    Selección de los componentes y/o servicios para los que se probará integración con los componentes y/o servicios que tienen relación directa. Estos componentes y/o servicios corresponderán al 10% del total de componentes y/o servicios y su elección contará con la aprobación del Programa Agenda de Conectividad e Interventoría.
b.    Ejecución de las pruebas de integración mediante la herramienta seleccionada.
c.    Recopilación de resultados.
d.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
e.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias).
f.     Corrección de la incidencia.
g.    Repetición de la prueba.
GRINDER
Pruebas de Interoperabilidad
Las pruebas de interoperabilidad tal como están concebidas para el proyecto de notificaciones electrónicas involucra los siguientes pasos:
a.    Definición de la lista de servicios a probar.
b.    Definición de DUMMIES a construir.
c.    Construcción de DUMMIES.
d.    Ejecución de la prueba de interoperabilidad contra los servicios y DUMMIES definidos.
e.    Recopilación de resultados.
f.     Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
g.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
h.    Corrección de la incidencia.
i.      Repetición de la prueba.
·         Servicios del Enrutador transaccional
·         DUMMIES
·         XMLBuddy
Pruebas de Regresión
Las pruebas de regresión tal como están concebidas para el proyecto de notificaciones electrónicas involucra los siguientes pasos:
a.    Repetición de las pruebas funcionales y de sistema que estén involucradas en los cambios realizados al sistema.
b.    Recopilación de resultados.
c.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
d.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
e.    Corrección de la incidencia.
f.     Repetición de la prueba.
·         Casos de Prueba
·         Grinder
Pruebas Funcionales
Las pruebas funcionales normalmente involucra los siguientes pasos:
a.    Crear los casos de prueba mediante el formato establecido para ellos.
b.    Ejecución de los casos de prueba con forme las funcionalidades van siendo liberadas para pruebas.
c.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
d.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
e.    Corrección de la incidencia.
f.     Repetición de la prueba.
·         Casos de Prueba
Pruebas de Usabilidad
Las pruebas de usabilidad tal como están concebidas para el proyecto de notificaciones electrónicas (uso de prototipado) involucra los siguientes pasos:
a.    Elaboración de prototipos.
b.    Elaboración de encuestas de usabilidad.
c.    Evaluación de prototipos mediante la aplicación de encuestas de usabilidad a usuarios comunes.
d.    Recopilación de datos de la encuesta.
e.    Compilación y análisis de resultados de encuestas de usabilidad.
·         Prototipos
·         Encuesta de usabilidad
Pruebas de Seguridad
Las pruebas de seguridad tal como están concebidas para el proyecto de notificaciones electrónicas involucra los siguientes pasos:
a.    Elaboración de casos de prueba funcionales de seguridad.
b.    Elaboración de casos de prueba automáticos de seguridad.
c.    Configuración de ambiente de pruebas.
d.    Ejecución de pruebas funcionales de seguridad.
e.    Ejecución de casos automáticos de pruebas de seguridad con el uso de las herramientas de evaluación y ataque.
f.     Recopilación de resultados.
g.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
h.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
i.      Corrección de la incidencia.
j.      Repetición de la prueba.
·         NESSUS
·         Casos de prueba funcionales de seguridad.
Pruebas de Configuración
Dada la metodología RUP, al ser un desarrollo iterativo e incremental se efectuaran pruebas de instalación a medida que sean liberadas las diferentes versiones del aplicativo.

Las pruebas incluirían:
a.    Elaboración de listas de chequeo de instalación de sistema operativo, base de datos, servidor de aplicaciones y cualquier otro componente del sistema.
b.    Ejecución de la instalación según la lista de chequeo.
c.    Recopilación de resultados.
d.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
e.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
f.     Corrección de la incidencia.
g.    Repetición de la prueba.
·         Listas de chequeo para instalación.

Pruebas de Recuperación a Fallas
Las pruebas de recuperación a fallas normalmente involucra los siguientes pasos:
a.    Crear los casos de prueba de recuperación.
b.    Ejecución de los casos de prueba.
c.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
d.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
e.    Corrección de la incidencia.
f.     Repetición de la prueba.

Pruebas de Aceptación
Las pruebas de recuperación a fallas normalmente involucra los siguientes pasos:
a.    Ejecución de una muestra de las pruebas funcionales, de carga, de configuración por parte del Programa Agenda de Conectividad e Interventoría.
b.    Reporte de los defectos encontrados según las pruebas. (A través de la herramienta de gestión de incidencias)
c.    Asignación de la incidencia. (A través de la herramienta de gestión de incidencias)
d.    Corrección de la incidencia.
e.    Repetición de la prueba.
·         Grinder.
·         Casos de prueba Funcionales.
·         Listas de Chequeo.
  












No hay comentarios.:

Publicar un comentario