martes, 17 de mayo de 2011

Gestión de calidad y pruebas de software


Según Pressman, la calidad del software es “la concordancia con los requerimientos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente”.

Aporte profesora María Esther “El modelo de desarrollo del Software Libre facilita el aseguramiento y control de la calidad, dado que el código abierto asegura la transparencia y la trazabilidad del software, el desarrollo colaborativo exige la generación de un código más claro y mejor documentado y los usuarios, al ser tratados como colegas, participan activamente en la especificación, desarrollo y validación del código”.

La calidad de software debe ser tenido en cuenta en cualquier proyecto de software que iniciemos. Debe incluirse un ciclo integral de desarrollo de procesos de control de calidad y pruebas desde el principio del proyecto, de lo contrario, el costo de desarrollo de este proceso posteriormente, será demasiado alto.
El software casi nunca es perfecto, todo proyecto de software tiene como objetivo, producir software con la menor cantidad de errores posible, que cumpla con las expectativas de los usuarios y los requerimientos exigidos.
"El software tiene una medida de 0,150 errores por cada 1000 líneas de código. Si tenemos en cuenta que un producto como OpenOffice.org 1.0 tiene aproximadamente 7 millones de líneas de código, la aritmética es sencilla"

Para asegurar la calidad del software en cualquier proyecto, es importante tener en cuenta los siguientes principios:

- Es imperativo disponer de unos requisitos que detallen el sistema
- Los procesos de calidad deben ser integrados desde  las primeras fases del proyecto
- Quien desarrolle un sistema no debe ser quien prueba su funcionalidad.

¿En qué consiste la gestión de calidad y pruebas del software?
Este proceso de la ingeniería de software consiste en someter al producto de software a un conjunto de pruebas, basadas en prestaciones, respuestas esperadas a determinadas acciones y bajo ciertas condiciones, con la finalidad de determinar la calidad del mismo.

En la ingeniería de software se aplica el checklist, el cual consiste en un listado de procedimientos para la consecución de un objetivo, en este caso, la instalación y correcto funcionamiento de la aplicación a investigar. Además, sirve para ayudar a asegurar la consistencia e integridad en el desarrollo de la tarea, de tal modo, que sea reproducible siguiendo todos los pasos que constituyen el checklist. Es muy utilizado en el aseguramiento de la calidad en ingeniería de software, para comprobar la conformidad de procesos, estandarización de código, prevención de errores y otros.

La calidad de un software, debe ser medida en tres puntos:
a) Durante el proceso de desarrollo.
b) Al obtener el producto de software.
c) Durante el ciclo de vida del software (calidad del servicio).

Entre las normas que rigen la calidad, se encuentran:
a) Para el producto se encuentra la norma ISO-9126.
b) Para la calidad de desarrollo se encuentra la ISO-14598.
c) CMMI for Development (v1.2), está orientado a la mejora de procesos en diferentes niveles de madurez.
d) Moprosoft, programa de México para la Industria de Software, orientado a empresas pequeñas y medianas.

Por otra parte, algunas de las pruebas no funcionales son: las pruebas de rendimiento (performance) y pruebas de carga, pruebas de estabilidad, pruebas de usabilidad, pruebas de seguridad, pruebas de internacionalización y localización y pruebas destructivas.
MOSCA es otro modelo de especificación de la Calidad Sistémica del Software desarrollado en el Laboratorio de Investigación en Sistemas de Información LISI de la Universidad Simón Bolívar , se caracteriza por ser una herramienta que soporta la Administración de la Calidad del Software en sus tres actividades: Aseguramiento de la Calidad, Planeación de la Calidad y Control de la Calidad, al establecer un marco de referencia que permite ubicar en un “nivel establecido” la calidad sistémica de sus productos.

Para tener en cuenta…..
Ley de Linus (Torvalds):
"given enough eyeballs, all bugs are shallow" - Dados suficientes ojos, todos los errores son superficiales. Entre más desarrolladores puedan leer y analizar el código fuente y usuarios utilicen una aplicación, mayor es la probabilidad de que los errores sean encontrados, reportados y finalmente corregidos.

Los peores ‘bug’ (errores informáticos) de la historia:

1. Fallo en la sonda Mariner 1:Un "bug" en el software de vuelo de la sonda Mariner I provocó que, segundos después del lanzamiento de la nave, en julio de 1972, ésta se desviara de su curso preestablecido. Los responsables de la misión se vieron obligados a destruir el cohete cuando se encontraba sobrevolando el Atlántico. La investigación del accidente determinó que el problema estaba en una fórmula escrita a lápiz que luego fue "inadecuadamente" trasladada al lenguaje informático, lo que hizo que el cohete calculara mal la trayectoria que debía seguir.
2. Explosión en un gaseoducto soviético :La mayor explosión registrada en la Tierra por causas no nucleares tuvo su origen en un fallo de programación. Supuestamente, agentes de la CIA colocaron un "bug" en un sistema informático canadiense adquirido por los soviéticos para controlar el gaseoducto Transiberiano. Seguían órdenes de Reagan, que había mandado a sus agentes a sabotear toda la tecnología rusa, colocando "cosas" que permitían manipular a distancia todo tipo de maquinaria y tecnología. Así, en 1982 la CIA decidió sabotear este gaseoducto, pero al activar el "bug" las cosas salieron mucho peor de lo esperado y provocaron la gigantesca explosión.
3. Acelerador médico Therac-25 :El Therac-25 era un acelerador lineal empleado en los hospitales en la década de los 80 para tratar tumores. La máquina emitía radiación de alta energía sobre células cancerosas sin dañar el tejido circundante. Los operarios, con el tiempo y la práctica, conseguían gran velocidad tecleando la secuencia de comandos para iniciar un tratamiento. Pero debido a un fallo de programación, si durante este proceso efectuaban una corrección en menos de ocho segundos, la máquina podía emitir 100 veces más energía de la requerida. A consecuencia de este "bug" murieron al menos cinco pacientes y varias decenas sufrieron los efectos de verse expuestos a una elevada radiación.
4. El 'Gusano de Morris':El primer 'gusano' de Internet nació la tarde del 2 de noviembre de 1988, cuando un estudiante estadounidense, Tappan Morris, liberó un programa creado por él mismo que infectó entre 2.000 y 6.000 ordenadores sólo el primer día, antes de ser rastreado y eliminado. Para que su 'gusano' tuviera efecto, Morris descubrió dos errores en el sistema operativo UNIX, que le permitieron tener acceso no autorizado a miles de ordenadores.
Esto demuestra cuán difícil es el proceso de llevar a cabo una buena gestión de calidad y pruebas sobre el software, además de la importancia que tiene, por el impacto que puede tener a nivel social, pudiendo causar cualquier omisión o falla no detectada, pérdidas materiales y económicas, y peor aún, pérdidas humanas.
http://www.lisi.usb.ve/

No hay comentarios:

Publicar un comentario