SlideShare una empresa de Scribd logo
1 de 31
UNIVERSIDAD TECNOLOGICA DE COAHUILA 
CARRERA: 
Ing. Tecnologías de la información 
ASIGNATURA: 
Optativa II 
PROFESOR: 
Luis Carlos Gonzalez Valdez 
9ITIN A 
Saber Unidad II 
ALUMNO: 
Cantú Martínez Matías Arturo 
García Encina Marlon Javier 
Calderón Llamas Felipe Daniel 
5 de Agosto del 2014 Ramos Arizpe, Coah.
IEEE 12207 
Esta norma establece un marco de referencia común para los procesos del ciclo 
de vida del software, con una terminología bien definida a la que puede hacer 
referencia la industria del software. Contiene procesos, actividades y tareas para 
aplicar durante la adquisición de un sistema que contiene software, un producto 
software puro o un servicio software, y durante el suministro, desarrollo, operación 
y mantenimiento de productos software. El software incluye la parte software del 
firmware .Esta norma incluye también un proceso que puede emplearse para 
definir, controlar y mejorar los procesos del ciclo de vida del software. Esta 
revisión se integra la norma ISO / IEC 12207:1995, con sus dos enmiendas y se 
coordinó con la revisión paralela de la norma ISO / IEC 15288:2002 (procesos del 
ciclo de vida del sistema) para alinear la estructura, los términos y los procesos 
organizativos y de proyecto correspondientes. Esta norma se puede utilizar 
independiente o en conjunto con ISO / IEC 15288, y suministra un modelo de 
referencia de proceso que apoya la evaluación de capacidad de proceso de 
acuerdo con la norma ISO / IEC 15504-2 (evaluación del proceso). 
Los procesos en el que este se divide son:
Procesos de Adquisición 
 Actividades y tareas que el comprador, cliente o usuario utilizan para 
adquirir un sistema producto o software. 
 Preparación y publicación de una solicitud de ofertas. 
 Selección del sumistrador del software. 
 Gestión de los procesos de adquisición hasta la aceptación del producto 
 
Proceso de suministro 
1. Se inicia al preparar una propuesta para atender una petición de un 
comprador, o por la firma de un contrato con el comprador para 
proporcionarle un producto software 
2. Identificación de procedimientos y recursos para gestionar bien el proyecto. 
3. Desarrollo de los planes del proyecto. 
4. Ejecución de los planes del proyecto hasta la entrega del producto software 
al comprador. 
Proceso de desarrollo 
Contiene las actividades y tareas realizadas por el desarrollador 
 Implementación del proceso. 
 Análisis de requisitos del sistema. 
 Diseño de la arquitectura del sistema. 
 Análisis de los requisitos del software. 
 Diseño de la arquitectura del software. 
 Diseño detallado del software. 
 Codificación y prueba del software. 
 Integración del software. 
 Prueba del software. 
 Integración del sistema. 
 Prueba del sistema. 
 Instalación del software. 
 Soporte del proceso de 
 Aceptación del software.
Proceso de explotación 
Explotación del software y del soporte del mismo. El sistema debe ser 
operado de acuerdo con la documentación del usuario en su entorno 
previsto sino: 
 Desarrollar un plan para llevar a cabo las actividades y tareas de este 
proceso. 
 Procedimientos para comprobar el producto software en su entorno de 
operación, enviando informes de problemas y peticiones de modificación al 
Proceso de mantenimiento 
 El operador debe proporcionar asistencia a los usuarios 
1. El software o la documentación necesitan ser modificado, debido a 
problemas o a necesidades de mejora o adaptación, por ejemplo: 
2. Nuevos errores detectados 
3. Necesidad de mejoras 
4. Migración a un nuevo entorno operativo 
Procesos de soporte 
 Si rven de apoyo al resto de procesos 
Proceso de documentación 
 Registrar la información producida por cualquier proceso o actividad del 
ciclo de vida 
 Gestiona los documentos necesarios para todas las personas involucradas 
en el proceso software: directores, ingenieros, personal de desarrollo, 
usuarios del sistema, etc.
Proceso de gestión de la configuración 
 Configuración del software involucra: Programas, Documentación y Datos. 
 En aplicaciones grandes, la gestión de la configuración del software se 
convierte en un problema. 
Proceso de aseguramiento de la calidad 
 Aporta confianza en que los procesos y los productos software del ciclo de 
vida cumplen con los requisitos especificados y se ajustan a los planes 
establecidos. 
 El Aseguramiento dela calidad puede ser: interno o externo. Usa resultados 
de otros procesos de apoyo: verificación, validación, auditorías, etc. 
Proceso de verificación 
 Verificación horizontal: 
Si los productos software de cada fase del ciclo de vida cumplen los requisitos 
impuestos sobre ellos en las fases previas 
 Verificación vertical: 
¿Estamos construyendo correctamente el producto? 
Proceso de validación 
 Indica si el sistema o software final cumple con las necesidades del usuario. 
También se puede validar una especificación 
 Puede ser realizado por una organización de servicios independiente 
(proceso de validación independiente). 
 ¿Estamos construyendo el producto correcto?
Proceso de revisión conjunta 
Evaluar el estado del software y sus productos en una actividad del ciclo de vida o 
fase del proyecto. Se realiza durante todo el ciclo de vida: 
 A nivel de gestión 
 A nivel técnico del proyecto 
Proceso de auditoria 
Tipos de auditoria informática: 
 De explotación 
 De sistemas 
 De comunicaciones 
 De desarrollo de proyectos 
 De seguridad 
 Fraudes y delitos económicos producidos en las empresas (a veces por los 
propios empleados, sin conocimiento dé la dirección) 
 Problemas en privacidad y seguridad (auditoria de seguridad informática, 
tanto lógica como física) 
 La corrección de los datos de entrada (auditoria informática de datos) 
 Problemas de diseño del sistema informático
