Temas a Tratar

-Introducción a la Ingeniería de Pruebas.
-Bases de Datos Relacionales.

Para ingresar a los temas dentro de esta página utiliza nuestro MENU DE TEMAS, que se encuentra en a parte izquierda de tu computador.

lunes, 10 de agosto de 2015

Not Only Databases
Ingresa a https://juandanielcr.me  para seguir más de esos posts, es mi pagina web oficial 

jueves, 5 de febrero de 2015

Pruebas de Sistema y de Integración

PRUEBAS DE SISTEMA E INTEGRACIÓN

Introducción

Retomando las publicaciones de  este blog ahora nos encontramos con un nuevo tipo de pruebas, que en mi opinión son las más interesante y difíciles de ejecutar. Es interesante como puedes ver a través de varios tipos de pruebas diferentes, que en alguno de esos algo falle y no se note con algún otro tipo de prueba. Estas pruebas permiten la correcta integración de módulos revisar el funcionamiento del sistema en etapas avanzadas del proyecto

Desarrollo


Pruebas de Sistema

Las pruebas de Sistema o también conocidas como Pruebas de Software se van enfocadas a las investigaciones empíricas y técnicas, cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto hacia los que va enfocado el software. Puede ser visto como un proceso de control de calidad.
Estas pruebas te sirven para saber si cumple con sus objetivos o no. Esta prueba no se fija si funciona bien o no, sino que es lo que espera el cliente.

Ejemplos:
1.        Pruebas de rendimiento: Tienen como objetivo monitorear el rendimiento del proyecto o programa en cuanto a contexto de ejecución, es decir, se dedica a revisar que tan bien y que tan fluido corre el programa en una computadora. Para poder realizarse se necesita tener el proyecto completamente integrado.
2.         Pruebas de Stress: Se dedican a darle al programa una carga anormal, metiendolo en una situación poco normal para poder verificar su comportamiento en esta clase de situaciones. Básicamente es aventarle cuanto se le pueda y ver como lo maneja.
3.         Pruebas de Seguridad: Aquí es donde se verifica que los mecanismos de seguridad destinados a proteger el sistema (tales como el cifrado, la firma digital, etc.) se ejecuten debidamente y cumplan con su función.
4.         Pruebas de recuperación: En estas pruebas se intenta hacer fallar al programa para poder analizar su capacidad de recuperación. Se pueden ejecutar de muchas maneras

Pruebas de Integración

Las pruebas de integración o también llamadas pruebas integrales solo son realizadas en el ámbito del desarrollo del software y sólo se ejecutan una vez que se hayan realizado las pruebas unitarias.
Consiste en realizar pruebas para verificar un gran conjunto de partes de software. Hace énfasis en su operación conjunta.
Éstos pueden identificar el fallo del funcionamiento entre unidades. Puede ver que haya falta de coherencia entre una clase y otra. También puede que no sean compatibles.

De Interfaz: puedes aceptar bien los datos pero a la hora de verlos, o ver alguna parte del programa no cuadre, etc.
·         No Funcionales: puedes ver el tiempo que se tarda en cargar los recursos, o que simplemente no cargue bien, etc.
·         De Configuración: puede estar utilizando alguna versión obsoleta, o que esté usando alguna que esté en prueba, pero que no ha sido publicada, etc.
·         De Integridad: que en algún momento algún proceso cambie el formato de un valor sin ser necesario, eliminar algún campo que necesite otra parte.

Conclusión

Las pruebas de Integración y las pruebas se Sistema con unas complementarias de las otras, las pruebas de integración permiten observar el comportamiento de distintos módulos interactuando entre sí, y las pruebas de sistema permiten observar el funcionamiento de los módulos interactuando a través de ellos y en flujos establecidos por loq eu nos encontramos ante los últimos casas de prueba.
Referencias

