Prueba del Software e Ingeniería Web

La estrategia de pruebas de software proporciona un mapa que describe los pasos que se darán como parte de la prueba, indica cuando se planea y cuando se darán dichos pasos además cuanto tiempo, esfuerzo y recursos consumirán. Un software se prueba para descubrir los errores cometidos, si se realiza sin ningún plan seguramente se desperdiciara tiempo, se dedicara un esfuerzo innecesario y lo que es peor puede que no se detecten los errores.

Las pruebas se deben planificar con anticipación y realizarlas de manera sistemática por lo que es importante tener una plantilla existen diferentes y en general tienen los siguientes pasos:

1. Revisiones técnicas formales y efectivas
2. Se inicia a nivel de componentes y se trabaja hacia afuera hacia la integración del sistema
3. Diferentes técnicas en diferentes momentos
4. las pruebas las dirige el desarrollador
5. la prueba y la depuración son actividades diferentes, pero la segunda debe incluirse en cualquier estrategia de pruebas.

En términos generales, se pueden distinguir dos tipos de evaluaciones durante el proceso de desarrollo: Verificaciones y Validaciones.

  • Verificación:  es el proceso de determinar si los productos de una cierta fase del desarrollo de software cumplen o no los requisitos establecidos durante la fase anterior. 
  • Validación: es el proceso de evaluación del software al final del proceso de desarrollo para asegurar el cumplimiento de las necesidades del cliente.

Tanto para la realización de verificaciones como de validaciones se pueden utilizar distintos tipos de técnicas. En general, estas técnicas se agrupan en dos categorías: 
  • Técnicas de Evaluación Estáticas: Buscan faltas sobre el sistema en reposo. Esto es, estudian los distintos modelos que componen el sistema software buscando posibles faltas en los mismos. Así pues, estas técnicas se pueden aplicar, tanto a requisitos como a modelos de análisis, diseño y código. 
  • Técnicas de Evaluación Dinámicas: Generan entradas al sistema con el objetivo de detectar fallos, cuando el sistema ejecuta dichas entradas. Los fallos se observan cuando se detectan incongruencias entre la salida esperada y la salida real. La aplicación de técnicas dinámicas es también conocida como pruebas de software o testing y se aplican generalmente sobre código puesto que es, hoy por hoy, el único producto ejecutable del desarrollo.

Técnicas de prueba

Prueba de la Caja Negra: estudia o se preocupa de la funcionalidad del sistema
tomando en cuenta todas las entradas y salidas realizadas en la interfaz del sistema, sin tomar en cuenta el funcionamiento interno o los procesos que se ejecutan al generar dichas salidas. Esta técnica de prueba permite especificar una lista de los problemas o errores que se hayan encontrado en la interfaz del sistema.


Prueba de la caja blanca:  consiste en probar el codigo mediante un seguimiento del codigo fuente que se ha ejecutado en el sistema de manera que se puedan determinar ramas caminos y condiciones. atmbien llamadas estructurales, que se basan en un minucioso examen de los detalles procedimentales del código a evaluar, por lo que es necesario conocer la lógica del programa.

Estrategia de pruebas

La estrategia que se ha de seguir a la hora de evaluar dinámicamente un sistema software debe permitir comenzar por los componentes más simples y más pequeños e ir avanzando progresivamente hasta probar todo el software en su conjunto. Más concretamente, los pasos a seguir son: 
  1. Pruebas Unitarias. Comienzan con la prueba de cada módulo.
  2. Pruebas de Integración. A partir del esquema del diseño, los módulos probados se vuelven a probar combinados para probar sus interfaces.
  3. Prueba del Sistema. El software ensamblado totalmente con cualquier componente hardware que requiere se prueba para comprobar que se cumplen los requisitos funcionales.
  4. Pruebas de Aceptación. El cliente comprueba que el software funciona según sus expectativas.

Estrategias de prueba para el software convencional