Esta norma es aplicable a la adquisición de sistemas, productos y servicios 
software, al suministro, desarrollo, operación y mantenimiento de productos 
software, y a la parte software del firmware, independientemente de que sea 
hecho interna o externamente a una organización. Incluye también aquellos 
aspectos de la definición del sistema necesario para proporcionar el contexto de 
los productos y servicios software .NOTA - Es necesario que los procesos usados 
durante el ciclo de vida del software sean compatibles con los procesos usados 
durante el ciclo de vida del sistema. 
Esta norma está orientada para ser usada en situaciones en las que haya dos 
partes, incluido el caso en que estas dos partes pertenezcan a la misma 
organización. La situación puede ir desde un acuerdo informal, hasta un contrato 
con responsabilidades legales. Esta norma puede ser usada por una sola parte 
como una auto imposición., no está dirigida a productos software pree laborados, 
a no ser que formen parte de un producto entregable .Esta norma está escrita para 
adquisidores de sistemas y productos y servicios software, y para suministradores, 
desarrolladores, operadores, mantenedores, gerentes, responsables de 
aseguramiento de calidad y usuarios de productos software. 
Se define como cumplimiento de esta norma la ejecución de todos los procesos, 
actividades y tareas seleccionados de esta norma para el proyecto software, 
mediante el Proceso de Adaptación. La ejecución de un proceso o una actividad 
es completa cuando todas las tareas requeridas por el proceso o actividad se 
llevan a cabo de acuerdo con los criterios preestablecidos y los requisitos 
especificados en el contrato como aplicables describe la arquitectura de los 
procesos del ciclo de vida del software, pero no especifica los detalles de cómo 
implementar o llevar a cabo las actividades y tareas incluidas en los procesos. 
Esta norma no pretende prescribir el nombre, el formato o el contenido explícito de 
la documentación que se genere. Si bien esta norma puede requerir la elaboración 
de diversos documentos de parecido tipo o clase (un ejemplo son los distintos 
tipos de planes), esto no implica que dichos documentos se desarrollen, agrupen o 
se mantengan separados de alguna manera. Estas decisiones se dejan para el 
usuario de esta norma, no prescribe un método o un modelo de ciclo de vida 
concreto para el desarrollo del software. Las partes en esta norma son las 
responsables de seleccionar un modelo de ciclo de vida para el proyecto software, 
y de elaborar una correspondencia entre los procesos, actividades y tareas de 
esta norma y los de dicho modelo. Las partes son también responsables de 
seleccionar y aplicar los métodos de desarrollo del software, y de llevar a cabo las 
actividades y tareas adecuadas para el proyecto software. 
Las actividades que pueden llevarse a cabo durante el ciclo de vida del software 
en cinco procesos principales, ocho procesos de apoyo y cuatro procesos 
organizativos. Cada proceso del ciclo de vida está dividido en un conjunto de 
actividades; cada actividad se subdivide a su vez en un conjunto de tareas. 
Los procesos principales del ciclo de vida son cinco procesos que dan servicio a 
las partes principales durante el ciclo de vida del software. Una parte principal es
la que inicia o lleva a cabo el desarrollo, operación o mantenimiento de productos 
software. Estas partes principales son el adquisidor, el suministrador, el 
desarrollador, el operador y el mantenedor de productos software. 
Proceso de adquisición. Define las actividades del adquisidor, organización que 
adquiere un sistema, producto software o servicio software.2) Proceso de 
suministro. Define las actividades del suministrador, organización que proporciona 
el sistema, producto software o servicio software al adquisidor.3) Proceso de 
desarrollo. Define las actividades del desarrollador, organización que define y 
desarrolla el producto software. 
Proceso de operación. Define las actividades del operador, organización que 
proporciona el servicio de operar un sistema informático en su entorno real, para 
sus usuarios.5) Proceso de mantenimiento. Define las actividades del mantenedor, 
organización que proporciona el servicio de mantenimiento del producto software; 
esto es, la gestión de las modificaciones al producto software actualizada y 
operativa. Este proceso incluye la migración y retirada del producto software 
Un proceso de apoyo es el que apoya a otro proceso como parte esencial del 
mismo, con un propósito bien definido, y contribuye al éxito y calidad del proyecto 
software. Un proceso de apoyo se emplea y ejecuta por otro proceso según sus 
necesidades 
Proceso de documentación. Define las actividades para el registro de la 
información producida por un proceso del ciclo de vida.2) Proceso de gestión de la 
configuración. Define las actividades de gestión de la configuración.3) Proceso de 
aseguramiento de la calidad. Define las actividades para asegurar, de una manera 
objetiva, que los productos software y los procesos son conformes a sus requisitos 
especificados y se ajustan a sus planes establecidos. Se pueden emplear 
Revisiones Conjuntas, Auditorías, Verificación y Validación como técnicas de 
Aseguramiento de la Calidad
ISO 9126 
SO 9126: CALIDAD DEL SOFTWARE Y METRICAS DE EVALUACION 
La sigla ISO responde a los términos en inglés "International Organization for 
Standardization" que traducido al idioma español es "Organización Internacional 
de Normalización". La ISO es la federación mundial de organismos de 
normalización que estudia y aprueba aquellas normas de aplicación internacional. 
La ISO, bajo la norma ISO-9126, ha establecido un estándar internacional para la 
evaluación de la calidad de productos de software el cual fue publicado en 1992 
con el nombre de “Information technology –Software product evaluation: Quality 
characteristics and guidelines for their use”, en el cual se establecen las 
características de calidad para productos de software. 
El estándar ISO-9126 establece que cualquier componente de la calidad del 
software puede ser descrito en términos de una o más de seis características 
básicas, las cuales son: Funcionalidad, confiabilidad, usabilidad, eficiencia, 
mantenibilidad y portabilidad; cada una de las cuales se detalla a través de un 
conjunto de subcaracterísticas que permiten profundizar en la evaluación de la 
calidad de productos de software. 
ISO 9126 es un estándar internacional para la evaluación de la calidad del 
software. Está reemplazado por el proyecto SQuaRE, ISO 25000:2005, el cual 
sigue los mismos conceptos.
El estándar está dividido en cuatro partes las cuales dirigen, realidad, métricas 
externas, métricas internas y calidad en las métricas de uso y expendido. 
El modelo de calidad establecido en la primera parte del estándar, ISO 9126- 
1, clasifica la calidad del software en un conjunto estructurado de 
características y sus caracterí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 - Atributos del software relacionados con la presencia y aptitud 
de un conjunto de funciones para tareas especificadas. 
 Exactitud - Atributos del software relacionados con la disposición de 
resultados o efectos correctos o acordados. 
 Interoperabilidad - Atributos del software que se relacionan con su 
habilidad para la interacción con sistemas especificados. 
 Seguridad - Atributos del software relacionados con su habilidad para 
prevenir acceso no autorizado ya sea accidental o deliberado, a programas 
y datos. 
 Cumplimiento funcional. 
 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 - Atributos del software que se relacionan con la frecuencia de 
falla por fallas en el software. 
 Recuperabilidad - Atributos del software que se relacionan con la 
capacidad para restablecer su nivel de desempeño y recuperar los datos 
directamente afectos en caso de falla y en el tiempo y esfuerzo relacionado 
para ello. 
 Tolerancia a fallos - Atributos del software que se relacionan con su 
habilidad para mantener un nivel especificado de desempeño en casos de 
fallas de software o de una infracción a su interfaz especificada.
 Cumplimiento de Fiabilidad - La capacidad del producto software para 
adherirse a normas, convenciones o legislación relacionadas con la 
fiabilidad. 
 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- Atributos del software que se relacionan al esfuerzo de los 
usuarios para reconocer el concepto lógico y sus aplicaciones. 
 Comprensión - Atributos del software que se relacionan al esfuerzo de los 
usuarios para reconocer el concepto lógico y sus aplicaciones. 
 Operatividad - Atributos del software que se relacionan con el esfuerzo del 
usuario para la operación y control del software. 
 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 - Atributos del software que se relacionan 
con los tiempos de respuesta y procesamiento y en las tasas de 
rendimientos en desempeñar su función. 
 Comportamiento de recursos - Usar las cantidades y tipos de recursos 
adecuados cuando el software lleva a 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 - Atributos 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 - Atributos del software relacionados con el 
esfuerzo necesario para instalar el software en un ambiente especificado. 
 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. 
La subcaracterística Conformidad no está listada arriba ya que se aplica a todas 
las características. Ejemplos son conformidad a la legislación referente a 
usabilidad y fiabilidad. 
Cada subcaracterística (como adaptabilidad) está dividida en atributos. Un atributo 
es una entidad la cual puede ser verificada o medida en el producto software. Los 
atributos no están definidos en el estándar, ya que varían entre diferentes 
productos software. 
Un producto software está definido en un sentido amplio como: los ejecutables, 
código fuente, descripciones de arquitectura, y así. Como resultado, la noción de 
usuario se amplía tanto a operadores como a programadores, los cuales son 
usuarios de componentes como son bibliotecas software. 
El estándar provee un entorno para que las organizaciones definan un modelo de 
calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada 
organización la tarea de especificar precisamente su propio modelo. Esto podría 
ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad 
las cuales evalúan el grado de presencia de los atributos de calidad.
Métricas internas son aquellas que no dependen de la ejecución del software 
(medidas estáticas). 
Métricas externas son aquellas aplicables al software en ejecución. 
La calidad en las métricas de uso están sólo disponibles cuando el producto final 
es usado en condiciones reales. 
Idealmente, la calidad interna no necesariamente implica calidad externa y esta a 
su vez la calidad en el uso. 
Este estándar proviene desde el modelo establecido en 1977 por McCall y sus 
colegas, los cuales propusieron un modelo para especificar la calidad del software. 
El modelo de calidad McCall está organizado sobre tres tipos de Características 
de Calidad: 
 Factores (especificar): Describen la visión externa del software, como es visto 
por los usuarios. 
 Criterios (construir): Describen la visión interna del software, como es visto por 
el desarrollador. 
 Métricas (controlar): Se definen y se usan para proveer una escala y método 
