jueves, 5 de febrero de 2015

Pruebas de Integración y de Sistema

Introducción


Las pruebas son fundamentales en la elaboración de un software, nos ayudan a detectar errores, que, en un futuro supondrían grandes fallos o perdidas de dinero. Pueden llegar a representar hasta el 50% de el tiempo de desarrollo de un software. Ya he mencionado a las pruebas de caja blanca y caja negra, en el siguiente articulo hablare sobre las pruebas de integración y de sistema.

Desarrollo

  • Pruebas de Integración: Este tipo de pruebas verifican que los componentes de la aplicación funcionan correctamente actuando en conjunto. Las pruebas de integración son dependientes del entorno en el que se ejecutan. Si fallan, puede ser porque el código esté bien, pero haya un cambio en el entorno. Estas pruebas pueden ayudarnos a detectar errores como:
    • Problemas de configuración
    • Procesos faltantes
    • Uso incorrecto de archivos
    • Violaciones de integridad de la base de datos
    • Parámetros erróneos

  • Pruebas de sistema: Aquí se engloban tipos de pruebas cuyo objetivo es probar todo el sistema software completo e integrado, normalmente desde el punto de vista de requisitos de la aplicación. Aquí aparecerían las pruebas funcionales, pruebas de carga, de estrés, etc. Las pruebas que abarca son: 
    • Prueba de Recuperación: Su propósito es hacer fallar al software para comprobar que la recuperación de datos se efectúa adecuadamente.
    • Prueba de Seguridad: Se aseguran de que las medidas de seguridad del software sean efectivas.
    • Prueba de Resistencia (Stress): Estas pruebas fuerzan al software procese solicitudes de un volumen anormal, para comprobar cual es la capacidad del programa.
    • Prueba de Rendimiento: Se hacen para verificar que el software cumpla con los requerimientos exigidos.

Conclusión

Todas las pruebas son importantes, ayudan a prevenir futuros costos por errores en el sistema. Unas de las pruebas mas importantes son las pruebas de integración y de sistemas. Las pruebas de integración verifican que todo opere en conjunto correctamente. Las pruebas de sistemas se encargan de verificar un conjunto de características integradas.

Fuentes


http://www.uv.mx/personal/jfernandez/files/2010/07/Pruebas-de-Integracion.pdfhttp://www.javiergarzas.com/2014/07/tipos-de-pruebas-10-min.html
https://sites.google.com/site/jojooa/analisis-de-sistemas/definicion-de-pruebas-de-sistemas-que-son-las-pruebas-de-sistemas


viernes, 16 de enero de 2015

Diagrama de grafos

Introducción

Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso. 
En ciencias de la computación, un grafo de control de flujo es una representación, en forma de grafo dirigido, de todos los caminos que pueden ser atravesados ​​a través de un programa durante su ejecución. El segundo deriva del primero y serán utilizados en un futuro para diseñar casos de prueba. 
A continuación presentare un ejemplo de ambos diagramas


Desarrollo

El diagrama de flujo es el siguiente:



Su diagrama de grafos es el siguiente:


Todos sus posibles caminos son:

  1. Inicio-Fin
  2. Inicio-P4-P5-Fin
  3. Inicio-P4-P6-Fin
  4. Inicio-P2-Fin
  5. Inicio-P3-Fin
  6. Inicio-P1-Fin
  7. Inicio-P1-P2-Fin
  8. Inicio-P1-P3-Fin


Conclusión

El diagrama de flujo se utiliza para especificar de manera grafica cada uno de los procesos de un programa. El diagrama de grafo deriva de un diagrama de flujo y sirve para representar cada uno de los procesos y todos los posibles caminos por los que puede pasar un programa. El diagrama de grafo es muy importante para diseñar casos de prueba para un software.


Fuentes

aiteco. (2007). ¿Qué es un diagrama de flujo?. 16 de enero del 2015, de aiteco Sitio web: http://www.aiteco.com/que-es-un-diagrama-de-flujo/#


Pruebas de Caja Blanca y Caja Negra

Introducción

La prueba es un proceso de ejecución con la función de descubrir un error. Un caso de prueba es aquel que tiene una alta probabilidad de descubrir un error. Las pruebas no pueden ser usadas como demostración de la ausencia de errores. En el siguiente trabajo presentare dos de los tipos de prueba mas famosos y mas útiles: las pruebas de caja blanca y de caja negra.

Desarrollo

Prueba de Caja Blanca: 
Son pruebas que se enfocan en los mecanismos internos de un sistema o componente, el 32% de los defectos corresponden a errores en la lógica de los componentes. 
Se requieren poder representar la ejecución de un programa, para ello se apoya de los grafos de flujo. Una vez que se tiene el diagrama, es posible diseñar casos de prueba para cada rama. 


A pesar de que este enfoque permite diseñar pruebas que cubran una amplia variedad de casos de prueba, podría pasar por alto partes incompletas de la especificación o requisitos faltantes, pese a garantizar la prueba exhaustiva de todos los flujos de ejecución del código analizado.

Las principales técnicas de diseño de pruebas de caja blanca son:
  • Pruebas de flujo de control
  • Pruebas de flujo de datos
  • Pruebas de bifurcación (branch testing)
  • Pruebas de caminos básicos



Prueba de Caja Negra: 
Estas pruebas permiten obtener un conjunto de condiciones de entrada que ejerciten completamente todos los requisitos funcionales de un programa. En ellas se ignora la estructura de control, concentrándose en los requisitos funcionales del sistema y ejercitándolos.

Las pruebas de caja negra no buscan reemplazar a las pruebas de caja blanca, sino que pretenden ser un enfoque complementario para encontrar errores diferentes a los de la primera prueba mencionada. Se considera que las pruebas de caja negra permiten encontrar errores como:
  • Funciones incorrectas o ausentes.
  • Errores de interfaz.
  • Errores en estructuras de datos o en accesos a las Bases de Datos externas.
  • Errores de rendimiento.
  • Errores de inicialización y terminación.




Conclusión 

Las pruebas de caja blanca sirven para evaluar los componentes internos de un sistema, detectando asi un 32% aproximadamente de los errores de un software.
Las pruebas de caja negra buscan complementar a las primeras evaluando los datos de entrada con los datos de salida esperados, dándonos otro enfoque para descubrir posibles errores. Ambos casos son fundamentales en la ingeniería de pruebas y es necesario realizarlos antes de poner cualquier programa en conducción.


Fuentes

Pressman, Roger S. Ingenieria de Software Un Enfoque Práctico, 2002.

EcuRed. (2010). Pruebas de caja negra. 16 de enero 2015, de EcuRed Sitio web: http://www.ecured.cu/index.php/Pruebas_de_caja_negra

CBSE. (2003). Pruebas. 16 de enero 2015, de CBSE Sitio web: https://sistemas.uniandes.edu.co/~isis4713/dokuwiki/lib/exe/fetch.php?media=isis4713-pruebas3.pdf