Uno de los mejores enfoques que se pueden realizar y es muy efectivo es realizar pruebas diarias del componente que esté desarrollando. Aunque muchos equipos no les guste, la mayoría elige un enfoque en el cual hace pruebas a un conjunto de unidades.
Entre los errores más comunes durante las pruebas de unidad se encuentran:

  1. Mal aplicaciones de la precedencia aritmética.
  2. Operaciones de modo mescladas
  3. Inicialización incorrecta
  4. Falta de precisión
  5. Representación simbólica incorrecta de una expresión.
Es importante llevar al software a sus límites durante las pruebas de unidad hay situaciones en los cuales no se pueden realizar pruebas completas de unidad para lo cual debe seleccionarse un conjunto de actividades críticas sobre las cuales se realizaran las pruebas. 

Aspectos estratégicos

Si se desea implementar con éxito una estrategia de pruebas de software se debe seguir los siguientes aspectos
  • Especificar los requisitos del producto de manera cuantificable mucho antes de que empiecen las pruebas
  • Establecer explícitamente los objetivos de la prueba
  • Comprender cuales son los usuarios del software y desarrollar un perfil para cada categoria del usuario.
  • Desarrollar un plan de pruebas que destaque la prueba del ciclo rápido
  • Construir un software robusto diseñado para probarse a si mismo
  • Utilizar revisiones técnicas formales y efectivas como filtro previo a la prueba
  • Realizar revisiones técnicas formales para evaluar la estrategia de prueba y los propios casos de la prueba
  • Desarrollar un enfoque de mejora continua para la prueba

Ingeniería Web

La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad en la World Wide Web. La ingeniería web se debe al crecimiento desenfrenado que está teniendo la Web está ocasionando un impacto en la sociedad y el nuevo manejo que se le está dando a la información en las diferentes áreas en que se presenta ha hecho que las personas tiendan a realizar todas sus actividades por esta vía.

Uno de los aspectos más tenidos en cuenta, en el desarrollo de sitios web es sin duda alguna el diseño gráfico y la organización estructural del contenido. En la actualidad la web está sufriendo grandes cambios, que han obligado a expertos en el tema a utilizar herramientas y técnicas basadas en la ingeniería del software, para poder garantizar el buen funcionamiento y administración de los sitios web.
Para garantizar el buen funcionamiento y mantenimiento de los sitios web, este debe contar con ciertos atributos y características que en conjunto forman un concepto muy importante, para alcanzar el éxito en cualquier organización, herramienta, y todo aquello que se pueda considerar como servicio. Dicho concepto es la calidad, que con atributos como, usabilidad, navegabilidad, seguridad, mantenibilidad, entre otros, hacen posible por un lado la eficiencia del artefacto web y por ende la satisfacción del usuario final.

Categorías

Los sitios web pueden ser categorizados de la siguiente forma:

Sólo estático, que se enfoca en la organización de la estructura y el contenido, en la forma como se va a presentar la información y que sea fácil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad.

Sitio estático con formularios de entrada, este sitio tiene las mismas características que el anterior, adicionándole que el le permite a los usuarios la interacción por medio de cuestionarios, comentario y sugerencias.

Sitio con acceso de datos dinámicos, aquí además de las características antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas.

Sitio creado dinámicamente, en este sitio los requerimientos son parecidos pero deben suplir con las necesidades de cada usuario; creando sitios dinámicos que sean compatibles con el entorno de navegación de cada usuario.

Aplicación de software basada en la Web, este sitio puede tener todas las características antes mencionadas, pero logrando un parecido con una implementación cliente/servidor comúnmente conocido que a un sitio web estático.

Con el pasar del tiempo y la constante evolución tecnológica que atraviesa nuestro mundo circundante hemos podido observar la necesidad y la utilidad de la red de redes; Internet para mejorar de cierta manera nuestras condiciones de vida y así fortalecer más nuestro proceso de formación educativa y contribuir con un mejoramiento del global de las necesidades de cada quien observemos que un proyecto que comenzó meramente con fines militares para no centralizar los datos, ha tenido un crecimiento dignificable hoy en día el mundo se mueve con la web, ayudando a pequeñas, medianas y grandes empresas a si como todo entidad educativa.

Comentarios

Entradas más populares de este blog

Modelado de Análisis para WebApps

Prueba de Aplicaciones Web

Formulación y Planeación para Ingeniería Web