para la medida. 
ISO 9126 distingue entre fallo y no conformidad. Un fallo es el incumplimiento de 
los requisitos previos, mientras que la no conformidad es el incumplimiento de los 
requisitos especificados. Una distinción similar es la que se establece entre 
validación y verificación. 
PERFIL DE CALIDAD USANDO ISO/IEC 9126 
Un perfil de calidad permite focalizar la definición o evaluación de calidad de un 
producto de software en los criterios de calidad más importantes según el contexto 
requerido. 
En un perfil están definidos: 
· Los atributos y subcaracterísticas relevantes para el producto de software. 
· Las métricas que se usarán en la medición. 
· Los rangos de aceptación de esas métricas. 
El estándar provee un entorno para que las organizaciones definan un modelo de 
calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada 
organización la tarea de especificar precisamente su propio modelo. Esto podría 
ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad 
las cuales evalúan el grado de presencia de los atributos de calidad.
Métricas internas son aquellas que no dependen de la ejecución del software 
(medidas estáticas). 
Métricas externas son aquellas aplicables al software en ejecución. 
La calidad en las métricas de uso están sólo disponibles cuando el producto final 
es usado en condiciones reales. Idealmente, la calidad interna determina la 
calidad externa y esta a su vez la calidad en el uso.
Pruebas de software 
1.- PRUEBA UNITARIA 
 Objetivo de la Prueba: 
Se focaliza en ejecutar cada módulo (o unidad minima a ser probada, ej = una 
clase) lo que provee un mejor modo de manejar la integración de las unidades en 
componentes mayores. 
Busca asegurar que el código funciona de acuerdo con las especificaciones y que 
el módulo lógico es válido. 
 Descripción de la Prueba: 
Particionar los módulos en pruebas en unidades lógicas fáciles de probar. 
Por cada unidad hay que definir los casos de prueba (pruebas de caja blanca). 
Para esto los casos de prueba deben diseñarse de forma tal que se recorran todos 
los caminos de ejecución posibles dentro del código bajo prueba; por lo tanto el 
diseñador debe construirlos con acceso al código fuente de la unidad a probar. 
Los aspectos a considerar son los siguientes: Rutinas de excepción, Rutinas de 
error, Manejo de parámetros, Validaciones, Valores válidos, Valores límites, 
Rangos, Mensajes posibles. 
 Técnica: 
Comparar el resultado esperado con el resultado obtenido. 
Si existen errores, reportarlos. 
 Criterio de Completitud: 
Todas las pruebas planeadas han sido ejecutadas. 
Todos los defectos que se identificaron han sido tenidos en cuenta. 
 Consideraciones Especiales: 
Para la elaboración de pruebas unitarias en java se puede utillizar el JUNIT y 
CACTUS.
2.- PRUEBAS DE INTEGRACIÓN 
 Objetivo de la Prueba: 
-Identificar errores introducidos por la combinación de programas probados 
unitariamente. 
-Determina cómo la base de datos de prueba será cargada. 
-Verificar que las interfaces entre las entidades externas (usuarios) y las 
aplicaciones funcionan correctamente. 
-Verificar que las especificaciones de diseño sean alcanzadas. 
-Determina el enfoque para avanzar desde un nivel de integración de las 
componentes al siguiente. 
 Descripción de la Prueba: 
-Describe cómo verificar que las interfaces entre las componentes de software 
funcionan correctamente. 
-Determina cómo la base de datos de prueba será cargada. 
-Determina el enfoque para avanzar desde un nivel de integración de las 
componentes al siguiente. 
-Decide qué acciones tomar cuando se descubren problemas. 
Por cada Caso de Prueba ejecutado: 
Comparar el resultado esperado con el resultado obtenido. 
 Técnica: 
Utilizar la técnica top-down. Se empieza con los módulos de nivel superior, y se 
verifica que los módulos de nivel superior llaman a los de nivel inferior de manera 
correcta, con los parámetros correctos. 
Utilizar la técnica down-top. Se empieza con los módulos de nivel inferior, y se 
verifica que los módulos de nivel inferior llaman a los de nivel superior de manera 
correcta, con los parámetros correctos. 
 Criterio de Completitud: 
Todas las pruebas planeadas han sido ejecutadas. 
Todos los defectos que se identificaron han sido tenidos en cuenta. 
 Consideraciones Especiales: 