Fernández, J. M. (Abrill 2011). Ingeniería de Software, Pruebas de integración. Febrero 5, 2015, de Universidad Veracruzana Sitio web:http://www.uv.mx/personal/jfernandez/files/2012/11/PruebaIntegracionEstructurada.pdf
varios. (2014). ISIS4713 - CBSE Pruebas de Integración. Febrero 5, 2015, de Universidad de los Andes Sitio web:https://sistemas.uniandes.edu.co/~isis4713/dokuwiki/lib/exe/fetch.php?media=isis4713-pruebasintegracion.pdf

Moreno, J. L.. (Mayo 17, 2004). Aplicación de un Sistema Experto para el desarrollo de Sistema Evaluador del modelo Capability Maturity Model (CMM) niveles dos y tres. Capítulo 5. Pruebas del Sistema y Conclusiones. Febrero 5, 2015, de Universidad de las Américas Puebla (UDLAP) Sitio web:http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/moreno_a_jl/capitulo_5.html

Fernández, J. M. (2010). Cápitulo 6 Pruebas de Sistema. Febrero 5, 2015, de Universidad Veracruzana Sitio web:http://www.uv.mx/personal/jfernandez/files/2010/07/Pruebas-de-Sistema.pdf

viernes, 16 de enero de 2015

Pruebas y Grafos

En matemáticas y ciencias de la computación, un grafo (del griego grafos: dibujo, imagen) es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre elementos de un conjunto. Son objeto de estudio de la teoría de grafos.
Típicamente, un grafo se representa gráficamente como un conjunto de puntos (vértices o nodos) unidos por líneas (aristas).
Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. Por ejemplo, una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vértices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cables o conexiones inalámbricas).
Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales.

Estas representaciones dentro del terreno de las pruebas se pueden dividir en 2 grandes ramas como lo son: 
  1. Los Grafos Generales.
  2. Los Grafos de Procesos.

GRAFO GENERAL.

Los grafos generales son los encargados de mostrar todas la tareas que realizará un software a lo largo de su ejecución, valorando todos los posibles caminos que este pueda seguir a traves del programa.

Ejemplo:


GRAFO DE PROCESOS.

Un grafo de procesos se encaraga de representar unicamente los procesos que hay de una ejecución de software, por obvias razones es te tipo de representaciones son mucho más fáciles de realizar y de leer.

Ejemplo:



lunes, 12 de enero de 2015

Pruebas y Cajas

Pruebas y Cajas.



Caja Negra

En teoría de sistemas y física, se denomina caja negra a aquel elemento que es estudiado desde el punto de vista de las entradas que recibe y las salidas o respuestas que produce, sin tener en cuenta su funcionamiento interno. En otras palabras, de una caja negra nos interesará su forma de interactuar con el medio que le rodea (en ocasiones, otros elementos que también podrían ser cajas negras) entendiendo qué es lo que hace, pero sin dar importancia a cómo lo hace. Por tanto, de una caja negra deben estar muy bien definidas sus entradas y salidas, es decir, su interfaz; en cambio, no se precisa definir ni conocer los detalles internos de su funcionamiento.

Caja Blanca
En programación, se denomina cajas blancas a un tipo de pruebas de software que se realiza sobre las funciones internas de un módulo. Así como las pruebas de caja negra ejercitan los requisitos funcionales desde el exterior del módulo, las de caja blanca están dirigidas a las funciones internas. Entre las técnicas usadas se encuentran; la cobertura de caminos (pruebas que hagan que se recorran todos los posibles caminos de ejecución), pruebas sobre las expresiones lógico-aritméticas, pruebas de camino de datos (definición-uso de variables), comprobación de bucles (se verifican los bucles para 0,1 e interacciones, y luego para las interacciones máximas, máximas menos uno y más uno).
Las pruebas de caja blanca se llevan a cabo en primer lugar, sobre un módulo concreto, para luego realizar las de caja negra sobre varios subsistemas (integración).
En los sistemas orientados a objetos, las pruebas de caja blanca pueden aplicarse a los métodos de la clase, pero según varias opiniones, ese esfuerzo debería dedicarse a otro tipo de pruebas más especializadas (un argumento podría ser que los métodos de una clase suelen ser menos complejos que los de una función de programación estructurada). Dentro de las Pruebas de Caja Blanca encontramos las llamadas coberturas (sentencia, decisión, condición y múltiple además de los mencionados caminos ciclomáticos propuestos por McCabe)


