domingo, 31 de agosto de 2014

Norma de calidad ISO 9126

Introducción

En esta entrada se describirá lo que es calidad, y cómo ésta influye en la creación de un sistema. Asímismo, se hará mención de la norma de calidad ISO 9125 con todas sus características y sus subcaracterísticas

Desarrollo


Calidad

Existen varias definiciones de "calidad". Una de ellas es que es el conjunto de características de una entidad, que permiten satifacer con necesidades establecidas. Otra menciona que calidad se refiere al grado en el que un conjunto de características que cumple con requisitos. Estas 2 definiciones tienen 2 cuestiones en común: una de ellas es que calidad es un conjunto de normas, y la otra es que son establecidas para cumplir con ciertos requisitos o necesidades para ofrecer un producto con la mejor calidad posible.

Norma de calidad ISO 9126

Antes de pasar a este tema, primero debemos definir lo que es una norma de calidad. Una norma de calidad es un conjunto de estándares que tienen como objetivo conseguir un grado óptimo de orden en la calidad de un producto. Estas normas, en su gran mayoría, son internacionales, es decir, que se aplican en cualquier parte del mundo.

Ahora, sabiendo esto, podemos hablar de la norma ISO 9126. El ISO 9126 es un estándar internacional que se aplica en la industria del software. Fue desarrollado en 1991 y su principal objetivo es proporcionar un esquema para la evaluación de la calidad de un sistema informático.

En esta norma, para cumplir el estado óptimo de calidad, se proponen 6 características con el que todo software debe cumplir.

Funcionalidad

En este apartado están el conjunto de atributos que permiten saber si un software maneja de forma adecuada el conjunto de funciones que satisfagan las necesidad para las cuales fue diseñado, es decir, que cumpla con lo establecido en los requisitos.
  • Adecuación - Presencia de un conjunto de funciones para tareas especificas.
  • Exactitud - Disposición de resultados correctos.
  • Interoperabilidad -Habilidad para la interacción con sistemas especificados.
  • Seguridad - Habilidad para prevenir acceso no autorizado a programas y datos, ya sea accidental o deliberado.
  • Cumplimiento funcional - Capacidad del software para apegarse a normas relacionadas con la funcionalidad.
Confiabilidad

Aquí se refiere a la capacidad del software para mantener su integridad bajo condiciones normales en un cierto periodo de tiempo.
  • Madurez - La frecuencia de falla por fallas en el software.
  • Recuperabilidad - Capacidad para restablecer su nivel de desempeño y recuperar los datos directamente afectados en caso de falla.
  • Tolerancia a fallos - Habilidad para mantener un nivel especificado de desempeño en casos de fallas de software.
  • Cumplimiento de fiabilidad - Capacidad del software para apegarse a normas relacionadas con la fiabilidad.
Facilidad de uso (Usabilidad)

En este apartado están el conjunto de atributos que permiten evaluar el esfuerzo necesario que necesita invertir el usuario para poder usar el software.
  • Aprendizaje- Reconocer el concepto lógico y sus aplicaciones.
  • Comprensión - Entender el concepto lógico y sus aplicaciones.
  • Operatividad -Operación y control del software.
  • Atractividad - Que el software le llame la atención al usuario a través de las interfaces.
Eficiencia

En este apartado se ve la relación entre el nivel de funcionamiento del software y la cantidad de recursos usados.
  • Comportamiento en el tiempo - Son los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función.
  • Comportamiento de recursos - Son las cantidades y tipos de recursos necesarios cuando el software lleva a cabo su función bajo ciertas condiciones.
Facilidad de mantenimiento

En este apartado están el conjunto de atributos que permiten saber el esfuerzo necesario para poder modificar el softare, ya sea para corregir errores o para incrementar la funcionalidad.
  • Estabilidad - es evitar comportamientos anormales en el software..
  • Facilidad de análisis - Es el esfuerzo necesario para el diagnóstico de deficiencias o causas de fallos.
  • Facilidad de cambio - Es el esfuerzo necesario para corregir la falla detectada en el punto anterior.
  • Facilidad de pruebas - Es el esfuerzo necesario para validar el software modificado.
Portabilidad

Aquí se ve la capacidad del software para ser transferido de una computadora a otra sin mayor problema.
  • Capacidad de instalación - Es el esfuerzo necesario para instalar el software en un ambiente determinado.
  • Capacidad de reemplazamiento - Que se pueda usar el software en lugar de otro software especificado en el ambiente de dicho software especificado.
  • Adaptabilidad - Que se pueda adaptar a distintos ambientes, en este caso, sistemas operativos.
  • Co-Existencia - Que pueda existir otro software independiente, en un entorno común, compartiendo recursos comunes con el software evaluado.
Conclusiones

La norma de calidad ISO 9126 nos permite llevar un control de calidad en el sistema que estemos desarrollando, ya que, como son normas establecidas e internacionales, nos garantiza que el producto final sea lo que esperamos y que cumpla con los requisitos establecidos. Sin embargo, su cumplimiento es un tanto dificil, ya que estas normas, como cualquier otra, son muy estrictas y se deben cumplir casi a la perfección.

Bibliografía