Ninguna
3.- PRUEBA DE LA CAJA BLANCA 
La prueba de la caja blanca es un método de diseño de casos de prueba que usa 
la estructura de control del diseño procedimental para derivar los casos de prueba. 
Las pruebas de caja blanca intentan garantizar que: 
• Se ejecutan al menos una vez todos los caminos independientes de cada módulo 
• Se utilizan las decisiones en su parte verdadera y en su parte falsa 
• Se ejecuten todos los bucles en sus límites 
• Se utilizan todas las estructuras de datos internas 
3.1. Prueba del camino básico 
El método del camino básico (propuesto por McCabe) permite obtener una medida 
de la complejidad de un diseño procedimental, y utilizar esta medida como guía 
para la definición de una serie de caminos básicos de ejecución, diseñando casos 
de prueba que garanticen que cada camino se ejecuta al menos una vez. 
3.1.1. Notación del grafo de flujo o grafo del programa 
Representa el flujo de control lógico con la siguiente notación: 
A continuación se muestra un ejemplo basado en un diagrama de flujo que 
representa la estructura de control del programa.
En el grafo de flujo 
• Cada nodo representa una o más sentencias procedimentales 
• Un solo nodo puede corresponder a una secuencia de pasos del proceso y a una 
decisión 
• Las flechas (aristas) representan el flujo de control
Cualquier representación del diseño procedimental se puede traducir a un grafo de 
flujo. 
Si en el diseño procedimental se utilizan condiciones compuestas, la generación 
del grafo de flujo tiene que descomponer las condiciones compuestas en 
condiciones sencillas, tal y como muestra la figura siguiente. 
3.1.2. Complejidad ciclomática 
Es una medida que proporciona una idea de la complejidad lógica de un 
programa. 
• La complejidad ciclomática coincide con el número de regiones del grafo de flujo 
• La complejidad ciclomática, V(G), de un grafo de flujo G, se define como V(G) = 
Aristas -Nodos +2 
• La complejidad ciclomática, V(G), de un grafo de flujo G, también se define como 
V(G) = Nodos de predicado + 1 
A partir del grafo de flujo de la figura 4, la complejidad ciclomática sería: 
• Como el grafo tiene cuatro regiones, V(G) = 4 
• Como el grafo tiene 11 aristas y 9 nodos, V(G) = 11 - 9 - 2 = 4 
• Como el grafo tiene 3 nodos predicado, V(G) = 3 + 1 = 4 
A partir del valor de la complejidad ciclomática obtenemos el número de caminos 
independientes, que nos dan un valor límite para el número de pruebas que 
tenemos que diseñar. 
En el ejemplo, el número de caminos independientes es 4, y los caminos 
independientes son:
• 1-11 
• 1-2-3-4-5-10-1-11 
• 1-2-3-6-7-9-10-1-11 
• 1-2-3-6-8-9-10-1-11 
3.1.3. Pasos del diseño de pruebas mediante el camino básico 
• Obtener el grafo de flujo, a partir del diseño o del código del módulo 
• Obtener la complejidad ciclomática del grafo de flujo 
• Definir el conjunto básico de caminos independientes 
• Determinar los casos de prueba que permitan la ejecución de cada uno de los 
caminos anteriores 
• Ejecutar cada caso de prueba y comprobar que los resultados son los esperados 
3.2. Prueba de bucles 
Los bucles son la piedra angular de la inmensa mayoría de los algoritmos 
implementados en software, por lo que tenemos que prestarles una atención 
especial a la hora de realizar la prueba del software. 
La prueba de bucles es una técnica de prueba de caja blanca que se centra en la 
validez de las construcciones de los bucles. 
Se pueden definir cuatro tipos de bucles diferentes: 
• Bucles simples 
• Bucles concatenados 
• Bucles anidados 
• Bucles no estructurados
3.2.1. Bucles simples 
A los bucles simples (de n iteraciones) se les tiene que aplicar el conjunto de 
pruebas siguientes: 
• Saltar el bucle 
• Pasar sólo una vez por el bucle 
• Pasar dos veces por el bucle 
• Hacer m pasos del bucle con m < n 
• Hacer n-1, n y n+1 pasos por el bucle 
3.2.2. Bucles anidados 
Si extendiésemos el conjunto de pruebas de los bucles simples a los bucles 
anidados, el número de pruebas crecería geométricamente, por lo que Beizer 
sugiere el siguiente conjunto de pruebas para bucles anidados: 
• Comenzar con el bucle más interno, estableciendo los demás bucles a los 
valores mínimos 
• Llevar a cabo las pruebas de bucles simples para el bucle más interno, 
conservando los valores de iteración de los bucles más externos a los valores 
mínimos
• Progresar hacia fuera en el siguiente bucle más externo, y manteniendo los 
bucles más externos a sus valores mínimos 
• Continuar hasta que se hayan probado todos los bucles 
3.2.3. Bucles concatenados 
Probar los bucles concatenados mediante las técnicas de prueba para bucles 
simples, considerándolos como bucles independientes. 
2.2.4. Bucles no estructurados 
Rediseñar estos bucles para que se ajusten a las construcciones de la 
programación estructurada. 
Ejemplo 
Construir el Grafo de Flujo correspondiente a la siguiente especificación del 
software en LDP.
Ejemplo 
Construir el Grafo de Flujo correspondiente al siguiente código de un programa
Ejemplo: 
DECISIONES LÓGICAS 
-Validación del dominio 
1. xMin = Val(txtxMin): xMax = Val(txtxMax) 
2. If xMin < -5 Then 
3. MsgBox "El limite inferior no debe ser menor a -5", vbCritical, "Error" 
4. txtxMax.Text = "" 
Label10(0).Caption = "" 
txtxMin.SetFocus 
Parabola.Cls 
Exit Sub 
7. End If 
5. If xMax > 5 Then 
3. MsgBox "El limite superior no debe ser mayor a 5", vbCritical, "Error" 
4. txtxMin.Text = "" 
txtxMax.Text = "" 
Label10(0).Caption = "" 
txtxMin.SetFocus 
Parabola.Cls 
Exit Sub 
7. End If 
6. If xMin >= xMax Then 
3. MsgBox "El dominio no es válido", vbCritical, "Error" 
4. txtxMin.Text = ""
txtxMax.Text = "" 
txtxMin.SetFocus 
Exit Sub 
7. End If 
- Calculo de tabla de valores para puntos intermedios (razón de cambio 0.5) 
1. If x <> 
2. m = x + 0.5 
3. n = (m ^ 2) + (4 * m) + 5 
4. k = Label12.Count 
5. Load Label12(k) 
With Label12(k) 
.Top = Label12(k - 1).Top + 665 
.Caption = Str(m) 
.Visible = True End With 
6. l = Label13.Count 
7. Load Label13(l) 
With Label13(l) 
.Top = Label13(l - 1).Top + 665 
.Caption = Str(n) 
.Visible = True
End With 
8. End If 
- Calculo para el Ymin y el Ymax 
1. Ymin = f(xMin) 
2. If f(xMax) < ymin =" f(xMax)"> 
4. If xMin < ymin =" f(Xv)"> 
1. Ymax = f(xMin)
2. If f(xMax) > Ymax Then 3. Ymax = f(xMax) 
4. If xMin <> Ymax Then 7. Ymax = f(Xv) 
BUCLES 
DIAGRAMA DE FLUJO DE DATOS (DFD)
4.- PRUEBA DE LA CAJA NEGRA 
Las pruebas de caja negra se llevan a cabo sobre la interfaz del software, 
obviando el comportamiento interno y la estructura del programa. 
Los casos de prueba de la caja negra pretenden demostrar que: 
• Las funciones del software son operativas 
• La entrada se acepta de forma correcta 
• Se produce una salida correcta 
• La integridad de la información externa se mantiene 
A continuación se derivan conjuntos de condiciones de entrada que utilicen todos 
los requisitos funcionales de un programa. 
Las pruebas de caja negra pretenden encontrar estos tipos de errores: 
• Funciones incorrectas o ausentes 
• Errores en la interfaz 
• Errores en estructuras de datos o en accesos a bases de datos externas 
• Errores de rendimiento 
• Errores de inicialización y de terminación 
Los tipos de prueba de cana negra que vamos a estudiar son: 
• Prueba de partición equivalente 
• Prueba de análisis de valores límites 
4.1. Prueba de partición equivalente 
Este método de prueba de caja negra divide el dominio de entrada de un 
programa en clases de datos, a partir de las cuales deriva los casos de prueba. 
Cada una de estas clases de equivalencia representa a un conjunto de estados 
válidos o inválidos para las condiciones de entrada.
4.1.1. Identificación de las clases de equivalencia 
Se identifican clases de equivalencia válidas e inválidas con la siguiente tabla 
A continuación se siguen estas directrices: 
• Si una condición de entrada especifica un rango de valores (p.e, entre 1 y 999), 
se define una CEV (1 <= valor <= 999) y dos CEI (valor < 1 y valor > 999) 
• Si una CE requiere un valor específico (p.e., el primer carácter tiene que ser una 
letra), se define una CEV (una letra) y una CEI (no es una letra) 
• Si una CE especifica un conjunto de valores de entrada, se define una CEV para 
cada uno de los valores válidos, y una CEI (p.e., CEV para "Moto", "Coche" y 
"Camión", y CEI para "Bicicleta") 
• Si una condición de entrada especifica el número de valores (p.e., una casa 
puede tener uno o dos propietarios), identificar una CEV y dos CEI (0 propietarios 
y 3 propietarios) 
4.1.2. Identificación de casos de prueba 
Seguir estos pasos 
• Asignar un número único a cada clase de equivalencia 
• Escribir casos de prueba hasta que sean cubiertas todas las CEV, intentando 
cubrir en cada caso tantas CEV como sea posible 
• Para cada CEI, escribir un caso de prueba, cubriendo en cada caso una CEI 
Ejemplo 
Diseñar casos de prueba de partición equivalente para un software que capte 
estos datos de entrada: 
• Código de área: En blanco o un número de tres dígitos 
• Prefijo: Número de tres dígitos que no comiencen por 0 ó 1
• Sufijo: Número de cuatro dígitos 
• Ordenes: "Cheque", "Depósito", "Pago factura" 
• Palabra clave: Valor alfanumérico de 6 dígitos

Más contenido relacionado

La actualidad más candente

Calidad De Software
Calidad De SoftwareCalidad De Software
Calidad De SoftwareJimmy Campo
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareDomingo Gallardo
 
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSINGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSLenin Acosta Mata
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareJesús Navarro
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsMARCO POLO SILVA SEGOVIA
 
Aseguramiento de la Calidad del Software II
Aseguramiento de la Calidad del Software IIAseguramiento de la Calidad del Software II
Aseguramiento de la Calidad del Software IITensor
 
PLAN DE CAPACITACIÓN PARA USUARIOS FINALES
PLAN DE CAPACITACIÓN PARA USUARIOS FINALESPLAN DE CAPACITACIÓN PARA USUARIOS FINALES
PLAN DE CAPACITACIÓN PARA USUARIOS FINALESPablo Ospina
 
MODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWAREMODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWAREEdwingelviz
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del softwareaagalvisg
 
Ejemplo plan de_pruebas
Ejemplo plan de_pruebasEjemplo plan de_pruebas
Ejemplo plan de_pruebasnicolas2100
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Softwarearacelij
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.Juan Ravi
 

La actualidad más candente (20)

PLAN SQA
PLAN SQAPLAN SQA
PLAN SQA
 
Estimación Software por Puntos de Función
Estimación Software por Puntos de FunciónEstimación Software por Puntos de Función
Estimación Software por Puntos de Función
 
Sqap ejemplos
Sqap ejemplosSqap ejemplos
Sqap ejemplos
 
Calidad De Software
Calidad De SoftwareCalidad De Software
Calidad De Software
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de software
 
Iso 25000
Iso 25000Iso 25000
Iso 25000
 
MoProsoft
MoProsoftMoProsoft
MoProsoft
 
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOSINGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
INGENIERÍA DE REQUISITOS E INGENIERÍA DE REQUERIMIENTOS
 
IEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del softwareIEEE 730 1989: Plan de aseguramiento de la calidad del software
IEEE 730 1989: Plan de aseguramiento de la calidad del software
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Aseguramiento de la Calidad del Software II
Aseguramiento de la Calidad del Software IIAseguramiento de la Calidad del Software II
Aseguramiento de la Calidad del Software II
 