viernes, 12 de septiembre de 2014

Verificación, Validación y Caso de Prueba

Métodos de Prueba.

Verificación.

Su objetivo es generar una revisión para ver si el nivel de calidad de un producto se conserva través del tiempo y al haber experimentado este una serie de cambios.

En el ámbito de la informática se define como  el proceso de determinar si un flujo de trabajo se ha llevado a cabo en forma correcta; se realiza al término de cada flujo de trabajo.


Validación.

 Es el proceso de evaluación intensa que se lleva a cabo justo antes de 
entregar el producto al cliente, su objetivo es determinar si el producto en su 
totalidad satisface sus especificaciones.

Caso de Prueba.

En la Ingeniería de Pruebas este término se define como las condiciones necesarias para evaluar un objetivo en general.
Para la realización de un Caso de Prueba partimos directamente de los Casos de Uso realizados en la documentación del proyecto.

El objetivo de un caso de prueba es conseguir la confianza aceptable en que se encontrarán todos lo defectos existentes sin consumir una cantidad excesiva de recursos.

TÉCNICAS PARA DISEÑAR UN CASO DE PRUEBA.

Enfoques principales :

  • Caja Blanca: Consiste en observa como funciona el software.
  • Caja Negra: Consiste en ver que hace el software.

viernes, 29 de agosto de 2014

Calidad en el Software

Software de Calidad.


Introducción

Dentro de la Ingeniería de Software tenemos una sección dedicada a la calidad del software, de esta manera nuestro software podrá satisfacer las necesidades de nuestro cliente de la mejor manera.

Para que un software sea de calidad se hace uso de distintas técnicas llamadas pruebas, para abalar que nuestro software es de calidad se recurren a distintas Normas de Calidad las cuales debemos de seguir.
Una vez que nuestro software ha seguido todas estas normas podemos acreditarlo, de esta manera nuestro software será considerado como un SOFTWARE DE CALIDAD.

La CALIDAD.

"La calidad es una herramienta básica para una propiedad inherente de cualquier cosa que permite que la misma sea comparada con cualquier otra de su misma especie."

CALIDAD=Comparar objetos de la misma especie.
CALIDAD=Capacidad de Satisfacer las necesidades.
CALIDAD=Percepción del cliente sobre nuestro producto.

La calidad en el software se busca siempre al momento de realizar un proyecto. En el desarrollo de software, la calidad de diseño acompaña a la calidad de los requisitos, especificaciones y diseño del sistema.

Modelos de Calidad de Software.

Calidad del Producto.-Propiedades del producto según el usuario y el desarrollador.
Calidad del Proceso.-Actividades que influyen en el proceso de tu sistema.
Calidad en Uso.-Relación del producto en el ambiente donde se emplea.

La obtención de un software de calidad implica la utilización de metodologías o procedimientos estándares para el análisis , diseño, programación y pruebas del software que permitan unificar las filosofía del trabajo.

Los requisitos del software son la base para la medida de la calidad.

Norma ISO 9126.

"La certificación del software tiene como objetivo asegurar la calidad de un programa."

En el software lo que se mide son atributos propios del mismo, se descompone un atributo general en otros más simples de medir, a veces se mide bien o mal ya que la descomposición del atributo genérico de calidad en otros sub-atributos se torna irreal, es imposible decir que la medición se hace en forma correcta.

El concepto de medida va de más a menos, va de lo general a lo concreto y lo concreto es asociado a la métrica, cuya combinación te daría el nivel de calidad o seguridad de tu producto.

Tipos de Medidas de Software.
  • Número de errores durante un periodo determinado.
  • Fallo en la codificación o diseño de un sistema que causa que el programa no funcione correctamente o falle.
    • Tamaño de un producto informático (líneas de código)
    • Estimación de costes y esfuerzos.

