Algunos Conceptos Básicos Sobre SQA
Algunos Conceptos Básicos Sobre SQA
Algunos Conceptos Básicos Sobre SQA
El Aseguramiento de la Calidad de Software es una actividad, para toda empresa que desarrolle software y debe
llevarla a cabo de una manera limpia y correcta. Es un proceso de ingeniería de software que se define como un
“conjunto de acciones planificadas y sistemáticas que son necesarias para proporcionar la confianza adecuada en que
- “Revisiones técnicas formales que se aplican durante cada fase del proceso de desarrollo de software”, que ayudan
- Un procedimiento que asegure, siempre que sea posible, un ajuste a los estándares de desarrollo del software.
- Verificación.
- Validación.
- Gestión de Configuración.
- Medición de software.
Ingeniería de Software
Existen varias definiciones de Ingeniería de Software, que son el resultado de investigaciones que concluyen en dar
una definición exacta de lo que es esta disciplina de la ingeniería. En este apartado se colocan las siguientes
definiciones:
- La ingeniería de software es el establecimiento de y uso de los principios robustos de la ingeniería a fin de obtener
económicamente software que sea fiable y que funcione eficientemente sobre computadoras reales (Fritz Bauer).
La ingeniería de software establece en cada uno de los proyectos o programas de desarrollo un proceso definido que
debe ser llevado a cabo con éxito cumpliendo estándares de implementación y mejores prácticas.
Estándares de implementación
Los estándares de implementación darán el punto de partida de la codificación, estos son tan importantes como la
arquitectura que se va a utilizar para el desarrollo de la aplicación. Los estándares de implementación no son reglas
de codificación que el desarrollador debe cumplir. Desde la descripción de un modulo, pasando por la descripción de
un archivo hasta la descripción de una variable que participa en un método de una clase. Los estándares de
implementación se han definido y utilizado con mayor rigidez desde el inicio de la programación orientada a objetos.
Cada empresa de desarrolla software debe tener un conjunto de estándares de implementación. Estos deben estar
de acuerdo con el tipo de aplicación que se desarrolle, la complejidad y sobre todo el tamaño.
Estos estándares debe ser utilizados, en este proyecto, para apoyar al marco de trabajo, el estudiante debe
Proceso de Software
El proceso de software está en base a su definición, es decir, todo proceso que se sigue debe ser definido en sus
a. Son complejos.
b. No son procesos de producción típicos, ya que están dirigidos por excepciones, se ven muy determinados por
circunstancias impredecibles y cada uno tiene peculiaridades que lo distinguen de los demás.
c. Tampoco son procesos de ingeniería pura, ya que se desconocen las abstracciones adecuadas (no existe una
ciencia experimental en la apoyarse), dependen de demasiada gente, el diseño y la producción no están claramente
diferenciados, y los presupuestos, calendarios y calidad no pueden ser planificados de forma suficientemente fiable.
d. No son (completamente) procesos creativos, ya que algunas partes pueden ser descritas en detalle y algunos
marcos de trabajo predefinidos: los entregables generan nuevos requisitos; los costes del cambio del software no
suelen reconocerse; y el éxito depende de la implicación del usuario y de la coordinación de muchos roles (ventas,
Dirección de Proyecto
La gestión de proyectos es la disciplina de organizar y administrar recursos de manera tal que se pueda culminar
todo el trabajo requerido en el proyecto dentro del alcance, el tiempo, y coste definidos.
- Alcance. Se refiere a lo que se debe hacer para producir el resultado final del proyecto.
Estas tres restricciones son frecuentemente competidoras entre estas: incrementar el alcance típicamente aumenta el
tiempo y el costo, una restricción fuerte de tiempo puede significar un incremento en costos y una reducción en los
alcances, y un presupuesto limitado puede traducirse en un incremento en tiempo y una reducción de los alcances.
Calidad de Software
- Es el grado en el que el software satisface una serie de requisitos de operación preestablecidos, los estándares de
desarrollo específicos con anterioridad y las características inherentes a todo producto de software desarrollado de
Existen tres puntos importantes respecto a la definición que se ha presentado y son las siguientes:
1. Los requisitos de del software son la base de las medidas de la calidad. La falta de concordancia de estos es una
falta de la calidad. los requisitos son los objetivos para todo el desarrollo de software.
2. Los estándares definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería de
software se ajusta a sus requisitos explícitos pero falla en alcanzar los requisitos implícitos, la calidad queda
entredicha.
Estos puntos dan como resultado cuatro enfoques en el desarrollo de software, cada uno de estos debe ser
El primero es el personal, muchos investigadores dicen que una sola persona tiene poca probabilidad para lograr
realizar todas las actividades del desarrollo de software y cumplan una calidad planificada. El desarrollo se debe
realizar en equipo, el cual debe coordinar y alcanzar una comunicación en sus actividades.
El segundo punto es el proyecto, este tiene un ciclo de vida, el cual debe cumplir el siguiente ciclo de desarrollo:
- Inicialización.
- Planificación.
- Ejecución.
- Control y Seguimiento.
- Cierre
Otro punto importante es el producto, este tiene un ciclo de vida, las etapas son conocidas ampliamente
(planificación, análisis, diseño, implementación), pero el resultado, el producto, debe ser validado (pruebas) y
certificado, si es posible, por alguna organización externa o por un grupo interno que garantice que el producto es el
correcto y cumpla con los objetivos (requisitos) que se han identificado. Para esto se debe implantar en distintas
Por último, está el Proceso de Software, es el punto más importante y será el que dará los márgenes para llevar a
cabo el desarrollo, el proceso de software involucra la planificación de los otros puntos ya vistos.
El proceso opera en dos niveles (nivel organizacional y nivel de proyecto). A nivel de proyecto ayuda a satisfacer las
metas del proyecto (Alta Calidad y productividad). A nivel de la organización ayuda a satisfacer los objetivos de la
La Tecnología, enfoque no menos importante que los anteriores. Si no se toma en cuenta, es muy probable no
cumplir con los requisitos. Este enfoque se entiende con un ejemplo, que es el siguiente: No se puede desarrollar un
software, hoy en día, en una maquina con un procesador 8086, ya que esta tecnología es muy antigua y es muy
Proceso de Evaluación.
Una evaluación corresponde al estudio y análisis de uno o más procesos realizado por un equipo capacitado de
profesionales, utilizando un modelo de referencia de evaluación como base para determinar, a lo menos, fortalezas y
debilidades dentro de una organización. Un método de evaluación puede ser aplicado para distintos propósitos,
incluyendo evaluaciones internas para mejora de los procesos, evaluaciones de capacidad de selección de
Verificación.
La verificación es parte del proceso de evaluación y está conformado por los métodos que conforman las revisiones y
auditorias de configuración.
El objetivo principal es “demostrar que el producto, componentes del producto y artefactos cumplan con los
requisitos establecidos”. Involucra la definición de del producto o servicio y artefactos intermedios con respecto a los
requisitos seleccionados, incluyendo requisitos del cliente, del producto o servicio y componentes del producto o
servicio. El mejoramiento de proceso y de la calidad está fuertemente enlazado con la verificación. Ya que esta, se
aplica al producto y artefactos, comenzando con la verificación de los requisitos, pasando por la verificación de
- Preparar la Verificación. Una preparación es necesaria para asegurar que los requerimientos de verificación están
incluidos en los requerimientos del producto y las componentes del producto, diseños, planes de desarrollo y
- Realizar revisiones de pares. La revisión de pares es un análisis metodológico de artefactos realizado por los
productores o desarrolladores pares para identificar defectos a ser removidos y recomendar otros cambios según
sean necesarios. Además, es un método de ingeniería importante y efectivo implementado vía inspecciones u otros
métodos de revisión.
- Verificar Artefactos Seleccionados. Los métodos, procedimientos y criterios de evaluación son usados para verificar
que el artefacto seleccionado y cualquier mantención asociada, entrenamiento y servicios de soporte usan el
ambiente de verificación apropiado. Actividades de verificación deben ser realizadas durante todo el ciclo de vida del
producto.
Validación
El objetivo principal es “demostrar que el producto, componentes del producto y artefactos corresponden a lo
El propósito de Validación es demostrar que un producto o componentes del producto cumplen su uso planeado
Actividades de validación pueden ser aplicadas a todos los aspectos del producto en cualquiera de sus ambientes
planeados, tal como operación, entrenamiento, manufactura, mantención, y servicios de soporte. Los métodos
empleados para conseguir la validación pueden ser aplicados a artefactos así como también a productos o servicios y
Generalmente en el desarrollo de software se atribuye a esta actividad a los distintos tipos de prueba del producto,
ya sea de fases tempranas o la fase final. Entre otras atribuciones están la prueba de los casos de uso que define
UML para el desarrollo y descripción de un software. Entre estos tipos de prueba se encuentran los siguientes:
- Pruebas de Aceptación. Pruebas realizadas por el usuario quien comprueba en su ambiente de operación el sistema
- Pruebas de Análisis de Valor Límite: Prueba que tiene por objetivo verificar la ejecución de programa analizando los
valores límite de los tipos de datos especificados. Para ello se debe probar con valores dentro y fuera de los límites
- Pruebas de Caja Blanca: Los objetivos de este tipo de pruebas es garantizar la ejecución por lo menos una vez
todos los caminos independientes de cada modulo, la ejecución de todas las decisiones lógicas en sus caminos
verdadero y falso, la ejecución de todos los lazos en sus límites, y la ejecución de las estructuras internas de datos
- Pruebas Caja de Cristal: Prueban por lo menos una vez todos los caminos en el control de cada componente y
- Pruebas de Caja Negra: Las pruebas de caja negra se centran en los requerimientos funcionales. Permiten al
ingeniero del software obtener un conjunto de entradas que prueben completamente los requerimientos funcionales
de un programa sin importar los detalles internos del programa, a fin de verificar que el programa corra bien.
- Pruebas de Caja de Pandora: Consiste en abstenerse de realizar pruebas de depurar bastante bien un proyecto; se
- Pruebas de Comparación: Consiste en la comparación de las salidas de las distintas versiones de una misma
- Pruebas Funcionales: Buscan satisfacer los requerimientos funcionales de las componentes del producto o producto
final.
- Pruebas de Instalación: Pruebas que buscan satisfacer los requerimientos de operación del sistema.
- Pruebas de Regresión: Las pruebas de regresión consisten en a realizar pruebas ejecutadas previamente, con el fin
de asegurar de que los cambios hecho en el código no ha provocado efectos laterales no deseados.
- Pruebas de Rendimiento: Buscan satisfacer los requerimientos no funcionales asociados satisfacer requerimientos
sistema ante cualquier amenaza definida que pueda llegar a tener en su operación.
- Prueba de Validación: el producto final se prueba para definir si cumple los requerimientos funcionales y de
Entre las actividades que se deben preparar y planificar están las siguientes:
- Preparación de la validación. Actividades de preparación incluyen la selección de productos y los componentes del
producto para validación, y establecer y mantener el ambiente, procedimientos y criterios de validación. Los
artefactos seleccionados para validación pueden incluir sólo el producto o puede incluir niveles apropiados de las
componentes del producto que son usados para construir el producto. El ambiente de Integración de Productos,
- Establecer el ambiente para la validación. Los requisitos para el ambiente de validación son manejados por el
producto o las componentes de productos seleccionadas, por el tipo de artefacto (por ejemplo, diseño, prototipo,
versión final) y por los métodos de validación. Esto podría producir requisitos para la compra o desarrollo de
equipamiento, software u otros recursos. El entorno de validación puede incluir la reutilización de recursos
existentes.
- Establecer procedimientos y criterios de validación. Procedimientos y criterios de validación son definidos para
asegurar que el producto o las componentes del producto van a satisfacer su uso planificado cuando es ubicado en
procedimientos de validación.
- Validar productos o componentes del producto o artefacto. Los métodos, procedimientos y criterios de validación
son usados para validar los productos y las componentes de los productos seleccionados y cualquier mantenimiento,
entrenamiento y servicios de apoyo asociado usando el apropiado ambiente de validación. Actividades de validación
- Determinar el plan de aseguramiento de la calidad para un proyecto de desarrollo siguiendo un proceso definido.
- Participar en el desarrollo del plan de proyecto de desarrollo de software, estándares a seguir, procedimientos,
herramientas y métodos.
- Revisar las actividades de ingeniería de software para verificar su conformidad de cada una de estas.
- Conducir revisiones periódicas de las actividades con los clientes de la forma más apropiada.