PLAN DE CAPACITACIÓN PARA USUARIOS FINALES
PLAN DE CAPACITACIÓN PARA USUARIOS FINALESPLAN DE CAPACITACIÓN PARA USUARIOS FINALES
PLAN DE CAPACITACIÓN PARA USUARIOS FINALES
 
MODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWAREMODELOS DE CALIDAD DEL SOFTWARE
MODELOS DE CALIDAD DEL SOFTWARE
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del software
 
Proyecto Final - Calidad de Software
Proyecto Final - Calidad de SoftwareProyecto Final - Calidad de Software
Proyecto Final - Calidad de Software
 
Ejemplo plan de_pruebas
Ejemplo plan de_pruebasEjemplo plan de_pruebas
Ejemplo plan de_pruebas
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Estandares ieee
Estandares ieeeEstandares ieee
Estandares ieee
 
tipos de pruebas.
tipos de pruebas.tipos de pruebas.
tipos de pruebas.
 

Similar a Ieee 12207

Norma tecnica peruana grupo paty
Norma tecnica peruana grupo patyNorma tecnica peruana grupo paty
Norma tecnica peruana grupo patygequito
 
Norma tecnica peruana grupo paty
Norma tecnica peruana grupo patyNorma tecnica peruana grupo paty
Norma tecnica peruana grupo patygequito
 
Norma tecnica grupo de genix
Norma tecnica grupo de genixNorma tecnica grupo de genix
Norma tecnica grupo de genixgequito
 
Ciclo de vida del software ieee12207 2011
Ciclo de vida del software ieee12207 2011Ciclo de vida del software ieee12207 2011
Ciclo de vida del software ieee12207 2011mrcordova
 
Estandares de desarrollo software.v2.0 1
Estandares de desarrollo software.v2.0 1Estandares de desarrollo software.v2.0 1
Estandares de desarrollo software.v2.0 1Jose Ahumada
 
1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidadtuusuario2
 
Aseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAnita Ortiz
 
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/Julio Pari
 
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)Anthony Escalona
 
1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidadAndrei Hortúa
 
Actividad semana 04 ciclo de vida software
Actividad semana  04   ciclo de vida softwareActividad semana  04   ciclo de vida software
Actividad semana 04 ciclo de vida softwareMauricio Durán
 

Similar a Ieee 12207 (20)

Norma tecnica peruana grupo paty
Norma tecnica peruana grupo patyNorma tecnica peruana grupo paty
Norma tecnica peruana grupo paty
 
Norma tecnica peruana grupo paty
Norma tecnica peruana grupo patyNorma tecnica peruana grupo paty
Norma tecnica peruana grupo paty
 
Norma tecnica grupo de genix
Norma tecnica grupo de genixNorma tecnica grupo de genix
Norma tecnica grupo de genix
 
NTP
NTPNTP
NTP
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Norma 12207
Norma 12207Norma 12207
Norma 12207
 
Iso 12207
Iso 12207Iso 12207
Iso 12207
 
Ciclo de vida del software ieee12207 2011
Ciclo de vida del software ieee12207 2011Ciclo de vida del software ieee12207 2011
Ciclo de vida del software ieee12207 2011
 
ISO 12207 presentacion ppt.pptx
ISO 12207  presentacion ppt.pptxISO 12207  presentacion ppt.pptx
ISO 12207 presentacion ppt.pptx
 
Estandares de desarrollo software.v2.0 1
Estandares de desarrollo software.v2.0 1Estandares de desarrollo software.v2.0 1
Estandares de desarrollo software.v2.0 1
 
Norma tecnica peruana
Norma tecnica peruanaNorma tecnica peruana
Norma tecnica peruana
 
Artículo NTP ISO/IEC 12207
Artículo NTP ISO/IEC 12207Artículo NTP ISO/IEC 12207
Artículo NTP ISO/IEC 12207
 
1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad
 
Aseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQA
 
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/
3 Clase Ciclo De Vida Del Software - http://blog.juliopari.com/
 
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)
Norma ISO 12207 y Normas CMMI (Informe. Equipo 3)
 
1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad1 u4 ciclo_devidacalidad
1 u4 ciclo_devidacalidad
 
Actividad semana 04 ciclo de vida software
Actividad semana  04   ciclo de vida softwareActividad semana  04   ciclo de vida software
Actividad semana 04 ciclo de vida software
 
Clase trece 2011
Clase trece   2011Clase trece   2011
Clase trece 2011
 
Norma tecnica peruana
Norma tecnica peruanaNorma tecnica peruana
Norma tecnica peruana
 

Último

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 

Último (7)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 