La Norma ISO-9000

ISO-9000 es un familia de estándares del Comité Técnico 176 de ISO.
Es u estándar en más de 80 países.

ISO 9000-1 a ISO 90000-4 son relativas a Estándares de Administración de Calidad.
ISO 9000-3 Desarrollar, Proveer, Instalar y Mantener software para computadora.

Partes del ISO:

Requerimientos: Deben cumplirse necesariamente. Dice QUE debe hacerse.
La Norma ISO-9126

La ISO 9126 es un estándar internacional para la evolución de Software. El estándar está dividido en cuatro partes las cuales dirigen, respectivamente, lo siguiente: modelo de calidad, métricas externas, métricas internas y calidad en las métricas de uso.

 Está reemplazado por el proyecto SQuaRE, ISO 25000:2005, el cual sigue los mismos conceptos.

Clasifica la calidad del software en un conjunto estructurado de características y subcaracterísticas de la siguiente manera:
Funcionalidad - Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.
  • Adecuación: Presencia y aptitud de un grupo de funciones para realizar las tareas.
  • Exactitud: Resultados o efectos correctos o acordados.
  • Interoperalibidad: Interacción con los demás sistemas.
  • Seguridad: Prevenir acceso no autorizado a programas o datos.
  • Funcionalidad.

Fiabilidad..-Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.
  • Madurez : Frecuencia en las fallas del software.
  • Recuperabilidad: Restablecer el nivel de desempeño y datos en caso de fallas.
  • Tolerancia  a Fallos: mantener su nivel de desempeño en caso de algún fallo,
  • Cumplimiento de Fiabilidad: Capacidad del producto para adherirse a normas

Usabilidad.-Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.
  • Aprendizaje: Concepto lógico y sus aplicaciones.
  • Compresión: Relacionan el esfuerzo de los usuarios con el concepto lógico.
  • Operatividad: Relacionan con el esfuerzo del usuario para la operación y control.
  • Atractividad.
Eficiencia.- Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.
  • Comportamiento en el Tiempo: Con los tiempos de respuesta y procesamiento.
  • Comportamiento de recursos: Usa las cantidades cuando el software lleva cabo su función bajo condiciones determinadas.
Mantenibilidad.-Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.
  • Estabilidad: Atributos del software relacionados con el riesgo de efectos inesperados por modificaciones.
  • Facilidad de Análisis: tributos del software relacionados con el esfuerzo necesario para el diagnóstico de deficiencias o causas de fallos, o identificaciones de partes a modificar.
  • Facilidad de Cambio: Atributos del software relacionados con el esfuerzo necesario para la modificación, corrección de falla, o cambio de ambiente.
  • Facilidad de Pruebas: Atributos del software relacionados con el esfuerzo necesario para validar el software modificado.
Portabilidad.-Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.
  • Capacidad de instalación:
  • Capacidad de reemplazamiento: Atributos del software relacionados con la oportunidad y esfuerzo de usar el software en lugar de otro software especificado en el ambiente de dicho software especificado.
  • Adaptabilidad: Atributos del software relacionados con la oportunidad para su adaptación a diferentes ambientes especificados sin aplicar otras acciones o medios que los proporcionados para este propósito por el software considerado.
  • Co-Existencia: Coexistir con otro software independiente, en un entorno común, compartiendo recursos comunes.

Conclusión

En conclusión podemos decir que dentro de la ingeniería de pruebas encontramos el problema dela calidad dentro de un sistema, esta se realiza mediante la aplicación de pruebas a nuestro programa, entre mas pruebas realicemos a este mayor calidad tendrá, estas pruebas se hacen con el fin de encontrar posibles errores en un programa.

Cuando nuestro software sigue una serie de normas decimos que esta certificado, la norma esencial para la certificación de un software es la ISO 9126.

domingo, 24 de agosto de 2014

Introducción a la Ingeniería de Pruebas.

Ingeniería de Pruebas.