Cataldi, Z. (2000). Calidad en la industria del software. agosto 31, 2014, de UNLP Sitio web: http://recursosbiblioteca.utp.edu.co/tesisd/textoyanexos/0053L864e_anexo.pdf

Soto, M. (2012). Concepto de calidad. agosto 31, 2014, Sitio web: http://fabetsia.dmpa.upm.es/solo_alumnos/sp2/Tablon_sp2/TransparenciasCALIDAD06.pdf

Fernandez, A. (2010). Normas de calidad. agosto 31, 2014, Sitio web: http://www.apmarin.com/download/691_cal1.pdf

domingo, 24 de agosto de 2014

Ingeniería de Pruebas

Introducción

En esta entrada se describirá lo que es una prueba, en qué consiste, y qué elementos se necesita para realizarla. Así mismo, se definirá la ingeniería de pruebas, los tipos de pruebas de software, y los elementos del ciclo de vida de un software. Todo, con el fin de dar a conocer la importancia de hacer pruebas a la hora de realizar un sistema informático

Desarrollo


¿Qué es una prueba?

Según la Real Academia Española, una prueba consiste en "experimentar las cualidades de alguien o algo". Sin embargo, una definición más apegada a las cuestiones del software sería "una prueba es la dinámica de la verificación del comportamiento de un programa en un conjunto de casos de prueba contra la del comportamiento esperado". Su objetivo es encontrar los posibles fallos de implementación, calidad o usabilidad de un programa.

Para realizar una prueba, necesitamos detectar defectos en el software, verificar la integración adecuada de los componentes y que todos los requisitos se han implementado correctamente para posteriormente asegurar que los defectos encontrados se han corregido.

¿Qué es la ingeniería de pruebas?

Primero, hay que definir qué es la ingeniería. La ingeniería es el arte de aplicar los conocimientos científicos a la invención, perfeccionamiento y utilización de la técnica industrial en todas sus determinaciones. Esto, con el fin de solucionar los diversas problemáticas de la vida diaria.

Ahora, sabiendo esto y lo que es una prueba, podemos definir a la ingeniería de pruebas como el conjunto de conocimientos que se aplican para determinar los fallos en los componentes y en el funcionamiento de un sistema informático.

Es de suma importancia realizar pruebas en el programa que estemos desarrollando, porque esto permite saber si nuestro producto funciona a la perfección, o si se le tiene que cambiar algunas características.

¿Cuáles son los tipos de pruebas que existen?

Hay 2 tipos principales de pruebas. Las de caja blanca, que se centran en los procesos del sistema, es decir, está enfocado en verificar el código fuente. Y las de caja negra consisten en verificar el exterior del sistema y la entrada de los datos, sin importarnos el proceso y la salida de éstos

Sin embargo, existen más tipos de pruebas de software, de los cuales hablaremos más adelante
  • Pruebas Unitarias
  • Pruebas de Aceptación de Usuario
  • Pruebas de Regresión
  • Pruebas Funcionales
  • Pruebas de Integración
  • Pruebas de Estress
  • Pruebas de Calidad de Código
Ciclo de vida de un software

Existen 5 etapas por las que todo sistema informático pasa en su proceso de desarrollo:
  • Análisis: En esta etapa definimos de forma detallada cual es la problemática a resolver, verificando el entorno en el cual se encuentra dicho problema, para que así se obtenga la información necesaria y suficiente para diseñar su solución
  • Diseño: Aquí determinamos la estrategia que se va a utilizar para resolver el problema que hemos planteado en la etapa de análisis.
  • Desarrollo: Ya que nos hemos planteado la problemática y cómo la vamos a solucionar, es hora de desarrollar el sistema que satisfaga las necesidades de nuestro cliente. Aquí lo que se hace es escribir el código a la vez de que se diseña la base de datos y las interfaces gráficas
  • Pruebas: Después de desarrollar nuestro sistema, hay que hacerle sus respectivas pruebas, para así comprobar que no hayan errores lógicos o de interfaz.
  • Implementación: Ya que se le han hecho las correspondientes pruebas, es hora de entregar el producto final al cliente. Para esto, debemos estar asegurados de que nuestro sistema funcione a la perfección.


Conclusiones

La ingeniería de pruebas es de mucha utilidad a la hora de realizar nuestro software, ya que nos permite verificar si éste funciona correctamente o se le tiene que modificar algo para lograr lo mencionado. Sin embargo, también es importante seguir correctamente las etapas de desarrollo, ya que, de no hacerlo, podemos desarrollar nuestro producto de una manera muy desordenada e ineficaz.

Bibliografía


Jaramillo, E. (2011). De los problemas a los programas. agosto 24, 2014, de Universidad Nacional de Colombia Sitio web: http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060024/Lecciones/Capitulo%20I/problemas.htm

Adán, V. (2012). Pruebas de caja negra. agosto 24, 2014, Sitio web: http://www.globetesting.com/2012/08/pruebas-de-caja-negra/

Mejía, F. (2008). Definiciones de ingeniería. agosto 24, 2014, de Escuela de ingeniería de Antioquia Sitio web: http://fluidos.eia.edu.co/lecturas/ingenieria.html

Montes, R. (2013). Pruebas de software. agosto 24, 2014, Sitio web: http://www.ecured.cu/index.php/Pruebas_de_software