Ieee 12207

  • 1. UNIVERSIDAD TECNOLOGICA DE COAHUILA CARRERA: Ing. Tecnologías de la información ASIGNATURA: Optativa II PROFESOR: Luis Carlos Gonzalez Valdez 9ITIN A Saber Unidad II ALUMNO: Cantú Martínez Matías Arturo García Encina Marlon Javier Calderón Llamas Felipe Daniel 5 de Agosto del 2014 Ramos Arizpe, Coah.
  • 2. IEEE 12207 Esta norma establece un marco de referencia común para los procesos del ciclo de vida del software, con una terminología bien definida a la que puede hacer referencia la industria del software. Contiene procesos, actividades y tareas para aplicar durante la adquisición de un sistema que contiene software, un producto software puro o un servicio software, y durante el suministro, desarrollo, operación y mantenimiento de productos software. El software incluye la parte software del firmware .Esta norma incluye también un proceso que puede emplearse para definir, controlar y mejorar los procesos del ciclo de vida del software. Esta revisión se integra la norma ISO / IEC 12207:1995, con sus dos enmiendas y se coordinó con la revisión paralela de la norma ISO / IEC 15288:2002 (procesos del ciclo de vida del sistema) para alinear la estructura, los términos y los procesos organizativos y de proyecto correspondientes. Esta norma se puede utilizar independiente o en conjunto con ISO / IEC 15288, y suministra un modelo de referencia de proceso que apoya la evaluación de capacidad de proceso de acuerdo con la norma ISO / IEC 15504-2 (evaluación del proceso). Los procesos en el que este se divide son:
  • 3. Procesos de Adquisición  Actividades y tareas que el comprador, cliente o usuario utilizan para adquirir un sistema producto o software.  Preparación y publicación de una solicitud de ofertas.  Selección del sumistrador del software.  Gestión de los procesos de adquisición hasta la aceptación del producto  Proceso de suministro 1. Se inicia al preparar una propuesta para atender una petición de un comprador, o por la firma de un contrato con el comprador para proporcionarle un producto software 2. Identificación de procedimientos y recursos para gestionar bien el proyecto. 3. Desarrollo de los planes del proyecto. 4. Ejecución de los planes del proyecto hasta la entrega del producto software al comprador. Proceso de desarrollo Contiene las actividades y tareas realizadas por el desarrollador  Implementación del proceso.  Análisis de requisitos del sistema.  Diseño de la arquitectura del sistema.  Análisis de los requisitos del software.  Diseño de la arquitectura del software.  Diseño detallado del software.  Codificación y prueba del software.  Integración del software.  Prueba del software.  Integración del sistema.  Prueba del sistema.  Instalación del software.  Soporte del proceso de  Aceptación del software.
  • 4. Proceso de explotación Explotación del software y del soporte del mismo. El sistema debe ser operado de acuerdo con la documentación del usuario en su entorno previsto sino:  Desarrollar un plan para llevar a cabo las actividades y tareas de este proceso.  Procedimientos para comprobar el producto software en su entorno de operación, enviando informes de problemas y peticiones de modificación al Proceso de mantenimiento  El operador debe proporcionar asistencia a los usuarios 1. El software o la documentación necesitan ser modificado, debido a problemas o a necesidades de mejora o adaptación, por ejemplo: 2. Nuevos errores detectados 3. Necesidad de mejoras 4. Migración a un nuevo entorno operativo Procesos de soporte  Si rven de apoyo al resto de procesos Proceso de documentación  Registrar la información producida por cualquier proceso o actividad del ciclo de vida  Gestiona los documentos necesarios para todas las personas involucradas en el proceso software: directores, ingenieros, personal de desarrollo, usuarios del sistema, etc.
  • 5. Proceso de gestión de la configuración  Configuración del software involucra: Programas, Documentación y Datos.  En aplicaciones grandes, la gestión de la configuración del software se convierte en un problema. Proceso de aseguramiento de la calidad  Aporta confianza en que los procesos y los productos software del ciclo de vida cumplen con los requisitos especificados y se ajustan a los planes establecidos.  El Aseguramiento dela calidad puede ser: interno o externo. Usa resultados de otros procesos de apoyo: verificación, validación, auditorías, etc. Proceso de verificación  Verificación horizontal: Si los productos software de cada fase del ciclo de vida cumplen los requisitos impuestos sobre ellos en las fases previas  Verificación vertical: ¿Estamos construyendo correctamente el producto? Proceso de validación  Indica si el sistema o software final cumple con las necesidades del usuario. También se puede validar una especificación  Puede ser realizado por una organización de servicios independiente (proceso de validación independiente).  ¿Estamos construyendo el producto correcto?
  • 6. Proceso de revisión conjunta Evaluar el estado del software y sus productos en una actividad del ciclo de vida o fase del proyecto. Se realiza durante todo el ciclo de vida:  A nivel de gestión  A nivel técnico del proyecto Proceso de auditoria Tipos de auditoria informática:  De explotación  De sistemas  De comunicaciones  De desarrollo de proyectos  De seguridad  Fraudes y delitos económicos producidos en las empresas (a veces por los propios empleados, sin conocimiento dé la dirección)  Problemas en privacidad y seguridad (auditoria de seguridad informática, tanto lógica como física)  La corrección de los datos de entrada (auditoria informática de datos)  Problemas de diseño del sistema informático
  • 7. Esta norma es aplicable a la adquisición de sistemas, productos y servicios software, al suministro, desarrollo, operación y mantenimiento de productos software, y a la parte software del firmware, independientemente de que sea hecho interna o externamente a una organización. Incluye también aquellos aspectos de la definición del sistema necesario para proporcionar el contexto de los productos y servicios software .NOTA - Es necesario que los procesos usados durante el ciclo de vida del software sean compatibles con los procesos usados durante el ciclo de vida del sistema. Esta norma está orientada para ser usada en situaciones en las que haya dos partes, incluido el caso en que estas dos partes pertenezcan a la misma organización. La situación puede ir desde un acuerdo informal, hasta un contrato con responsabilidades legales. Esta norma puede ser usada por una sola parte como una auto imposición., no está dirigida a productos software pree laborados, a no ser que formen parte de un producto entregable .Esta norma está escrita para adquisidores de sistemas y productos y servicios software, y para suministradores, desarrolladores, operadores, mantenedores, gerentes, responsables de aseguramiento de calidad y usuarios de productos software. Se define como cumplimiento de esta norma la ejecución de todos los procesos, actividades y tareas seleccionados de esta norma para el proyecto software, mediante el Proceso de Adaptación. La ejecución de un proceso o una actividad es completa cuando todas las tareas requeridas por el proceso o actividad se llevan a cabo de acuerdo con los criterios preestablecidos y los requisitos especificados en el contrato como aplicables describe la arquitectura de los procesos del ciclo de vida del software, pero no especifica los detalles de cómo implementar o llevar a cabo las actividades y tareas incluidas en los procesos. Esta norma no pretende prescribir el nombre, el formato o el contenido explícito de la documentación que se genere. Si bien esta norma puede requerir la elaboración de diversos documentos de parecido tipo o clase (un ejemplo son los distintos tipos de planes), esto no implica que dichos documentos se desarrollen, agrupen o se mantengan separados de alguna manera. Estas decisiones se dejan para el usuario de esta norma, no prescribe un método o un modelo de ciclo de vida concreto para el desarrollo del software. Las partes en esta norma son las responsables de seleccionar un modelo de ciclo de vida para el proyecto software, y de elaborar una correspondencia entre los procesos, actividades y tareas de esta norma y los de dicho modelo. Las partes son también responsables de seleccionar y aplicar los métodos de desarrollo del software, y de llevar a cabo las actividades y tareas adecuadas para el proyecto software. Las actividades que pueden llevarse a cabo durante el ciclo de vida del software en cinco procesos principales, ocho procesos de apoyo y cuatro procesos organizativos. Cada proceso del ciclo de vida está dividido en un conjunto de actividades; cada actividad se subdivide a su vez en un conjunto de tareas. Los procesos principales del ciclo de vida son cinco procesos que dan servicio a las partes principales durante el ciclo de vida del software. Una parte principal es
  • 8. la que inicia o lleva a cabo el desarrollo, operación o mantenimiento de productos software. Estas partes principales son el adquisidor, el suministrador, el desarrollador, el operador y el mantenedor de productos software. Proceso de adquisición. Define las actividades del adquisidor, organización que adquiere un sistema, producto software o servicio software.2) Proceso de suministro. Define las actividades del suministrador, organización que proporciona el sistema, producto software o servicio software al adquisidor.3) Proceso de desarrollo. Define las actividades del desarrollador, organización que define y desarrolla el producto software. Proceso de operación. Define las actividades del operador, organización que proporciona el servicio de operar un sistema informático en su entorno real, para sus usuarios.5) Proceso de mantenimiento. Define las actividades del mantenedor, organización que proporciona el servicio de mantenimiento del producto software; esto es, la gestión de las modificaciones al producto software actualizada y operativa. Este proceso incluye la migración y retirada del producto software Un proceso de apoyo es el que apoya a otro proceso como parte esencial del mismo, con un propósito bien definido, y contribuye al éxito y calidad del proyecto software. Un proceso de apoyo se emplea y ejecuta por otro proceso según sus necesidades Proceso de documentación. Define las actividades para el registro de la información producida por un proceso del ciclo de vida.2) Proceso de gestión de la configuración. Define las actividades de gestión de la configuración.3) Proceso de aseguramiento de la calidad. Define las actividades para asegurar, de una manera objetiva, que los productos software y los procesos son conformes a sus requisitos especificados y se ajustan a sus planes establecidos. Se pueden emplear Revisiones Conjuntas, Auditorías, Verificación y Validación como técnicas de Aseguramiento de la Calidad
  • 9. ISO 9126 SO 9126: CALIDAD DEL SOFTWARE Y METRICAS DE EVALUACION La sigla ISO responde a los términos en inglés "International Organization for Standardization" que traducido al idioma español es "Organización Internacional de Normalización". La ISO es la federación mundial de organismos de normalización que estudia y aprueba aquellas normas de aplicación internacional. La ISO, bajo la norma ISO-9126, ha establecido un estándar internacional para la evaluación de la calidad de productos de software el cual fue publicado en 1992 con el nombre de “Information technology –Software product evaluation: Quality characteristics and guidelines for their use”, en el cual se establecen las características de calidad para productos de software. El estándar ISO-9126 establece que cualquier componente de la calidad del software puede ser descrito en términos de una o más de seis características básicas, las cuales son: Funcionalidad, confiabilidad, usabilidad, eficiencia, mantenibilidad y portabilidad; cada una de las cuales se detalla a través de un conjunto de subcaracterísticas que permiten profundizar en la evaluación de la calidad de productos de software. ISO 9126 es un estándar internacional para la evaluación de la calidad del software. Está reemplazado por el proyecto SQuaRE, ISO 25000:2005, el cual sigue los mismos conceptos.
  • 10. El estándar está dividido en cuatro partes las cuales dirigen, realidad, métricas externas, métricas internas y calidad en las métricas de uso y expendido. El modelo de calidad establecido en la primera parte del estándar, ISO 9126- 1, clasifica la calidad del software en un conjunto estructurado de características y sus caracterí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 - Atributos del software relacionados con la presencia y aptitud de un conjunto de funciones para tareas especificadas.  Exactitud - Atributos del software relacionados con la disposición de resultados o efectos correctos o acordados.  Interoperabilidad - Atributos del software que se relacionan con su habilidad para la interacción con sistemas especificados.  Seguridad - Atributos del software relacionados con su habilidad para prevenir acceso no autorizado ya sea accidental o deliberado, a programas y datos.  Cumplimiento funcional.  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 - Atributos del software que se relacionan con la frecuencia de falla por fallas en el software.  Recuperabilidad - Atributos del software que se relacionan con la capacidad para restablecer su nivel de desempeño y recuperar los datos directamente afectos en caso de falla y en el tiempo y esfuerzo relacionado para ello.  Tolerancia a fallos - Atributos del software que se relacionan con su habilidad para mantener un nivel especificado de desempeño en casos de fallas de software o de una infracción a su interfaz especificada.
  • 11.  Cumplimiento de Fiabilidad - La capacidad del producto software para adherirse a normas, convenciones o legislación relacionadas con la fiabilidad.  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- Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.  Comprensión - Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.  Operatividad - Atributos del software que se relacionan con el esfuerzo del usuario para la operación y control del software.  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 - Atributos del software que se relacionan con los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función.  Comportamiento de recursos - Usar las cantidades y tipos de recursos adecuados cuando el software lleva a 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 - Atributos del software relacionados con el esfuerzo necesario para el diagnóstico de deficiencias o causas de fallos, o identificaciones de partes a modificar.
  • 12.  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 - Atributos del software relacionados con el esfuerzo necesario para instalar el software en un ambiente especificado.  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. La subcaracterística Conformidad no está listada arriba ya que se aplica a todas las características. Ejemplos son conformidad a la legislación referente a usabilidad y fiabilidad. Cada subcaracterística (como adaptabilidad) está dividida en atributos. Un atributo es una entidad la cual puede ser verificada o medida en el producto software. Los atributos no están definidos en el estándar, ya que varían entre diferentes productos software. Un producto software está definido en un sentido amplio como: los ejecutables, código fuente, descripciones de arquitectura, y así. Como resultado, la noción de usuario se amplía tanto a operadores como a programadores, los cuales son usuarios de componentes como son bibliotecas software. El estándar provee un entorno para que las organizaciones definan un modelo de calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada organización la tarea de especificar precisamente su propio modelo. Esto podría ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad las cuales evalúan el grado de presencia de los atributos de calidad.
  • 13. Métricas internas son aquellas que no dependen de la ejecución del software (medidas estáticas). Métricas externas son aquellas aplicables al software en ejecución. La calidad en las métricas de uso están sólo disponibles cuando el producto final es usado en condiciones reales. Idealmente, la calidad interna no necesariamente implica calidad externa y esta a su vez la calidad en el uso. Este estándar proviene desde el modelo establecido en 1977 por McCall y sus colegas, los cuales propusieron un modelo para especificar la calidad del software. El modelo de calidad McCall está organizado sobre tres tipos de Características de Calidad:  Factores (especificar): Describen la visión externa del software, como es visto por los usuarios.  Criterios (construir): Describen la visión interna del software, como es visto por el desarrollador.  Métricas (controlar): Se definen y se usan para proveer una escala y método para la medida. ISO 9126 distingue entre fallo y no conformidad. Un fallo es el incumplimiento de los requisitos previos, mientras que la no conformidad es el incumplimiento de los requisitos especificados. Una distinción similar es la que se establece entre validación y verificación. PERFIL DE CALIDAD USANDO ISO/IEC 9126 Un perfil de calidad permite focalizar la definición o evaluación de calidad de un producto de software en los criterios de calidad más importantes según el contexto requerido. En un perfil están definidos: · Los atributos y subcaracterísticas relevantes para el producto de software. · Las métricas que se usarán en la medición. · Los rangos de aceptación de esas métricas. El estándar provee un entorno para que las organizaciones definan un modelo de calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada organización la tarea de especificar precisamente su propio modelo. Esto podría ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad las cuales evalúan el grado de presencia de los atributos de calidad.
  • 14. Métricas internas son aquellas que no dependen de la ejecución del software (medidas estáticas). Métricas externas son aquellas aplicables al software en ejecución. La calidad en las métricas de uso están sólo disponibles cuando el producto final es usado en condiciones reales. Idealmente, la calidad interna determina la calidad externa y esta a su vez la calidad en el uso.
  • 15. Pruebas de software 1.- PRUEBA UNITARIA  Objetivo de la Prueba: Se focaliza en ejecutar cada módulo (o unidad minima a ser probada, ej = una clase) lo que provee un mejor modo de manejar la integración de las unidades en componentes mayores. Busca asegurar que el código funciona de acuerdo con las especificaciones y que el módulo lógico es válido.  Descripción de la Prueba: Particionar los módulos en pruebas en unidades lógicas fáciles de probar. Por cada unidad hay que definir los casos de prueba (pruebas de caja blanca). Para esto los casos de prueba deben diseñarse de forma tal que se recorran todos los caminos de ejecución posibles dentro del código bajo prueba; por lo tanto el diseñador debe construirlos con acceso al código fuente de la unidad a probar. Los aspectos a considerar son los siguientes: Rutinas de excepción, Rutinas de error, Manejo de parámetros, Validaciones, Valores válidos, Valores límites, Rangos, Mensajes posibles.  Técnica: Comparar el resultado esperado con el resultado obtenido. Si existen errores, reportarlos.  Criterio de Completitud: Todas las pruebas planeadas han sido ejecutadas. Todos los defectos que se identificaron han sido tenidos en cuenta.  Consideraciones Especiales: Para la elaboración de pruebas unitarias en java se puede utillizar el JUNIT y CACTUS.
  • 16. 2.- PRUEBAS DE INTEGRACIÓN  Objetivo de la Prueba: -Identificar errores introducidos por la combinación de programas probados unitariamente. -Determina cómo la base de datos de prueba será cargada. -Verificar que las interfaces entre las entidades externas (usuarios) y las aplicaciones funcionan correctamente. -Verificar que las especificaciones de diseño sean alcanzadas. -Determina el enfoque para avanzar desde un nivel de integración de las componentes al siguiente.  Descripción de la Prueba: -Describe cómo verificar que las interfaces entre las componentes de software funcionan correctamente. -Determina cómo la base de datos de prueba será cargada. -Determina el enfoque para avanzar desde un nivel de integración de las componentes al siguiente. -Decide qué acciones tomar cuando se descubren problemas. Por cada Caso de Prueba ejecutado: Comparar el resultado esperado con el resultado obtenido.  Técnica: Utilizar la técnica top-down. Se empieza con los módulos de nivel superior, y se verifica que los módulos de nivel superior llaman a los de nivel inferior de manera correcta, con los parámetros correctos. Utilizar la técnica down-top. Se empieza con los módulos de nivel inferior, y se verifica que los módulos de nivel inferior llaman a los de nivel superior de manera correcta, con los parámetros correctos.  Criterio de Completitud: Todas las pruebas planeadas han sido ejecutadas. Todos los defectos que se identificaron han sido tenidos en cuenta.  Consideraciones Especiales: Ninguna
  • 17. 3.- PRUEBA DE LA CAJA BLANCA La prueba de la caja blanca es un método de diseño de casos de prueba que usa la estructura de control del diseño procedimental para derivar los casos de prueba. Las pruebas de caja blanca intentan garantizar que: • Se ejecutan al menos una vez todos los caminos independientes de cada módulo • Se utilizan las decisiones en su parte verdadera y en su parte falsa • Se ejecuten todos los bucles en sus límites • Se utilizan todas las estructuras de datos internas 3.1. Prueba del camino básico El método del camino básico (propuesto por McCabe) permite obtener una medida de la complejidad de un diseño procedimental, y utilizar esta medida como guía para la definición de una serie de caminos básicos de ejecución, diseñando casos de prueba que garanticen que cada camino se ejecuta al menos una vez. 3.1.1. Notación del grafo de flujo o grafo del programa Representa el flujo de control lógico con la siguiente notación: A continuación se muestra un ejemplo basado en un diagrama de flujo que representa la estructura de control del programa.
  • 18. En el grafo de flujo • Cada nodo representa una o más sentencias procedimentales • Un solo nodo puede corresponder a una secuencia de pasos del proceso y a una decisión • Las flechas (aristas) representan el flujo de control
  • 19. Cualquier representación del diseño procedimental se puede traducir a un grafo de flujo. Si en el diseño procedimental se utilizan condiciones compuestas, la generación del grafo de flujo tiene que descomponer las condiciones compuestas en condiciones sencillas, tal y como muestra la figura siguiente. 3.1.2. Complejidad ciclomática Es una medida que proporciona una idea de la complejidad lógica de un programa. • La complejidad ciclomática coincide con el número de regiones del grafo de flujo • La complejidad ciclomática, V(G), de un grafo de flujo G, se define como V(G) = Aristas -Nodos +2 • La complejidad ciclomática, V(G), de un grafo de flujo G, también se define como V(G) = Nodos de predicado + 1 A partir del grafo de flujo de la figura 4, la complejidad ciclomática sería: • Como el grafo tiene cuatro regiones, V(G) = 4 • Como el grafo tiene 11 aristas y 9 nodos, V(G) = 11 - 9 - 2 = 4 • Como el grafo tiene 3 nodos predicado, V(G) = 3 + 1 = 4 A partir del valor de la complejidad ciclomática obtenemos el número de caminos independientes, que nos dan un valor límite para el número de pruebas que tenemos que diseñar. En el ejemplo, el número de caminos independientes es 4, y los caminos independientes son:
  • 20. • 1-11 • 1-2-3-4-5-10-1-11 • 1-2-3-6-7-9-10-1-11 • 1-2-3-6-8-9-10-1-11 3.1.3. Pasos del diseño de pruebas mediante el camino básico • Obtener el grafo de flujo, a partir del diseño o del código del módulo • Obtener la complejidad ciclomática del grafo de flujo • Definir el conjunto básico de caminos independientes • Determinar los casos de prueba que permitan la ejecución de cada uno de los caminos anteriores • Ejecutar cada caso de prueba y comprobar que los resultados son los esperados 3.2. Prueba de bucles Los bucles son la piedra angular de la inmensa mayoría de los algoritmos implementados en software, por lo que tenemos que prestarles una atención especial a la hora de realizar la prueba del software. La prueba de bucles es una técnica de prueba de caja blanca que se centra en la validez de las construcciones de los bucles. Se pueden definir cuatro tipos de bucles diferentes: • Bucles simples • Bucles concatenados • Bucles anidados • Bucles no estructurados
  • 21. 3.2.1. Bucles simples A los bucles simples (de n iteraciones) se les tiene que aplicar el conjunto de pruebas siguientes: • Saltar el bucle • Pasar sólo una vez por el bucle • Pasar dos veces por el bucle • Hacer m pasos del bucle con m < n • Hacer n-1, n y n+1 pasos por el bucle 3.2.2. Bucles anidados Si extendiésemos el conjunto de pruebas de los bucles simples a los bucles anidados, el número de pruebas crecería geométricamente, por lo que Beizer sugiere el siguiente conjunto de pruebas para bucles anidados: • Comenzar con el bucle más interno, estableciendo los demás bucles a los valores mínimos • Llevar a cabo las pruebas de bucles simples para el bucle más interno, conservando los valores de iteración de los bucles más externos a los valores mínimos
  • 22. • Progresar hacia fuera en el siguiente bucle más externo, y manteniendo los bucles más externos a sus valores mínimos • Continuar hasta que se hayan probado todos los bucles 3.2.3. Bucles concatenados Probar los bucles concatenados mediante las técnicas de prueba para bucles simples, considerándolos como bucles independientes. 2.2.4. Bucles no estructurados Rediseñar estos bucles para que se ajusten a las construcciones de la programación estructurada. Ejemplo Construir el Grafo de Flujo correspondiente a la siguiente especificación del software en LDP.
  • 23. Ejemplo Construir el Grafo de Flujo correspondiente al siguiente código de un programa
  • 24. Ejemplo: DECISIONES LÓGICAS -Validación del dominio 1. xMin = Val(txtxMin): xMax = Val(txtxMax) 2. If xMin < -5 Then 3. MsgBox "El limite inferior no debe ser menor a -5", vbCritical, "Error" 4. txtxMax.Text = "" Label10(0).Caption = "" txtxMin.SetFocus Parabola.Cls Exit Sub 7. End If 5. If xMax > 5 Then 3. MsgBox "El limite superior no debe ser mayor a 5", vbCritical, "Error" 4. txtxMin.Text = "" txtxMax.Text = "" Label10(0).Caption = "" txtxMin.SetFocus Parabola.Cls Exit Sub 7. End If 6. If xMin >= xMax Then 3. MsgBox "El dominio no es válido", vbCritical, "Error" 4. txtxMin.Text = ""
  • 25. txtxMax.Text = "" txtxMin.SetFocus Exit Sub 7. End If - Calculo de tabla de valores para puntos intermedios (razón de cambio 0.5) 1. If x <> 2. m = x + 0.5 3. n = (m ^ 2) + (4 * m) + 5 4. k = Label12.Count 5. Load Label12(k) With Label12(k) .Top = Label12(k - 1).Top + 665 .Caption = Str(m) .Visible = True End With 6. l = Label13.Count 7. Load Label13(l) With Label13(l) .Top = Label13(l - 1).Top + 665 .Caption = Str(n) .Visible = True
  • 26. End With 8. End If - Calculo para el Ymin y el Ymax 1. Ymin = f(xMin) 2. If f(xMax) < ymin =" f(xMax)"> 4. If xMin < ymin =" f(Xv)"> 1. Ymax = f(xMin)
  • 27. 2. If f(xMax) > Ymax Then 3. Ymax = f(xMax) 4. If xMin <> Ymax Then 7. Ymax = f(Xv) BUCLES DIAGRAMA DE FLUJO DE DATOS (DFD)
  • 28.
  • 29. 4.- PRUEBA DE LA CAJA NEGRA Las pruebas de caja negra se llevan a cabo sobre la interfaz del software, obviando el comportamiento interno y la estructura del programa. Los casos de prueba de la caja negra pretenden demostrar que: • Las funciones del software son operativas • La entrada se acepta de forma correcta • Se produce una salida correcta • La integridad de la información externa se mantiene A continuación se derivan conjuntos de condiciones de entrada que utilicen todos los requisitos funcionales de un programa. Las pruebas de caja negra pretenden encontrar estos tipos de errores: • Funciones incorrectas o ausentes • Errores en la interfaz • Errores en estructuras de datos o en accesos a bases de datos externas • Errores de rendimiento • Errores de inicialización y de terminación Los tipos de prueba de cana negra que vamos a estudiar son: • Prueba de partición equivalente • Prueba de análisis de valores límites 4.1. Prueba de partición equivalente Este método de prueba de caja negra divide el dominio de entrada de un programa en clases de datos, a partir de las cuales deriva los casos de prueba. Cada una de estas clases de equivalencia representa a un conjunto de estados válidos o inválidos para las condiciones de entrada.
  • 30. 4.1.1. Identificación de las clases de equivalencia Se identifican clases de equivalencia válidas e inválidas con la siguiente tabla A continuación se siguen estas directrices: • Si una condición de entrada especifica un rango de valores (p.e, entre 1 y 999), se define una CEV (1 <= valor <= 999) y dos CEI (valor < 1 y valor > 999) • Si una CE requiere un valor específico (p.e., el primer carácter tiene que ser una letra), se define una CEV (una letra) y una CEI (no es una letra) • Si una CE especifica un conjunto de valores de entrada, se define una CEV para cada uno de los valores válidos, y una CEI (p.e., CEV para "Moto", "Coche" y "Camión", y CEI para "Bicicleta") • Si una condición de entrada especifica el número de valores (p.e., una casa puede tener uno o dos propietarios), identificar una CEV y dos CEI (0 propietarios y 3 propietarios) 4.1.2. Identificación de casos de prueba Seguir estos pasos • Asignar un número único a cada clase de equivalencia • Escribir casos de prueba hasta que sean cubiertas todas las CEV, intentando cubrir en cada caso tantas CEV como sea posible • Para cada CEI, escribir un caso de prueba, cubriendo en cada caso una CEI Ejemplo Diseñar casos de prueba de partición equivalente para un software que capte estos datos de entrada: • Código de área: En blanco o un número de tres dígitos • Prefijo: Número de tres dígitos que no comiencen por 0 ó 1
  • 31. • Sufijo: Número de cuatro dígitos • Ordenes: "Cheque", "Depósito", "Pago factura" • Palabra clave: Valor alfanumérico de 6 dígitos