Introducción
Dentro de cualquier proceso realizado por el hombre es necesario incluir el término prueba, ya que este concepto es el encargado de decir que tan bien funciona nuestro producto. La Ingeniería de Pruebas se encarga de obtener los datos que miden la calidad de nuestro producto final.

Desarrollo.


Para comenzar a trabajar en el tema de Ingeniería de Pruebas es precios aclarar los conceptos con los que trabajaremos, de esta manera tendremos un buen marco teórico.

Ciclo  de Vida del Software.

Los pasos que constituyen el ciclo de vida de un software son los siguientes:

  • Requerimientos: Obtención de requerimientos funcionales, no funcionales, de sistema, etc. Obtención de los diagramas que formarán el soporte de nuestro proyecto.
  • Diseño: Consiste en la obtención de módulos y codificación de los mismos.
  • Implementación.
  • Verificación.
  • Mantenimiento.



Definición de Prueba.

La palabra prueba posee una gran variedad de conceptos dependiendo de la ciencia que utilice esta palabra, sin embargo el contexto de la palabra no cambia, haciendo esta referencia a un proceso para probar algo establecido previamente, a continuación tenemos una serie de definiciones:

Etimología:Bueno, honrado, que se puede confiar en él.

  • "Hecho utilizado para demostrara una acción, tesis o teoría en ciencias".

  • "En INFORMÁTICA una prueba es un proceso que permite verificar yre velar la calidad de un producto software".


Una prueba informática permite comprobar exhaustivamente la funcionalidad de un software.

Definición de Ingeniería de Prueba.

La ingeniería es una ciencia que se encarga de realizar investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva sobre la calidad del producto a la parte interesada o stakeholder (cliente casi siempre).


Una prueba puede ejecutarse en cualquier parte del ciclo de vida del programa.

Nivel de Prueba

De esta manera hacen su aparición los Niveles de Pruebas que son los puntos dentro del proceso de desarrollo de software, en los que se aplicará una prueba.

Dentro de un nivel de prueba se aplicará un cierto tipo de Prueba.

1.  Nivel de Pruebas Unitarias.

Prueba el correcto funcionamiento  de un módulo de código.
Cada módulo sirve correctamente por separado. Consiste en hacer pruebas para métodos individuales y críticos dentro del bloque de código.

Es realizado por el equipo de desarrollo (programadores).

2.  Nivel de Pruebas de Integración.
Se realiza una vez que las pruebas unitarias se ha aprobado, consiste en realizar pruebas para verificar que un conjunto de módulos sirven juntos.

3.  Nivel de Pruebas de Sistema.
Consiste en verificar la funcionalidad de un sistema de acuerdo  los documentos de especificaciones realizados al inicio de l proyecto. Por ejemplo hacer uso de los diagramas UML.

4.  Nivel de Pruebas de Aceptación.

Se encarga de probar nuestro software en distintas infraestructuras.


  • Versión Alpha.- Se da cuando la prueba se realiza en la infraestructura del desarrollador.
  • Versión Beta.- Se da cuando la prueba se realiza en la infraestructura del cliente.



Tipos de Pruebas.

PRUEBAS ESTÁTICAS. Revisan la documentación periódicamente.

PRUEBAS DINÁMICAS. Revisan la calidad de la codificación y el nivel de cumplimiento en relación con el sistema.

PRUEBAS DE COMPATIBILIDAD. Revisa comprueba el funcionamiento en distintos sistemas operativos.

PRUEBAS DE REGRESIÓN. Descubrimiento de bugs causados por un cambio en el programación.

PRUEBAS DE INTEGRACIÓN. Revisa la comunicación entre módulos o con terceros.

PRUEBAS MANUALES.

PRUEBAS AUTOMÁTICAS.

PRUEBAS DE SEGURIDAD.

PRUEBAS DE  RENDIMIENTO.

PRUEBAS DE INSTALABILIDAD.

PRUEBAS DE PORTABILIDAD.


Autor: Castillo Reyes Juan Daniel.