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.

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.