Está en la página 1de 250

Unidad 5 – Aseguramiento de la Calidad

● Conceptos de calidad
● Fiabilidad, disponibilidad y seguridad
● Gestión de la calidad
● Garantía de la calidad
● Planificación de la calidad
● Control de la calidad
● Actividades de la SQA
Unidad 5 – Aseguramiento de la Calidad

● Modelos de calidad
● CMM
● CMMI
● Revisiones de software
● Revisiones Técnicas Formales (RTF)

 IS Unidad 5 ­ Luis Nieto ­ 2018 2
Unidad 5 – Aseguramiento de la Calidad

● Pruebas del software


● Pruebas de componentes
● Pruebas del sistema
● Pruebas de integración
● Pruebas de entregas
● Pruebas de rendimiento
● Diseño de casos de prueba

 IS Unidad 5 ­ Luis Nieto ­ 2018 3
Unidad 5 – Conceptos de calidad

● Para productos tangibles, la calidad depende de


la similitud entre el producto desarrollado y su
especificación

● El control de variación es la base del control de


calidad: se quiere reducir la variación entre los
productos que se fabrican

 IS Unidad 5 ­ Luis Nieto ­ 2018 4
Unidad 5 – Conceptos de calidad

● En el SW el esfuerzo se centra en controlar la


variación en:
● el proceso que se aplica
● los recursos que se consumen
● los atributos de calidad del producto final

● En el SW se quiere reducir la diferencia entre los


recursos planificados y los reales utilizados

 IS Unidad 5 ­ Luis Nieto ­ 2018 5
Unidad 5 – Conceptos de calidad

● Calidad: “característica o atributo de algo”


● Como un atributo de un elemento, la calidad se
refiere a las características medibles: cosas
que se pueden comparar con estándares
conocidos: longitud, color, etc

● El SW es más difícil de caracterizar que los


objetos físicos. Algunas propiedades:
complejidad, cohesión, número de puntos de
función, líneas de código, etc

 IS Unidad 5 ­ Luis Nieto ­ 2018 6
Unidad 5 – Conceptos de calidad

● satisfacción del usuario = producto


satisfactorio + buena calidad + entrega
dentro de presupuesto y tiempo
establecidos
● La calidad es importante, pero si el usuario no
queda satisfecho nada más importa
● Esta visión de la calidad establece que si el
producto SW proporciona un beneficio sustancial
a los usuarios finales, éstos pueden estar
dispuestos a tolerar problemas ocasionales de
rendimiento o fiabilidad
 IS Unidad 5 ­ Luis Nieto ­ 2018 7
Unidad 5 – Conceptos de calidad

● El costo de la calidad incluye todos los costos


acarreados en la búsqueda de calidad o en las
actividades relacionadas con la obtención de
calidad

● Los costos de calidad están asociados con:


● Prevención
● Evaluación
● Fallos

 IS Unidad 5 ­ Luis Nieto ­ 2018 8
Unidad 5 – Conceptos de calidad

● Prevención: planificación, revisiones técnicas


formales, equipo de pruebas y formación

● Evaluación: actividades para tener una visión


más profunda de la condición del producto. Por
ejemplo: inspección del proceso, mantenimiento
del equipo, pruebas

 IS Unidad 5 ­ Luis Nieto ­ 2018 9
Unidad 5 – Conceptos de calidad

● Fallos: se dividen en:


● Costos internos: se producen cuando se
detecta un error en el producto antes de su
envío (retrabajo o revisión, reparación, análisis
de las modalidades de fallos, etc)

● Costos externos: debido a defectos


encontrados una vez enviado el producto al
cliente (resolución de quejas, devolución y
sustitución de productos, soporte de línea de
ayuda, trabajo de garantía)
 IS Unidad 5 ­ Luis Nieto ­ 2018 10
Unidad 5 – Conceptos de calidad

● Los costos relativos para encontrar y reparar un


defecto aumentan a medida que se cambia de
prevención a detección, y desde fallos internos a
externos.
40-1000
veces
Costo relativo de corregir un error

30-70
veces

15-40
veces

10 veces

3-6 veces

1 vez

Prueba de Prueba de En fase de


Requisitos Diseño Código
desarrollo sistema explotación

 IS Unidad 5 ­ Luis Nieto ­ 2018 11
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● Fallo: cualquier falta de concordancia con los


requisitos del SW:
● En el HW los fallos son más probables debido
al desgaste físico que al diseño
● En el SW los fallos se producen por problemas
de diseño o de implementación

● Fiabilidad: probabilidad de operación libre de


fallos en un entorno determinado y durante un
tiempo específico

 IS Unidad 5 ­ Luis Nieto ­ 2018 12
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● La fiabilidad del SW es un elemento importante


de su calidad general: si falla frecuentemente en
su funcionamiento, no importa si el resto de los
factores de calidad son aceptables

● La fiabilidad del SW, a diferencia de otros


factores de calidad, puede ser medida o estimada
mediante datos históricos o de desarrollo

 IS Unidad 5 ­ Luis Nieto ­ 2018 13
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● Una medida de la fiabilidad es el tiempo medio


entre fallos (TMEF):
● TMEF = TMDF + TMDR
● TMDF: tiempo medio de fallo
● TMDR: tiempo medio de reparación

● Muchos argumentan que el TMDF es una medida


más útil que los defectos/KSLOC o defectos/PF
porque el usuario final se enfrenta a los fallos, no
al número total de errores
 IS Unidad 5 ­ Luis Nieto ­ 2018 14
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● Disponibilidad: probabilidad que el SW funcione


de acuerdo con los requisitos en un momento
dado:

● Disp = [TMDF / (TMEF)] x 100%

● La disponibilidad es una medida indirecta de la


facilidad de mantenimiento del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 15
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● Antes que se usara SW en sistemas críticos de


seguridad, los mismos se controlaban mediante
dispositivos electrónicos y mecánicos (no
programables)

● Las técnicas de seguridad se diseñaban para


hacer frente a fallos aleatorios en estos
dispositivos

 IS Unidad 5 ­ Luis Nieto ­ 2018 16
Unidad 5 – Fiabilidad, disponibilidad y
seguridad

● Cuando se utiliza SW como parte del sistema de


control, la complejidad puede aumentar en un
orden de magnitud o más

● La seguridad del SW se centra en la identificación


y evaluación de los riesgos potenciales que
podrían producir un impacto negativo y hacer
que falle el sistema completo

 IS Unidad 5 ­ Luis Nieto ­ 2018 17
Unidad 5 – Gestión de la Calidad

● La Gestión de la Calidad se estructura en 3


actividades principales:
● Garantía de la calidad (SQA):
procedimientos y estándares que conducen a
SW de alta calidad
● Planificación de la calidad: selección de
procedimientos y estándares adecuados
● Control de calidad: inspecciones, revisiones
y pruebas a lo largo del proceso SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 18
Unidad 5 – Garantía de la Calidad

● Durante los años '50 y '60, la calidad era


responsabilidad únicamente del programador

● Luego, durante los '70 se introdujeron estándares


de garantía de calidad para el SW en los
contratos militares

● Estos estándares se extendieron rápidamente a


los desarrollos comerciales, con lo cual, muchos
de los que constituyen una organización tienen
responsabilidad sobre la garantía de calidad
 IS Unidad 5 ­ Luis Nieto ­ 2018 19
Unidad 5 – Garantía de la Calidad

● Los responsables de SQA miran al SW desde el


punto de vista del cliente:
● ¿Satisface de forma adecuada el SW los
factores de calidad?

● ¿Se ha realizado el desarrollo de acuerdo con


estándares preestablecidos?

 IS Unidad 5 ­ Luis Nieto ­ 2018 20
Unidad 5 – Garantía de la Calidad

● SQA es el proceso que define cómo lograr la


calidad del SW y cómo conoce la organización el
nivel de calidad requerido en el SW

● Se pueden definir 2 tipos de estándares:


● Estándares del producto

● Estándares del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 21
Unidad 5 – Garantía de la Calidad

● Estándares del producto: se aplican sobre el


producto SW que se comienza a desarrollar.
Incluyen estándares de documentación, de
codificación, etc

● Estándares del proceso: definen los procesos


que se deben seguir durante el desarrollo del SW.
Se pueden incluir definiciones de procesos de
especificación, diseño y validación, así como una
descripción de los documentos que se deben
escribir en el curso de estos procesos
 IS Unidad 5 ­ Luis Nieto ­ 2018 22
Unidad 5 – Garantía de la Calidad

● Los estándares de SW son importantes porque:


● Están basados en el conocimiento de la mejor
o más apropiada práctica de la organización

● Proveen un marco de trabajo alrededor del cual


se implementa el proceso de garantía de la
calidad

● Ayudan a la continuidad cuando una persona


continúa el trabajo que llevaba a cabo otra
 IS Unidad 5 ­ Luis Nieto ­ 2018 23
Unidad 5 – Planificación de la Calidad

● La planificación de la calidad es el proceso en el


cual se desarrolla un plan de calidad para un
proyecto, el cual define la calidad del SW
deseado y describe cómo valorar la misma
(define qué es “software de alta calidad”)

● El plan de calidad selecciona los estándares


organizacionales apropiados para un producto y
proceso de desarrollo particulares

 IS Unidad 5 ­ Luis Nieto ­ 2018 24
Unidad 5 – Planificación de la Calidad

● Estructura sugerida para un plan de calidad:


● Introducción al producto: descripción del
producto, el mercado al que se dirige y las
expectativas de calidad

● Planificación del producto: fechas de


terminación y las responsabilidades
importantes junto con los planes para la
distribución y el servicio

 IS Unidad 5 ­ Luis Nieto ­ 2018 25
Unidad 5 – Planificación de la Calidad

● Estructura sugerida para un plan de calidad:


● Descripción de procesos: procesos a utilizar
para el desarrollo y administración del
producto

● Metas de calidad: metas y planes de calidad


para el producto

● Riesgos y gestión de riesgos: riesgos clave


que podrían afectar a la calidad del producto y
las acciones para abordarlos
 IS Unidad 5 ­ Luis Nieto ­ 2018 26
Unidad 5 – Planificación de la Calidad

● Hay una gran variedad de atributos de calidad


del SW a considerar en el proceso de
planificación de la calidad:
Seguridad Reutilización
Comprensión Flexibilidad
Portabilidad Modularidad
Protección Eficacia
Usabilidad Robustez
Fiabilidad Complejidad
Adaptabilidad Aprendizaje
 IS Unidad 5 ­ Luis Nieto ­ 2018 27
Unidad 5 – Planificación de la Calidad

● En general, no es posible optimizar todos los


atributos para un sistema: el plan de calidad
define los atributos de calidad más importantes
para el producto a desarrollar

 IS Unidad 5 ­ Luis Nieto ­ 2018 28
Unidad 5 – Control de la Calidad

● El control de la calidad implica vigilar el proceso


de desarrollo para asegurar que se siguen los
procedimientos y los estándares de garantía de
calidad

● Existen 2 enfoques complementarios que se


utilizan para comprobar la calidad:
● Revisiones de la calidad
● Valoración automática del software

 IS Unidad 5 ­ Luis Nieto ­ 2018 29
Unidad 5 – Control de la Calidad

● Revisiones de la calidad: el SW, su


documentación y los procesos utilizados en su
desarrollo son revisados por un grupo de
personas:
● Se comprueba que se han seguido los
estándares del proyecto, y que el SW y los
documentos concuerdan con los mismos

● Se anotan las desviaciones de los estándares y


se comunican al gestor del proyecto

 IS Unidad 5 ­ Luis Nieto ­ 2018 30
Unidad 5 – Control de la Calidad

● Valoración automática del software: el


software y los documentos producidos se
procesan por algún programa y se comparan con
los estándares que se aplican a ese proyecto de
desarrollo en particular
● Esta valoración automática comprende una
medida cuantitativa de algunos atributos del
software

 IS Unidad 5 ­ Luis Nieto ­ 2018 31
Unidad 5 – Actividades de la SQA

● Actividades de SQA recomendadas por el SEI:


● Planificar SQA para un proyecto
● Describir el proceso SW
● Revisar que las actividades de IS se ajustan al
proceso SW definido
● Documentar las desviaciones
● Auditar que los productos SW se ajusten como
parte del proceso SW
● Registrar e informar lo que no se ajuste a los
requisitos
 IS Unidad 5 ­ Luis Nieto ­ 2018 32
Unidad 5 – Actividades de la SQA

● Planificar SQA para un proyecto. El plan se


desarrolla durante la planificación del proyecto y
se revisa por todas las partes interesadas
● El plan identifica:
● Evaluaciones a realizar
● Auditorías y revisiones a realizar
● Estándares que se pueden aplicar al proyecto
● Procedimientos para información y
seguimiento de errores
● Documentos producidos por el grupo SQA
 IS Unidad 5 ­ Luis Nieto ­ 2018 33
Unidad 5 – Actividades de la SQA

● Describir el proceso SW. El equipo de IS


selecciona un proceso para el trabajo que se va a
realizar

● El grupo de SQA revisa que la descripción del


proceso se ajuste a la política de la empresa, los
estándares internos del SW, los estándares
impuestos externamente y a otras partes del plan
de proyecto del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 34
Unidad 5 – Actividades de la SQA

● Revisar que las actividades de IS se ajustan


al proceso SW definido. El grupo de SQA
identifica y documenta las desviaciones del
proceso y verifica que se han hecho las
correcciones

● Documentar las desviaciones. Las


desviaciones se pueden encontrar en el plan del
proyecto, en la descripción del proceso, en los
estándares, etc

 IS Unidad 5 ­ Luis Nieto ­ 2018 35
Unidad 5 – Actividades de la SQA

● Auditar que los productos SW se ajusten


como parte del proceso SW. El grupo de SQA
revisa los productos seleccionados; identifica,
documenta y lleva el control de las desviaciones;
verifica que se han hecho las correcciones, e
informa periódicamente al gestor del proyecto

● Registrar e informar lo que no se ajuste a


los requisitos. Los elementos que no se ajustan
a los requisitos están bajo seguimiento hasta que
se resuelven
 IS Unidad 5 ­ Luis Nieto ­ 2018 36
Unidad 5 – Actividades de la SQA

● Además de estas actividades, el grupo de SQA


coordina el control y la gestión de cambios y
ayuda a recopilar y analizar las métricas del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 37
Unidad 5 – Modelos de Calidad
calidad

● El proceso SW es genérico: el ideal que debería


seguir una organización para conseguir productos
de calidad

● En realidad, cada organización debe definir su


proceso SW para detectar si es adecuado o no y
cuánto dista del ideal

 IS Unidad 5 ­ Luis Nieto ­ 2018 38
Unidad 5 – Modelos de Calidad
calidad

● El peor de los casos (muy frecuente) es una


organización que no sigue proceso alguno para
construir SW, y por lo tanto, no hay una guía para
construir SW

● Un equipo que sigue un proceso SW puede:


● Coordinar mejor el trabajo de cada miembro

● Seguir de un modo preciso los avances tanto


individuales como del equipo completo
 IS Unidad 5 ­ Luis Nieto ­ 2018 39
Unidad 5 – Modelos de Calidad
calidad

● Un proceso SW:
● Ayuda a asegurar que cada elemento de
trabajo se asigne y se siga adecuadamente

● Es un mecanismo para un aprendizaje


ordenado

● Permite que cada proyecto nuevo sea


construido basado en su propia experiencia y
en anteriores

 IS Unidad 5 ­ Luis Nieto ­ 2018 40
Unidad 5 – Modelos de Calidad
calidad

● Ventajas al definir un proceso SW:


● Se facilita la comunicación entre usuarios,
desarrolladores, gestores y clientes sobre el
proceso
● Se gana una mejor comprensión de la gestión
● Se brinda una base precisa para la
automatización del proceso
● Se facilita la movilidad de las personas dentro
del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 41
Unidad 5 – Modelos de Calidad
calidad

● Ventajas al definir un proceso SW:


● Se facilita la reutilización del proceso: cada
proyecto nuevo no necesita redefinir
completamente su modo de trabajo
(estándares reutilizables)

● Ayuda a la gestión del proceso: provee planes


claros y un modo preciso y cuantificado de
comparar el estado con los planes

 IS Unidad 5 ­ Luis Nieto ­ 2018 42
Unidad 5 – Modelos de Calidad
calidad

● Los procesos son difíciles de establecer, pero más


difíciles aún de cambiar

● Los procesos deben cambiar continuamente para


ser mejorados

● Conclusión: no es suficiente con definir el


proceso SW de una organización, sino que
además el mismo debe sufrir una mejora
permanente
 IS Unidad 5 ­ Luis Nieto ­ 2018 43
Unidad 5 – CMM

● El SEI desarrolló un marco de madurez del


proceso software, el cual permite a las
organizaciones determinar las capacidades de
sus procesos actuales y definir prioridades de
mejoras

● Este marco de madurez definido por el SEI se


llama Modelo de Capacidad y Madurez o
Capability Maturity Model (CMM), y está
organizado en 5 niveles

 IS Unidad 5 ­ Luis Nieto ­ 2018 44
Unidad 5 – CMM

 IS Unidad 5 ­ Luis Nieto ­ 2018 45
Unidad 5 – CMM

● Para cada nivel se definen Áreas Clave de


Proceso (KPA), las cuales proporcionan los
objetivos y prácticas a alcanzar en cada nivel

● Se lo llama modelo de madurez porque propone


adoptar un conjunto de prácticas en forma
gradual: primero deben ponerse en práctica KPAs
pertenecientes a un nivel determinado, para
luego, sobre esta base, introducir las
correspondientes al nivel siguiente

 IS Unidad 5 ­ Luis Nieto ­ 2018 46
Unidad 5 – CMM

● Nivel 1 – Inicial
● Representa una situación sin ningún esfuerzo
en la garantía de calidad y gestión del
proyecto, donde cada equipo puede desarrollar
SW de cualquier forma eligiendo distintos
métodos, estándares y procedimientos
● El proceso software es ad-hoc y,
ocasionalmente, incluso caótico. El éxito
depende del esfuerzo individual
● KPA: no tiene

 IS Unidad 5 ­ Luis Nieto ­ 2018 47
Unidad 5 – CMM

● Nivel 2 – Repetible
● Están establecidos ciertos procesos básicos de
gestión de proyectos para seguir el costo, el
calendario y la funcionalidad
● Hay la disciplina necesaria para repetir éxitos
conseguidos con anterioridad

 IS Unidad 5 ­ Luis Nieto ­ 2018 48
Unidad 5 – CMM

● Nivel 2 – Repetible
● KPA:
– Gestión de configuración
– Garantía de calidad
– Gestión de la subcontratación
– Seguimiento de proyectos
– Planificación de proyectos
– Gestión de requisitos

 IS Unidad 5 ­ Luis Nieto ­ 2018 49
Unidad 5 – CMM

● Nivel 3 – Definido
● Representa el hecho de que un desarrollador
ha definido tanto procesos técnicos como de
gestión

● Por ejemplo se ha detallado un estándar para


la programación, y se hace cumplir por medio
de procedimientos tales como auditorías

 IS Unidad 5 ­ Luis Nieto ­ 2018 50
Unidad 5 – CMM

● Nivel 3 – Definido
● KPA:
– Revisiones profundas
– Coordinación entre grupos
– Ingeniería de la producción de software
– Gestión integrada en el proceso
– Programa de formación
– Definición del proceso
– Focalización en el proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 51
Unidad 5 – CMM

● Nivel 4 – Gestionado
● Comprende el concepto de medición y el uso
de métricas
● Estas métricas proporcionan alguna indicación
del esfuerzo necesario para probar el código
● Una organización de nivel 4 maneja numerosas
métricas, las cuales se utilizan para supervisar
y controlar un proyecto SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 52
Unidad 5 – CMM

● Nivel 4 – Gestionado
● KPA:
– Gestión de la calidad
– Gestión cualitativa del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 53
Unidad 5 – CMM

● Nivel 5 – Optimizado
● Representa la analogía del SW con los
mecanismos de control de calidad que existen
en otras industrias de mayor madurez

● Un desarrollador de SW de nivel 5 puede


predecir resultados basado en la medición
tomada durante la ejecución de un proyecto

 IS Unidad 5 ­ Luis Nieto ­ 2018 54
Unidad 5 – CMM

● Nivel 5 – Optimizado
● KPA:
– Gestión de cambio de proceso
– Gestión de cambio de tecnología
– Prevención de defectos

 IS Unidad 5 ­ Luis Nieto ­ 2018 55
Unidad 5 – CMM

● El CMM ha sido revisado y refinado por muchos


especialistas para ponerse de acuerdo en los
métodos más efectivos para alcanzar los
objetivos de cada nivel de madurez

 IS Unidad 5 ­ Luis Nieto ­ 2018 56
Unidad 5 – CMMI

● El modelo de capacidad y madurez


integrado (CMMI) es un modelo de referencia o
conjunto de prácticas enfocadas a mejorar los
procesos de una organización

● El modelo utiliza el paradigma de mejora del


proceso ya que el mismo no solo refleja el estado
del arte del proceso SW, también permite
establecer metas y prioridades para la mejora del
proceso, estableciendo un plan centrado en la
medición y cuantificación objetiva de los mismos
 IS Unidad 5 ­ Luis Nieto ­ 2018 57
Unidad 5 – CMMI

● El propósito de CMMI para desarrollo es ayudar a


las organizaciones a mejorar sus procesos de
desarrollo de productos

● Consiste en definir las mejores prácticas que


tratan las actividades de desarrollo
comprendiendo el ciclo de vida completo del
producto, desde la concepción hasta la entrega y
mantenimiento del mismo, adaptándose
completamente la aplicación del modelo a la
organización
 IS Unidad 5 ­ Luis Nieto ­ 2018 58
Unidad 5 – CMMI

● La estrategia adoptada por CMMI produce


beneficios operativos:
● Reducción de costo y tiempo de entrega
● Mayor productividad
● Menores tiempos de desarrollo
● Disminución del retrabajo y errores
● Mayor calidad del producto y satisfacción del
cliente.

 IS Unidad 5 ­ Luis Nieto ­ 2018 59
Unidad 5 – CMMI

● Al igual que CMM, fue creado por el SEI con la


colaboración de la industria, el gobierno y el
ámbito académico, con el fin de unir una gran
cantidad de modelos existentes

● En la actualidad hay 3 áreas de interés cubiertas


por los modelos de CMMI:
● Desarrollo (CMMI-DEV)
● Adquisición (CMMI-ACQ)
● Servicios (CMMI-SVC)
 IS Unidad 5 ­ Luis Nieto ­ 2018 60
Unidad 5 – CMMI

● CMMI-DEV: guías para medir, monitorizar y


administrar el proceso de desarrollo

● CMMI-ACQ: guías para el proceso de adquisición


de productos y servicios

● CMMI-SVC: guías para proporcionar servicios en


una organización y a clientes externos

 IS Unidad 5 ­ Luis Nieto ­ 2018 61
Unidad 5 – Revisiones de Software

● Las revisiones de software son un "filtro" para el


proceso de IS
● Las revisiones se aplican en varios momentos del
desarrollo y sirven para detectar errores y
defectos que puedan ser eliminados
● También, se necesitan revisiones porque aunque
la gente es buena descubriendo algunos de sus
propios errores, algunas clases de errores le
pasan por alto más fácilmente al que los origina
que a otras personas

 IS Unidad 5 ­ Luis Nieto ­ 2018 62
Unidad 5 – Revisiones de Software

● Una revisión es una forma de aprovechar la


diversidad de un grupo de personas para:
● Señalar la necesidad de mejoras (en el
producto) de una sola persona o un equipo
● Confirmar las partes de un producto en las que
no es necesaria o no es deseable una mejora
● Conseguir un trabajo técnico de una calidad
más uniforme, o al menos más predecible, que
la que puede ser conseguida sin revisiones

 IS Unidad 5 ­ Luis Nieto ­ 2018 63
Unidad 5 – Revisiones de Software

● Existen muchos tipos diferentes de revisiones


que se pueden llevar adelante como parte de la
IS:
● Una reunión informal es una forma de revisión
(si se discuten problemas técnicos)
● Una presentación formal de un diseño de
software a una audiencia de clientes,
ejecutivos y personal técnico es una forma de
revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 64
Unidad 5 – Revisiones de Software

● Una revisión técnica formal (RTF), a veces


denominada inspección, es el filtro más efectivo
desde el punto de vista de garantía de calidad

● La RTF es un medio efectivo para mejorar la


calidad del SW

● El objetivo primario de las RTF es encontrar


errores durante el proceso, de forma que no se
conviertan en defectos después de la entrega
 IS Unidad 5 ­ Luis Nieto ­ 2018 65
Unidad 5 – RTF

● Los objetivos de una RTF son:


● Descubrir errores en la función, la lógica o la
implementación de cualquier representación
del SW
● Verificar que el SW alcanza sus requisitos
● Garantizar que el SW ha sido representado de
acuerdo a estándares predefinidos
● Conseguir un SW desarrollado de forma
uniforme
● Hacer que los proyectos sean más manejables
 IS Unidad 5 ­ Luis Nieto ­ 2018 66
Unidad 5 – RTF

● La RTF también sirve para promover la seguridad


y la continuidad, ya que varias personas se
familiarizarán con partes del SW que, de otro
modo, no hubieran visto nunca

 IS Unidad 5 ­ Luis Nieto ­ 2018 67
Unidad 5 – RTF

● Cada RTF se lleva a cabo mediante una reunión


● Cualquier reunión de revisión debe seguir las
siguientes restricciones:
● Se deben convocar entre 3 y 5 personas
● Se debe preparar por adelantado, pero sin que
requiera más de 2 horas de trabajo a cada
persona
● La duración de la reunión debe ser menor de 2
horas

 IS Unidad 5 ­ Luis Nieto ­ 2018 68
Unidad 5 – RTF

● Cada RTF se centra en una parte específica (y


chica) del SW total

● Por ejemplo, en lugar de intentar revisar un


diseño completo, se hacen inspecciones a cada
módulo o pequeño grupo de módulos

● Al limitar el centro de atención de la RTF, la


probabilidad de descubrir errores es mayor

 IS Unidad 5 ­ Luis Nieto ­ 2018 69
Unidad 5 – RTF

● La persona que desarrolló un producto


(productor) informa al jefe del proyecto que el
mismo está terminado y que requiere una
revisión
● El jefe del proyecto contacta con un jefe de
revisión, que evalúa la disponibilidad del
producto, genera copias del mismo y las
distribuye a 2 o 3 revisores para que se preparen
por adelantado
● Cada revisor estará entre 1 y 2 horas revisando el
producto, tomando notas y también
familiarizándose con el trabajo
 IS Unidad 5 ­ Luis Nieto ­ 2018 70
Unidad 5 – RTF

● De forma concurrente, también el jefe de revisión


revisará el producto y establecerá una agenda
para la reunión de revisión que, normalmente,
queda convocada para el día siguiente

● La reunión de revisión es llevada a cabo por el


jefe de revisión, los revisores y el productor. Uno
de los revisores registra de forma escrita todos
los sucesos importantes que se produzcan
durante la revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 71
Unidad 5 – RTF

● La RTF comienza con una explicación de la


agenda y una breve introducción a cargo del
productor

● El productor explica el material, mientras que los


revisores exponen los resultados de sus
revisiones basándose en su preparación previa

● Cuando se descubren problemas o errores


válidos, el que registra los va anotando
 IS Unidad 5 ­ Luis Nieto ­ 2018 72
Unidad 5 – RTF

● Al final de la revisión, todos los participantes en


la RTF deben decidir si:
● Aceptan el producto sin posteriores
modificaciones
● Rechazan el producto debido a los serios
errores encontrados (una vez corregidos, ha de
hacerse otra revisión)
● Aceptan el producto provisoriamente (se han
encontrado errores menores que deben ser
corregidos, pero sin necesidad de otra revisión
posterior)
 IS Unidad 5 ­ Luis Nieto ­ 2018 73
Unidad 5 – RTF

● Una vez tomada la decisión, todos los


participantes terminan firmando, indicando así
que han participado en la revisión y que están de
acuerdo con las conclusiones del equipo de
revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 74
Unidad 5 – RTF

● Al final de la reunión se prepara un informe, el


cual responde a 3 preguntas:
● ¿Qué fue revisado?
● ¿Quién lo revisó?
● ¿Qué se descubrió y cuáles son las
conclusiones?
● El informe es una página simple (con posibles
suplementos). Se adjunta al registro histórico del
proyecto y puede ser enviada al jefe del proyecto
y a otras partes interesadas

 IS Unidad 5 ­ Luis Nieto ­ 2018 75
Unidad 5 – RTF

● Se deben establecer de antemano directrices


para conducir las RTF, distribuyéndolas después
entre los revisores, para ser consensuadas y,
finalmente, seguidas

● Frecuentemente, una revisión incontrolada puede


ser peor que no hacer ningún tipo de revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 76
Unidad 5 – RTF

● Revisar el producto, no al productor. Una


RTF involucra gente y egos. Se deben señalar los
errores educadamente; el tono de la reunión
debe ser distendido y constructivo; no debe
intentarse dificultar o batallar

● Fijar una agenda y mantenerla. Un mal de las


reuniones de todo tipo es la deriva. La RTF debe
seguir un plan de trabajo concreto. El jefe de
revisión es el responsable de mantener el plan de
la reunión
 IS Unidad 5 ­ Luis Nieto ­ 2018 77
Unidad 5 – RTF

● Limitar el debate y las impugnaciones.


Cuando un revisor ponga de manifiesto otro tipo
de problema, podrá no haber unanimidad sobre
su impacto. En lugar de perder el tiempo
debatiendo la cuestión, debe registrarse el hecho
y dejar que la cuestión se lleve a cabo en otro
momento
● Tomar notas escritas. A veces es buena idea
que el que registra tome las notas en una pizarra,
de forma que las declaraciones o la asignación de
prioridades pueda ser comprobada por el resto
de los revisores
 IS Unidad 5 ­ Luis Nieto ­ 2018 78
Unidad 5 – RTF

● Enunciar áreas de problemas, pero no


intentar resolver cualquier problema que se
ponga de manifiesto. Una revisión no es una
sesión de resolución de problemas. La resolución
de los problemas debe ser pospuesta para
después de la reunión de revisión

● Disponer recursos y una agenda para las


RTF. Para que las revisiones sean efectivas, se
deben planificar

 IS Unidad 5 ­ Luis Nieto ­ 2018 79
Unidad 5 – RTF

● Limitar el número de participantes e insistir


en la preparación anticipada. 2 personas son
mejores que 1, pero 14 no son necesariamente
mejores que 4. Se ha de mantener el número de
participantes en el mínimo necesario

● Desarrollar una lista de comprobación para


cada producto que haya de ser revisado.
Una lista de comprobaciones ayuda al jefe de
revisión a estructurar la reunión y ayuda a cada
revisor a centrarse en los asuntos importantes
 IS Unidad 5 ­ Luis Nieto ­ 2018 80
Unidad 5 – RTF

● Repasar las revisiones anteriores. Las


sesiones de información pueden ser beneficiosas
para descubrir problemas en el propio proceso de
revisión. El primer producto que se haya revisado
puede establecer las propias directivas de
revisión

● Llevar a cabo un buen entrenamiento de


todos los revisores. Por razones de efectividad,
todos los participantes en la revisión deben
recibir algún entrenamiento formal
 IS Unidad 5 ­ Luis Nieto ­ 2018 81
Unidad 5 – RTF

● Como existen muchas variables (número de


participantes, tipo de productos de trabajo,
tiempo y duración, enfoque de revisión
específico) que tienen impacto en una revisión
satisfactoria, una organización deberá determinar
qué método funciona mejor en un contexto local

 IS Unidad 5 ­ Luis Nieto ­ 2018 82
Unidad 5 – Pruebas del Software
software

● El proceso de pruebas comienza con la prueba de


unidades: funciones, objetos, etc

● Luego estas unidades se integran en subsistemas


y sistemas y se prueban las interacciones entre
los mismos

● Finalmente, después de entregar el sistema, el


cliente puede llevar a cabo una serie de pruebas
de aceptación para comprobar que el mismo
funciona como se especificó
 IS Unidad 5 ­ Luis Nieto ­ 2018 83
Unidad 5 – Pruebas del Software
software

● Este modelo de pruebas es apropiado para el


desarrollo de sistemas grandes, pero para
sistemas más chicos a veces se distinguen
menos etapas en el proceso:

Pruebas del Pruebas de


componente integración

 IS Unidad 5 ­ Luis Nieto ­ 2018 84
Unidad 5 – Pruebas del Software
software

● Prueba de componentes: probar las partes del


sistema. Busca descubrir defectos probando
componentes individuales (funciones, objetos,
componentes reutilizables, etc)

● Prueba del sistema: probar el sistema como un


todo. Busca establecer que el sistema satisface
sus requerimientos funcionales, y no se comporta
de forma inesperada

 IS Unidad 5 ­ Luis Nieto ­ 2018 85
Unidad 5 – Pruebas del Software
software

● El proceso de pruebas tiene 2 objetivos distintos:


● Demostrar al desarrollador y al cliente que el
SW satisface sus requerimientos

● Descubrir defectos en el SW (comportamiento


incorrecto o no deseable, incumplimiento de su
especificación, etc)

 IS Unidad 5 ­ Luis Nieto ­ 2018 86
Unidad 5 – Pruebas del Software
software

● El primer objetivo conduce a las pruebas de


validación (se espera que el sistema funcione
correctamente usando un conjunto determinado de
casos de prueba)
● Una prueba de validación exitosa demuestra
que el sistema funciona correctamente

● El segundo objetivo conduce a las pruebas de


defectos (los casos de prueba se diseñan para
exponer los defectos)
● Una prueba de defectos exitosa demuestra un
defecto en el sistema
 IS Unidad 5 ­ Luis Nieto ­ 2018 87
Unidad 5 – Pruebas del Software
software

● Las pruebas no pueden demostrar que el SW está


libre de defectos o que se comportará en todo
momento como está especificado:

● Las pruebas sólo pueden demostrar la


presencia de errores, no su ausencia

● El objetivo de las pruebas es convencer a los


desarrolladores y a los clientes que el SW es lo
suficientemente bueno para uso operacional
 IS Unidad 5 ­ Luis Nieto ­ 2018 88
Unidad 5 – Pruebas del Software
software

● Modelo general del proceso de pruebas:

Resultados de Informe de la
Casos de prueba Datos de prueba
la prueba prueba

Ejecutar el programa Comparar resultados


Diseñar casos de Preparar datos de
con los datos de con los datos de
prueba prueba
prueba prueba

 IS Unidad 5 ­ Luis Nieto ­ 2018 89
Unidad 5 – Pruebas del Software
software

● Casos de prueba: especificaciones de las


entradas para las pruebas y la salida esperada
del sistema (no se pueden generar
automáticamente)

● Datos de prueba: entradas que han sido


ideadas para probar el sistema (a veces pueden
generarse automáticamente)

 IS Unidad 5 ­ Luis Nieto ­ 2018 90
Unidad 5 – Pruebas del Software
software

● Es imposible probar cada posible secuencia de


ejecución del programa, por lo que las pruebas
tienen que basarse en un subconjunto de
posibles casos de prueba:
● Probar todas las funciones a las que se accede
a través de menús
● Probar todas las combinaciones de funciones
● Probar todas las funciones con datos correctos
e incorrectos

 IS Unidad 5 ­ Luis Nieto ­ 2018 91
Unidad 5 – Pruebas del Software
software

● Los gestores deciden quién será responsable de


las diferentes etapas de pruebas:
● Generalmente, los programadores tienen la
responsabilidad de probar sus componentes

● Una vez que lo hacen, el trabajo se pasa a un


equipo de integración que integra los módulos
de diferentes desarrolladores, construye el SW
y prueba el sistema como un todo

 IS Unidad 5 ­ Luis Nieto ­ 2018 92
Unidad 5 – Pruebas de Componentes

● Pruebas de componentes (de unidad)


● Consisten en probar los componentes
individuales en el sistema

● Su objetivo es encontrar defectos en los


componentes del sistema

 IS Unidad 5 ­ Luis Nieto ­ 2018 93
Unidad 5 – Pruebas de Componentes

● Tipos de componentes:
● Funciones/métodos dentro de un objeto

● Clases con varios atributos y métodos

● Componentes formados por diferentes objetos


o funciones (se accede a su funcionalidad
mediante una interfaz)

 IS Unidad 5 ­ Luis Nieto ­ 2018 94
Unidad 5 – Pruebas de Componentes

● Cuando se prueban métodos se los llama con


diferentes parámetros de entrada (correctos e
incorrectos)

● Al probar las clases se deben cubrir todas sus


características:
● Todos sus métodos
● Asignación y consulta de todos sus atributos
● Comportamiento del objeto en todos sus
posibles estados
 IS Unidad 5 ­ Luis Nieto ­ 2018 95
Unidad 5 – Pruebas de Componentes

● Muchos componentes están formados por varios


objetos, accediendo a sus funcionalidades por
medio de sus interfaces

● Las pruebas de estos componentes se ocupan


principalmente de probar que la interfaz del
componente se comporta de acuerdo con su
especificación

 IS Unidad 5 ­ Luis Nieto ­ 2018 96
Unidad 5 – Pruebas del sistema

● Las pruebas del sistema implican integrar y


probar 2 o más componentes que implementan
funciones o características del sistema:
● En un desarrollo iterativo, estas pruebas
prueban un incremento que va a ser entregado
al cliente

● En un desarrollo en cascada, estas pruebas


prueban el sistema completo

 IS Unidad 5 ­ Luis Nieto ­ 2018 97
Unidad 5 – Pruebas del sistema

● Para la mayoría de los sistemas complejos,


existen 2 fases distintas de pruebas del sistema:
● Pruebas de integración

● Pruebas de entregas

 IS Unidad 5 ­ Luis Nieto ­ 2018 98
Unidad
Unidad5 5– –Pruebas
Pruebasde
del
integración
sistema

● Pruebas de integración
● Se tiene acceso al código fuente (pruebas de
caja blanca)

● Cuando se descubre un problema, se intenta


encontrar el origen del mismo e identificar los
componentes que tienen que ser depurados

● Se ocupan principalmente de encontrar


defectos en el sistema
 IS Unidad 5 ­ Luis Nieto ­ 2018 99
Unidad 5 – Pruebas de integración

● El proceso de integración implica construir un


sistema a partir de sus componentes y probar el
mismo para encontrar problemas que pueden
surgir debido a la integración

● Las pruebas de integración comprueban que


estos componentes realmente funcionan juntos,
son llamados correctamente y transfieren los
datos correctos en el tiempo preciso a través de
sus interfaces

 IS Unidad 5 ­ Luis Nieto ­ 2018 100
Unidad 5 – Pruebas de integración

● La principal dificultad es la localización de los


errores

● Esto implica que cuando se integra un nuevo


incremento, es importante volver a ejecutar las
pruebas para incrementos previos, así como las
nuevas pruebas requeridas para verificar la
nueva funcionalidad del sistema

● Volver a ejecutar un conjunto existente de


pruebas se denomina pruebas de regresión
 IS Unidad 5 ­ Luis Nieto ­ 2018 101
Unidad 5 – Pruebas de entregas

● Pruebas de entregas
● Se prueba una versión del sistema que podría
ser entregada a los usuarios (suelen ser de
caja negra)

● Se valida que el sistema satisface sus


requerimientos y que es confiable

● Cuando los clientes se involucran se las suele


llamar pruebas de aceptación
 IS Unidad 5 ­ Luis Nieto ­ 2018 102
Unidad 5 – Pruebas de entregas

● Prueban una entrega del sistema que será


distribuida a los clientes

● El principal objetivo es demostrar que el sistema


satisface sus requerimientos:
● Demostrar que el sistema entrega la
funcionalidad especificada
● Demostrar que el sistema tiene el rendimiento
especificado
● Demostrar que el sistema no falla durante su
uso normal
 IS Unidad 5 ­ Luis Nieto ­ 2018 103
Unidad 5 – Pruebas de entregas

● Cuando se prueban las entregas del sistema, se


debe intentar “romper” el SW:
● Elegir entradas que fuerzan que el sistema
genere todos los mensajes de error
● Diseñar entradas que hacen que los buffers de
entrada se desborden
● Repetir la misma entrada varias veces
● Forzar a que se generen las salidas inválidas
● Forzar los resultados de los cálculos para que
sean muy grandes o muy pequeños
 IS Unidad 5 ­ Luis Nieto ­ 2018 104
Unidad 5 – Pruebas de rendimiento

● Una vez que un sistema se ha integrado


completamente, es posible probar las
propiedades emergentes del mismo, como el
rendimiento y la fiabilidad

● Las pruebas de rendimiento se diseñan para


asegurar que el sistema puede procesar su carga
esperada

 IS Unidad 5 ­ Luis Nieto ­ 2018 105
Unidad 5 – Pruebas de rendimiento

● Como sucede con otros tipos de pruebas, las


pruebas de rendimiento se ocupan tanto de
demostrar que el sistema satisface sus
requerimientos como de descubrir problemas y
defectos en el mismo

● Las pruebas de rendimiento implican estresar el


sistema realizando demandas que están fuera de
los límites del diseño del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 106
Unidad 5 – Pruebas de rendimiento

● Estos tipos de pruebas tienen 2 funciones:


● Sobrecargar el sistema y poder provocar que
se manifiesten defectos que normalmente no
serían descubiertos

● Probar el comportamiento de fallo de ejecución


del sistema. Pueden aparecer circunstancias a
través de una combinación no esperada de
eventos en donde la carga sobre el sistema
supere la carga máxima anticipada

 IS Unidad 5 ­ Luis Nieto ­ 2018 107
Unidad 5 – Diseño de casos de prueba

● En el diseño de casos de prueba se diseñan las


entradas y salidas esperadas para probar el
sistema

● El objeto es crear un conjunto de casos de prueba


que sean efectivos descubriendo defectos en los
programas y mostrando que el sistema satisface
sus requerimientos

 IS Unidad 5 ­ Luis Nieto ­ 2018 108
Unidad 5 – Diseño de casos de prueba

● Diseño de un caso de prueba:


● Se selecciona una característica del sistema o
componente a probar

● Se selecciona un conjunto de entradas que


ejecutan dicha característica, se documentan
las salidas esperadas, y si es posible se diseña
una prueba automatizada que pruebe que las
salidas reales y esperadas son las mismas

 IS Unidad 5 ­ Luis Nieto ­ 2018 109
Unidad 5 – Diseño de casos de prueba

● Enfoques que se pueden seguir para diseñar


casos de prueba:
● Pruebas basadas en requerimientos

● Pruebas de particiones

● Pruebas estructurales

● Pruebas de caminos
 IS Unidad 5 ­ Luis Nieto ­ 2018 110
Unidad 5 – Diseño de casos de prueba

● Pruebas basadas en requerimientos


● Se diseñan los casos de prueba para probar los
requerimientos del sistema

● Se utiliza para las pruebas del sistema

● Son pruebas de validación en lugar de pruebas


de defectos: se intenta demostrar que el
sistema ha implementado sus requerimientos
de forma adecuada
 IS Unidad 5 ­ Luis Nieto ­ 2018 111
Unidad 5 – Diseño de casos de prueba

● Pruebas basadas en requerimientos


● Los requerimientos deben poder probarse, por
lo que se los debe escribir de tal forma que se
pueda diseñar una prueba que permita
comprobar que los requerimientos se
satisfacen

 IS Unidad 5 ­ Luis Nieto ­ 2018 112
Unidad 5 – Diseño de casos de prueba

● Pruebas de particiones
● Los datos de E/S se pueden agrupar por
características comunes:
– Números positivos
– Números negativos
– Selecciones de menús

● A estas características o categorías se las


denomina particiones o dominios

 IS Unidad 5 ­ Luis Nieto ­ 2018 113
Unidad 5 – Diseño de casos de prueba

● Pruebas de particiones
● Se identifican todas las particiones para un
sistema o componente (los casos de prueba se
diseñan para que las E/S pertenezcan a estas
particiones)

● Una buena práctica es elegir los límites de las


particiones junto con los valores cercanos al
punto medio de la partición (entradas válidas e
inválidas)

 IS Unidad 5 ­ Luis Nieto ­ 2018 114
Unidad 5 – Diseño de casos de prueba

● Pruebas estructurales
● Con la estructura del programa, se diseñan
pruebas que ejecuten todas sus partes:
– Probar que cada sentencia se ejecuta al
menos una vez

● También se las llama “pruebas de caja blanca"

● La comprensión de la estructura del programa


ayuda a identificar particiones adicionales
 IS Unidad 5 ­ Luis Nieto ­ 2018 115
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Estrategia para las pruebas estructurales

● Su objetivo es asegurar que cada camino


independiente en el programa o componente
se ejecuta al menos una vez:
– Si se prueba cada camino, todas las
sentencias del programa o componente se
habrán ejecutado al menos una vez

 IS Unidad 5 ­ Luis Nieto ­ 2018 116
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● La cantidad de caminos es un programa es
proporcional a su tamaño

● Como los distintos módulos se van integrando,


no se pueden usar estas pruebas (se las usa en
las pruebas de componente)

 IS Unidad 5 ­ Luis Nieto ­ 2018 117
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Las pruebas de caminos no prueban todas las
posibles combinaciones de todos los caminos
(en programas con lazos hay un número
infinito de posibles combinaciones de caminos)

● Para diseñar estas pruebas se arma un grafo


de flujo del programa:
– Nodos: decisiones
– Aristas: flujo de control
 IS Unidad 5 ­ Luis Nieto ­ 2018 118
Unidad 5 – Diseño de casos de prueba

public void busquedaBinaria(int clave, int[] array, Resultado r) {


int limInf = 0; //1
1
int limSup = array.length – 1; //2
int medio;
2
r.setIndice(-1); //3
r.setEncontrado(false); //4 3
while (limInf <= limSup) { //5
medio = (limInf + limSup) / 2; //6
4
if (array[medio] == clave) { //7
r.setIndice(medio); //8 limInf >  5 while (limInf <= 
r.setEncontrado(true); //9 limSup limSup)
return; //10
}
6
else { array[medio] 
7 != clave 11
if (array[medio] > clave) //11
array[medio] 
limSup = medio – 1; //12
= clave 8 array[medio] 
else > clave
limInf = medio + 1; //13 9 12 13
}
} 14 10
} IS Unidad 5 ­ Luis Nieto ­ 2018 //14 119
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Los caminos en el grafo son:
– 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14
– 1, 2, 3, 4, 5, 14
– 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, ...
– 1, 2, 3, 4, 5, 6, 7, 11, 13, 5, ...

● Si se ejecutan todos estos caminos, se puede


asegurar que cada sentencia se ejecuta al
menos una vez, y que cada rama se ejecuta
para las condiciones verdadera y falsa
 IS Unidad 5 ­ Luis Nieto ­ 2018 120
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Para encontrar el número de caminos
independientes se puede calcular la
complejidad ciclomática del grafo:
– Condición simple: expresión lógica sin
conectores “AND” u “OR”

– Condición compuesta: expresión lógica


con conectores “AND” u “OR”

 IS Unidad 5 ­ Luis Nieto ­ 2018 121
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Cálculo de la complejidad ciclomática (para
programas sin sentencias GOTO):
– Es 1 más que el número de condiciones
(simples)

– Si hay condiciones compuestas, se cuenta el


número de condiciones simples en las
compuestas

 IS Unidad 5 ­ Luis Nieto ­ 2018 122
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Ejemplo: programa con 6 sentencias IF, 1 lazo
WHILE y todas expresiones condicionales
simples:
– Complejidad ciclomática = 8

● Si una de las expresiones condicionales es de


la forma “IF A AND B OR C”, esto cuenta
como 3 expresiones simples (A, B y C):
– Complejidad ciclomática = 10
 IS Unidad 5 ­ Luis Nieto ­ 2018 123
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Para el algoritmo de búsqueda binaria:
– while (limiteInferior <= limiteSuperior) { //5
– if (array[medio] == clave) { //7
– if (array[medio] > clave) //11

● Complejidad ciclomática = 4

● Cantidad de caminos independientes = 4

 IS Unidad 5 ­ Luis Nieto ­ 2018 124
Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Luego de obtener la cantidad de caminos
independientes se diseñan los casos de prueba
para ejecutarlos

● El número mínimo de casos de prueba


necesarios para probar todos los caminos es
igual a la complejidad ciclomática

 IS Unidad 5 ­ Luis Nieto ­ 2018 125
   

Unidad 5 – Aseguramiento de la Calidad

● Conceptos de calidad
● Fiabilidad, disponibilidad y seguridad
● Gestión de la calidad
● Garantía de la calidad
● Planificación de la calidad
● Control de la calidad
● Actividades de la SQA

 
   

Unidad 5 – Aseguramiento de la Calidad

● Modelos de calidad
● CMM
● CMMI
● Revisiones de software
● Revisiones Técnicas Formales (RTF)

 IS Unidad 5 ­ Luis Nieto ­ 2018 2

 
   

Unidad 5 – Aseguramiento de la Calidad

● Pruebas del software


● Pruebas de componentes
● Pruebas del sistema
● Pruebas de integración
● Pruebas de entregas
● Pruebas de rendimiento
● Diseño de casos de prueba

 IS Unidad 5 ­ Luis Nieto ­ 2018 3

 
   

Unidad 5 – Conceptos de calidad

● Para productos tangibles, la calidad depende de


la similitud entre el producto desarrollado y su
especificación

● El control de variación es la base del control de


calidad: se quiere reducir la variación entre los
productos que se fabrican

 IS Unidad 5 ­ Luis Nieto ­ 2018 4

 
   

Unidad 5 – Conceptos de calidad

● En el SW el esfuerzo se centra en controlar la


variación en:
● el proceso que se aplica
● los recursos que se consumen
● los atributos de calidad del producto final

● En el SW se quiere reducir la diferencia entre los


recursos planificados y los reales utilizados

 IS Unidad 5 ­ Luis Nieto ­ 2018 5

 
   

Unidad 5 – Conceptos de calidad

● Calidad: “característica o atributo de algo”


● Como un atributo de un elemento, la calidad se
refiere a las características medibles: cosas
que se pueden comparar con estándares
conocidos: longitud, color, etc

● El SW es más difícil de caracterizar que los


objetos físicos. Algunas propiedades:
complejidad, cohesión, número de puntos de
función, líneas de código, etc

 IS Unidad 5 ­ Luis Nieto ­ 2018 6

 
   

Unidad 5 – Conceptos de calidad

● satisfacción del usuario = producto


satisfactorio + buena calidad + entrega
dentro de presupuesto y tiempo
establecidos
● La calidad es importante, pero si el usuario no
queda satisfecho nada más importa
● Esta visión de la calidad establece que si el
producto SW proporciona un beneficio sustancial
a los usuarios finales, éstos pueden estar
dispuestos a tolerar problemas ocasionales de
rendimiento o fiabilidad
 IS Unidad 5 ­ Luis Nieto ­ 2018 7

 
   

Unidad 5 – Conceptos de calidad

● El costo de la calidad incluye todos los costos


acarreados en la búsqueda de calidad o en las
actividades relacionadas con la obtención de
calidad

● Los costos de calidad están asociados con:


● Prevención
● Evaluación
● Fallos

 IS Unidad 5 ­ Luis Nieto ­ 2018 8

 
   

Unidad 5 – Conceptos de calidad

● Prevención: planificación, revisiones técnicas


formales, equipo de pruebas y formación

● Evaluación: actividades para tener una visión


más profunda de la condición del producto. Por
ejemplo: inspección del proceso, mantenimiento
del equipo, pruebas

 IS Unidad 5 ­ Luis Nieto ­ 2018 9

 
   

Unidad 5 – Conceptos de calidad

● Fallos: se dividen en:


● Costos internos: se producen cuando se
detecta un error en el producto antes de su
envío (retrabajo o revisión, reparación, análisis
de las modalidades de fallos, etc)

● Costos externos: debido a defectos


encontrados una vez enviado el producto al
cliente (resolución de quejas, devolución y
sustitución de productos, soporte de línea de
ayuda, trabajo de garantía)
 IS Unidad 5 ­ Luis Nieto ­ 2018 10

 
   

Unidad 5 – Conceptos de calidad

● Los costos relativos para encontrar y reparar un


defecto aumentan a medida que se cambia de
prevención a detección, y desde fallos internos a
externos.
40-1000
veces
Costo relativo de corregir un error

30-70
veces

15-40
veces

10 veces

3-6 veces

1 vez

Prueba de Prueba de En fase de


Requisitos Diseño Código
desarrollo sistema explotación

 IS Unidad 5 ­ Luis Nieto ­ 2018 11

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● Fallo: cualquier falta de concordancia con los


requisitos del SW:
● En el HW los fallos son más probables debido
al desgaste físico que al diseño
● En el SW los fallos se producen por problemas
de diseño o de implementación

● Fiabilidad: probabilidad de operación libre de


fallos en un entorno determinado y durante un
tiempo específico

 IS Unidad 5 ­ Luis Nieto ­ 2018 12

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● La fiabilidad del SW es un elemento importante


de su calidad general: si falla frecuentemente en
su funcionamiento, no importa si el resto de los
factores de calidad son aceptables

● La fiabilidad del SW, a diferencia de otros


factores de calidad, puede ser medida o estimada
mediante datos históricos o de desarrollo

 IS Unidad 5 ­ Luis Nieto ­ 2018 13

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● Una medida de la fiabilidad es el tiempo medio


entre fallos (TMEF):
● TMEF = TMDF + TMDR
● TMDF: tiempo medio de fallo
● TMDR: tiempo medio de reparación

● Muchos argumentan que el TMDF es una medida


más útil que los defectos/KSLOC o defectos/PF
porque el usuario final se enfrenta a los fallos, no
al número total de errores
 IS Unidad 5 ­ Luis Nieto ­ 2018 14

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● Disponibilidad: probabilidad que el SW funcione


de acuerdo con los requisitos en un momento
dado:

● Disp = [TMDF / (TMEF)] x 100%

● La disponibilidad es una medida indirecta de la


facilidad de mantenimiento del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 15

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● Antes que se usara SW en sistemas críticos de


seguridad, los mismos se controlaban mediante
dispositivos electrónicos y mecánicos (no
programables)

● Las técnicas de seguridad se diseñaban para


hacer frente a fallos aleatorios en estos
dispositivos

 IS Unidad 5 ­ Luis Nieto ­ 2018 16

 
   

Unidad 5 – Fiabilidad, disponibilidad y


seguridad

● Cuando se utiliza SW como parte del sistema de


control, la complejidad puede aumentar en un
orden de magnitud o más

● La seguridad del SW se centra en la identificación


y evaluación de los riesgos potenciales que
podrían producir un impacto negativo y hacer
que falle el sistema completo

 IS Unidad 5 ­ Luis Nieto ­ 2018 17

 
   

Unidad 5 – Gestión de la Calidad

● La Gestión de la Calidad se estructura en 3


actividades principales:
● Garantía de la calidad (SQA):
procedimientos y estándares que conducen a
SW de alta calidad
● Planificación de la calidad: selección de
procedimientos y estándares adecuados
● Control de calidad: inspecciones, revisiones
y pruebas a lo largo del proceso SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 18

 
   

Unidad 5 – Garantía de la Calidad

● Durante los años '50 y '60, la calidad era


responsabilidad únicamente del programador

● Luego, durante los '70 se introdujeron estándares


de garantía de calidad para el SW en los
contratos militares

● Estos estándares se extendieron rápidamente a


los desarrollos comerciales, con lo cual, muchos
de los que constituyen una organización tienen
responsabilidad sobre la garantía de calidad
 IS Unidad 5 ­ Luis Nieto ­ 2018 19

 
   

Unidad 5 – Garantía de la Calidad

● Los responsables de SQA miran al SW desde el


punto de vista del cliente:
● ¿Satisface de forma adecuada el SW los
factores de calidad?

● ¿Se ha realizado el desarrollo de acuerdo con


estándares preestablecidos?

 IS Unidad 5 ­ Luis Nieto ­ 2018 20

 
   

Unidad 5 – Garantía de la Calidad

● SQA es el proceso que define cómo lograr la


calidad del SW y cómo conoce la organización el
nivel de calidad requerido en el SW

● Se pueden definir 2 tipos de estándares:


● Estándares del producto

● Estándares del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 21

 
   

Unidad 5 – Garantía de la Calidad

● Estándares del producto: se aplican sobre el


producto SW que se comienza a desarrollar.
Incluyen estándares de documentación, de
codificación, etc

● Estándares del proceso: definen los procesos


que se deben seguir durante el desarrollo del SW.
Se pueden incluir definiciones de procesos de
especificación, diseño y validación, así como una
descripción de los documentos que se deben
escribir en el curso de estos procesos
 IS Unidad 5 ­ Luis Nieto ­ 2018 22

 
   

Unidad 5 – Garantía de la Calidad

● Los estándares de SW son importantes porque:


● Están basados en el conocimiento de la mejor
o más apropiada práctica de la organización

● Proveen un marco de trabajo alrededor del cual


se implementa el proceso de garantía de la
calidad

● Ayudan a la continuidad cuando una persona


continúa el trabajo que llevaba a cabo otra
 IS Unidad 5 ­ Luis Nieto ­ 2018 23

 
   

Unidad 5 – Planificación de la Calidad

● La planificación de la calidad es el proceso en el


cual se desarrolla un plan de calidad para un
proyecto, el cual define la calidad del SW
deseado y describe cómo valorar la misma
(define qué es “software de alta calidad”)

● El plan de calidad selecciona los estándares


organizacionales apropiados para un producto y
proceso de desarrollo particulares

 IS Unidad 5 ­ Luis Nieto ­ 2018 24

 
   

Unidad 5 – Planificación de la Calidad

● Estructura sugerida para un plan de calidad:


● Introducción al producto: descripción del
producto, el mercado al que se dirige y las
expectativas de calidad

● Planificación del producto: fechas de


terminación y las responsabilidades
importantes junto con los planes para la
distribución y el servicio

 IS Unidad 5 ­ Luis Nieto ­ 2018 25

 
   

Unidad 5 – Planificación de la Calidad

● Estructura sugerida para un plan de calidad:


● Descripción de procesos: procesos a utilizar
para el desarrollo y administración del
producto

● Metas de calidad: metas y planes de calidad


para el producto

● Riesgos y gestión de riesgos: riesgos clave


que podrían afectar a la calidad del producto y
las acciones para abordarlos
 IS Unidad 5 ­ Luis Nieto ­ 2018 26

 
   

Unidad 5 – Planificación de la Calidad

● Hay una gran variedad de atributos de calidad


del SW a considerar en el proceso de
planificación de la calidad:
Seguridad Reutilización
Comprensión Flexibilidad
Portabilidad Modularidad
Protección Eficacia
Usabilidad Robustez
Fiabilidad Complejidad
Adaptabilidad Aprendizaje
 IS Unidad 5 ­ Luis Nieto ­ 2018 27

 
   

Unidad 5 – Planificación de la Calidad

● En general, no es posible optimizar todos los


atributos para un sistema: el plan de calidad
define los atributos de calidad más importantes
para el producto a desarrollar

 IS Unidad 5 ­ Luis Nieto ­ 2018 28

 
   

Unidad 5 – Control de la Calidad

● El control de la calidad implica vigilar el proceso


de desarrollo para asegurar que se siguen los
procedimientos y los estándares de garantía de
calidad

● Existen 2 enfoques complementarios que se


utilizan para comprobar la calidad:
● Revisiones de la calidad
● Valoración automática del software

 IS Unidad 5 ­ Luis Nieto ­ 2018 29

 
   

Unidad 5 – Control de la Calidad

● Revisiones de la calidad: el SW, su


documentación y los procesos utilizados en su
desarrollo son revisados por un grupo de
personas:
● Se comprueba que se han seguido los
estándares del proyecto, y que el SW y los
documentos concuerdan con los mismos

● Se anotan las desviaciones de los estándares y


se comunican al gestor del proyecto

 IS Unidad 5 ­ Luis Nieto ­ 2018 30

 
   

Unidad 5 – Control de la Calidad

● Valoración automática del software: el


software y los documentos producidos se
procesan por algún programa y se comparan con
los estándares que se aplican a ese proyecto de
desarrollo en particular
● Esta valoración automática comprende una
medida cuantitativa de algunos atributos del
software

 IS Unidad 5 ­ Luis Nieto ­ 2018 31

 
   

Unidad 5 – Actividades de la SQA

● Actividades de SQA recomendadas por el SEI:


● Planificar SQA para un proyecto
● Describir el proceso SW
● Revisar que las actividades de IS se ajustan al
proceso SW definido
● Documentar las desviaciones
● Auditar que los productos SW se ajusten como
parte del proceso SW
● Registrar e informar lo que no se ajuste a los
requisitos
 IS Unidad 5 ­ Luis Nieto ­ 2018 32

 
   

Unidad 5 – Actividades de la SQA

● Planificar SQA para un proyecto. El plan se


desarrolla durante la planificación del proyecto y
se revisa por todas las partes interesadas
● El plan identifica:
● Evaluaciones a realizar
● Auditorías y revisiones a realizar
● Estándares que se pueden aplicar al proyecto
● Procedimientos para información y
seguimiento de errores
● Documentos producidos por el grupo SQA
 IS Unidad 5 ­ Luis Nieto ­ 2018 33

 
   

Unidad 5 – Actividades de la SQA

● Describir el proceso SW. El equipo de IS


selecciona un proceso para el trabajo que se va a
realizar

● El grupo de SQA revisa que la descripción del


proceso se ajuste a la política de la empresa, los
estándares internos del SW, los estándares
impuestos externamente y a otras partes del plan
de proyecto del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 34

 
   

Unidad 5 – Actividades de la SQA

● Revisar que las actividades de IS se ajustan


al proceso SW definido. El grupo de SQA
identifica y documenta las desviaciones del
proceso y verifica que se han hecho las
correcciones

● Documentar las desviaciones. Las


desviaciones se pueden encontrar en el plan del
proyecto, en la descripción del proceso, en los
estándares, etc

 IS Unidad 5 ­ Luis Nieto ­ 2018 35

 
   

Unidad 5 – Actividades de la SQA

● Auditar que los productos SW se ajusten


como parte del proceso SW. El grupo de SQA
revisa los productos seleccionados; identifica,
documenta y lleva el control de las desviaciones;
verifica que se han hecho las correcciones, e
informa periódicamente al gestor del proyecto

● Registrar e informar lo que no se ajuste a


los requisitos. Los elementos que no se ajustan
a los requisitos están bajo seguimiento hasta que
se resuelven
 IS Unidad 5 ­ Luis Nieto ­ 2018 36

 
   

Unidad 5 – Actividades de la SQA

● Además de estas actividades, el grupo de SQA


coordina el control y la gestión de cambios y
ayuda a recopilar y analizar las métricas del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 37

 
   

Unidad 5 – Modelos de Calidad


calidad

● El proceso SW es genérico: el ideal que debería


seguir una organización para conseguir productos
de calidad

● En realidad, cada organización debe definir su


proceso SW para detectar si es adecuado o no y
cuánto dista del ideal

 IS Unidad 5 ­ Luis Nieto ­ 2018 38

 
   

Unidad 5 – Modelos de Calidad


calidad

● El peor de los casos (muy frecuente) es una


organización que no sigue proceso alguno para
construir SW, y por lo tanto, no hay una guía para
construir SW

● Un equipo que sigue un proceso SW puede:


● Coordinar mejor el trabajo de cada miembro

● Seguir de un modo preciso los avances tanto


individuales como del equipo completo
 IS Unidad 5 ­ Luis Nieto ­ 2018 39

 
   

Unidad 5 – Modelos de Calidad


calidad

● Un proceso SW:
● Ayuda a asegurar que cada elemento de
trabajo se asigne y se siga adecuadamente

● Es un mecanismo para un aprendizaje


ordenado

● Permite que cada proyecto nuevo sea


construido basado en su propia experiencia y
en anteriores

 IS Unidad 5 ­ Luis Nieto ­ 2018 40

 
   

Unidad 5 – Modelos de Calidad


calidad

● Ventajas al definir un proceso SW:


● Se facilita la comunicación entre usuarios,
desarrolladores, gestores y clientes sobre el
proceso
● Se gana una mejor comprensión de la gestión
● Se brinda una base precisa para la
automatización del proceso
● Se facilita la movilidad de las personas dentro
del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 41

 
   

Unidad 5 – Modelos de Calidad


calidad

● Ventajas al definir un proceso SW:


● Se facilita la reutilización del proceso: cada
proyecto nuevo no necesita redefinir
completamente su modo de trabajo
(estándares reutilizables)

● Ayuda a la gestión del proceso: provee planes


claros y un modo preciso y cuantificado de
comparar el estado con los planes

 IS Unidad 5 ­ Luis Nieto ­ 2018 42

 
   

Unidad 5 – Modelos de Calidad


calidad

● Los procesos son difíciles de establecer, pero más


difíciles aún de cambiar

● Los procesos deben cambiar continuamente para


ser mejorados

● Conclusión: no es suficiente con definir el


proceso SW de una organización, sino que
además el mismo debe sufrir una mejora
permanente
 IS Unidad 5 ­ Luis Nieto ­ 2018 43

 
   

Unidad 5 – CMM

● El SEI desarrolló un marco de madurez del


proceso software, el cual permite a las
organizaciones determinar las capacidades de
sus procesos actuales y definir prioridades de
mejoras

● Este marco de madurez definido por el SEI se


llama Modelo de Capacidad y Madurez o
Capability Maturity Model (CMM), y está
organizado en 5 niveles

 IS Unidad 5 ­ Luis Nieto ­ 2018 44

 
   

Unidad 5 – CMM

 IS Unidad 5 ­ Luis Nieto ­ 2018 45

 
   

Unidad 5 – CMM

● Para cada nivel se definen Áreas Clave de


Proceso (KPA), las cuales proporcionan los
objetivos y prácticas a alcanzar en cada nivel

● Se lo llama modelo de madurez porque propone


adoptar un conjunto de prácticas en forma
gradual: primero deben ponerse en práctica KPAs
pertenecientes a un nivel determinado, para
luego, sobre esta base, introducir las
correspondientes al nivel siguiente

 IS Unidad 5 ­ Luis Nieto ­ 2018 46

 
   

Unidad 5 – CMM

● Nivel 1 – Inicial
● Representa una situación sin ningún esfuerzo
en la garantía de calidad y gestión del
proyecto, donde cada equipo puede desarrollar
SW de cualquier forma eligiendo distintos
métodos, estándares y procedimientos
● El proceso software es ad-hoc y,
ocasionalmente, incluso caótico. El éxito
depende del esfuerzo individual
● KPA: no tiene

 IS Unidad 5 ­ Luis Nieto ­ 2018 47

 
   

Unidad 5 – CMM

● Nivel 2 – Repetible
● Están establecidos ciertos procesos básicos de
gestión de proyectos para seguir el costo, el
calendario y la funcionalidad
● Hay la disciplina necesaria para repetir éxitos
conseguidos con anterioridad

 IS Unidad 5 ­ Luis Nieto ­ 2018 48

 
   

Unidad 5 – CMM

● Nivel 2 – Repetible
● KPA:
– Gestión de configuración
– Garantía de calidad
– Gestión de la subcontratación
– Seguimiento de proyectos
– Planificación de proyectos
– Gestión de requisitos

 IS Unidad 5 ­ Luis Nieto ­ 2018 49

 
   

Unidad 5 – CMM

● Nivel 3 – Definido
● Representa el hecho de que un desarrollador
ha definido tanto procesos técnicos como de
gestión

● Por ejemplo se ha detallado un estándar para


la programación, y se hace cumplir por medio
de procedimientos tales como auditorías

 IS Unidad 5 ­ Luis Nieto ­ 2018 50

 
   

Unidad 5 – CMM

● Nivel 3 – Definido
● KPA:
– Revisiones profundas
– Coordinación entre grupos
– Ingeniería de la producción de software
– Gestión integrada en el proceso
– Programa de formación
– Definición del proceso
– Focalización en el proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 51

 
   

Unidad 5 – CMM

● Nivel 4 – Gestionado
● Comprende el concepto de medición y el uso
de métricas
● Estas métricas proporcionan alguna indicación
del esfuerzo necesario para probar el código
● Una organización de nivel 4 maneja numerosas
métricas, las cuales se utilizan para supervisar
y controlar un proyecto SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 52

 
   

Unidad 5 – CMM

● Nivel 4 – Gestionado
● KPA:
– Gestión de la calidad
– Gestión cualitativa del proceso

 IS Unidad 5 ­ Luis Nieto ­ 2018 53

 
   

Unidad 5 – CMM

● Nivel 5 – Optimizado
● Representa la analogía del SW con los
mecanismos de control de calidad que existen
en otras industrias de mayor madurez

● Un desarrollador de SW de nivel 5 puede


predecir resultados basado en la medición
tomada durante la ejecución de un proyecto

 IS Unidad 5 ­ Luis Nieto ­ 2018 54

 
   

Unidad 5 – CMM

● Nivel 5 – Optimizado
● KPA:
– Gestión de cambio de proceso
– Gestión de cambio de tecnología
– Prevención de defectos

 IS Unidad 5 ­ Luis Nieto ­ 2018 55

 
   

Unidad 5 – CMM

● El CMM ha sido revisado y refinado por muchos


especialistas para ponerse de acuerdo en los
métodos más efectivos para alcanzar los
objetivos de cada nivel de madurez

 IS Unidad 5 ­ Luis Nieto ­ 2018 56

 
   

Unidad 5 – CMMI

● El modelo de capacidad y madurez


integrado (CMMI) es un modelo de referencia o
conjunto de prácticas enfocadas a mejorar los
procesos de una organización

● El modelo utiliza el paradigma de mejora del


proceso ya que el mismo no solo refleja el estado
del arte del proceso SW, también permite
establecer metas y prioridades para la mejora del
proceso, estableciendo un plan centrado en la
medición y cuantificación objetiva de los mismos
 IS Unidad 5 ­ Luis Nieto ­ 2018 57

 
   

Unidad 5 – CMMI

● El propósito de CMMI para desarrollo es ayudar a


las organizaciones a mejorar sus procesos de
desarrollo de productos

● Consiste en definir las mejores prácticas que


tratan las actividades de desarrollo
comprendiendo el ciclo de vida completo del
producto, desde la concepción hasta la entrega y
mantenimiento del mismo, adaptándose
completamente la aplicación del modelo a la
organización
 IS Unidad 5 ­ Luis Nieto ­ 2018 58

 
   

Unidad 5 – CMMI

● La estrategia adoptada por CMMI produce


beneficios operativos:
● Reducción de costo y tiempo de entrega
● Mayor productividad
● Menores tiempos de desarrollo
● Disminución del retrabajo y errores
● Mayor calidad del producto y satisfacción del
cliente.

 IS Unidad 5 ­ Luis Nieto ­ 2018 59

 
   

Unidad 5 – CMMI

● Al igual que CMM, fue creado por el SEI con la


colaboración de la industria, el gobierno y el
ámbito académico, con el fin de unir una gran
cantidad de modelos existentes

● En la actualidad hay 3 áreas de interés cubiertas


por los modelos de CMMI:
● Desarrollo (CMMI-DEV)
● Adquisición (CMMI-ACQ)
● Servicios (CMMI-SVC)
 IS Unidad 5 ­ Luis Nieto ­ 2018 60

 
   

Unidad 5 – CMMI

● CMMI-DEV: guías para medir, monitorizar y


administrar el proceso de desarrollo

● CMMI-ACQ: guías para el proceso de adquisición


de productos y servicios

● CMMI-SVC: guías para proporcionar servicios en


una organización y a clientes externos

 IS Unidad 5 ­ Luis Nieto ­ 2018 61

 
   

Unidad 5 – Revisiones de Software

● Las revisiones de software son un "filtro" para el


proceso de IS
● Las revisiones se aplican en varios momentos del
desarrollo y sirven para detectar errores y
defectos que puedan ser eliminados
● También, se necesitan revisiones porque aunque
la gente es buena descubriendo algunos de sus
propios errores, algunas clases de errores le
pasan por alto más fácilmente al que los origina
que a otras personas

 IS Unidad 5 ­ Luis Nieto ­ 2018 62

 
   

Unidad 5 – Revisiones de Software

● Una revisión es una forma de aprovechar la


diversidad de un grupo de personas para:
● Señalar la necesidad de mejoras (en el
producto) de una sola persona o un equipo
● Confirmar las partes de un producto en las que
no es necesaria o no es deseable una mejora
● Conseguir un trabajo técnico de una calidad
más uniforme, o al menos más predecible, que
la que puede ser conseguida sin revisiones

 IS Unidad 5 ­ Luis Nieto ­ 2018 63

 
   

Unidad 5 – Revisiones de Software

● Existen muchos tipos diferentes de revisiones


que se pueden llevar adelante como parte de la
IS:
● Una reunión informal es una forma de revisión
(si se discuten problemas técnicos)
● Una presentación formal de un diseño de
software a una audiencia de clientes,
ejecutivos y personal técnico es una forma de
revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 64

 
   

Unidad 5 – Revisiones de Software

● Una revisión técnica formal (RTF), a veces


denominada inspección, es el filtro más efectivo
desde el punto de vista de garantía de calidad

● La RTF es un medio efectivo para mejorar la


calidad del SW

● El objetivo primario de las RTF es encontrar


errores durante el proceso, de forma que no se
conviertan en defectos después de la entrega
 IS Unidad 5 ­ Luis Nieto ­ 2018 65

 
   

Unidad 5 – RTF

● Los objetivos de una RTF son:


● Descubrir errores en la función, la lógica o la
implementación de cualquier representación
del SW
● Verificar que el SW alcanza sus requisitos
● Garantizar que el SW ha sido representado de
acuerdo a estándares predefinidos
● Conseguir un SW desarrollado de forma
uniforme
● Hacer que los proyectos sean más manejables
 IS Unidad 5 ­ Luis Nieto ­ 2018 66

 
   

Unidad 5 – RTF

● La RTF también sirve para promover la seguridad


y la continuidad, ya que varias personas se
familiarizarán con partes del SW que, de otro
modo, no hubieran visto nunca

 IS Unidad 5 ­ Luis Nieto ­ 2018 67

 
   

Unidad 5 – RTF

● Cada RTF se lleva a cabo mediante una reunión


● Cualquier reunión de revisión debe seguir las
siguientes restricciones:
● Se deben convocar entre 3 y 5 personas
● Se debe preparar por adelantado, pero sin que
requiera más de 2 horas de trabajo a cada
persona
● La duración de la reunión debe ser menor de 2
horas

 IS Unidad 5 ­ Luis Nieto ­ 2018 68

 
   

Unidad 5 – RTF

● Cada RTF se centra en una parte específica (y


chica) del SW total

● Por ejemplo, en lugar de intentar revisar un


diseño completo, se hacen inspecciones a cada
módulo o pequeño grupo de módulos

● Al limitar el centro de atención de la RTF, la


probabilidad de descubrir errores es mayor

 IS Unidad 5 ­ Luis Nieto ­ 2018 69

 
   

Unidad 5 – RTF

● La persona que desarrolló un producto


(productor) informa al jefe del proyecto que el
mismo está terminado y que requiere una
revisión
● El jefe del proyecto contacta con un jefe de
revisión, que evalúa la disponibilidad del
producto, genera copias del mismo y las
distribuye a 2 o 3 revisores para que se preparen
por adelantado
● Cada revisor estará entre 1 y 2 horas revisando el
producto, tomando notas y también
familiarizándose con el trabajo
 IS Unidad 5 ­ Luis Nieto ­ 2018 70

 
   

Unidad 5 – RTF

● De forma concurrente, también el jefe de revisión


revisará el producto y establecerá una agenda
para la reunión de revisión que, normalmente,
queda convocada para el día siguiente

● La reunión de revisión es llevada a cabo por el


jefe de revisión, los revisores y el productor. Uno
de los revisores registra de forma escrita todos
los sucesos importantes que se produzcan
durante la revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 71

 
   

Unidad 5 – RTF

● La RTF comienza con una explicación de la


agenda y una breve introducción a cargo del
productor

● El productor explica el material, mientras que los


revisores exponen los resultados de sus
revisiones basándose en su preparación previa

● Cuando se descubren problemas o errores


válidos, el que registra los va anotando
 IS Unidad 5 ­ Luis Nieto ­ 2018 72

 
   

Unidad 5 – RTF

● Al final de la revisión, todos los participantes en


la RTF deben decidir si:
● Aceptan el producto sin posteriores
modificaciones
● Rechazan el producto debido a los serios
errores encontrados (una vez corregidos, ha de
hacerse otra revisión)
● Aceptan el producto provisoriamente (se han
encontrado errores menores que deben ser
corregidos, pero sin necesidad de otra revisión
posterior)
 IS Unidad 5 ­ Luis Nieto ­ 2018 73

 
   

Unidad 5 – RTF

● Una vez tomada la decisión, todos los


participantes terminan firmando, indicando así
que han participado en la revisión y que están de
acuerdo con las conclusiones del equipo de
revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 74

 
   

Unidad 5 – RTF

● Al final de la reunión se prepara un informe, el


cual responde a 3 preguntas:
● ¿Qué fue revisado?
● ¿Quién lo revisó?
● ¿Qué se descubrió y cuáles son las
conclusiones?
● El informe es una página simple (con posibles
suplementos). Se adjunta al registro histórico del
proyecto y puede ser enviada al jefe del proyecto
y a otras partes interesadas

 IS Unidad 5 ­ Luis Nieto ­ 2018 75

 
   

Unidad 5 – RTF

● Se deben establecer de antemano directrices


para conducir las RTF, distribuyéndolas después
entre los revisores, para ser consensuadas y,
finalmente, seguidas

● Frecuentemente, una revisión incontrolada puede


ser peor que no hacer ningún tipo de revisión

 IS Unidad 5 ­ Luis Nieto ­ 2018 76

 
   

Unidad 5 – RTF

● Revisar el producto, no al productor. Una


RTF involucra gente y egos. Se deben señalar los
errores educadamente; el tono de la reunión
debe ser distendido y constructivo; no debe
intentarse dificultar o batallar

● Fijar una agenda y mantenerla. Un mal de las


reuniones de todo tipo es la deriva. La RTF debe
seguir un plan de trabajo concreto. El jefe de
revisión es el responsable de mantener el plan de
la reunión
 IS Unidad 5 ­ Luis Nieto ­ 2018 77

 
   

Unidad 5 – RTF

● Limitar el debate y las impugnaciones.


Cuando un revisor ponga de manifiesto otro tipo
de problema, podrá no haber unanimidad sobre
su impacto. En lugar de perder el tiempo
debatiendo la cuestión, debe registrarse el hecho
y dejar que la cuestión se lleve a cabo en otro
momento
● Tomar notas escritas. A veces es buena idea
que el que registra tome las notas en una pizarra,
de forma que las declaraciones o la asignación de
prioridades pueda ser comprobada por el resto
de los revisores
 IS Unidad 5 ­ Luis Nieto ­ 2018 78

 
   

Unidad 5 – RTF

● Enunciar áreas de problemas, pero no


intentar resolver cualquier problema que se
ponga de manifiesto. Una revisión no es una
sesión de resolución de problemas. La resolución
de los problemas debe ser pospuesta para
después de la reunión de revisión

● Disponer recursos y una agenda para las


RTF. Para que las revisiones sean efectivas, se
deben planificar

 IS Unidad 5 ­ Luis Nieto ­ 2018 79

 
   

Unidad 5 – RTF

● Limitar el número de participantes e insistir


en la preparación anticipada. 2 personas son
mejores que 1, pero 14 no son necesariamente
mejores que 4. Se ha de mantener el número de
participantes en el mínimo necesario

● Desarrollar una lista de comprobación para


cada producto que haya de ser revisado.
Una lista de comprobaciones ayuda al jefe de
revisión a estructurar la reunión y ayuda a cada
revisor a centrarse en los asuntos importantes
 IS Unidad 5 ­ Luis Nieto ­ 2018 80

 
   

Unidad 5 – RTF

● Repasar las revisiones anteriores. Las


sesiones de información pueden ser beneficiosas
para descubrir problemas en el propio proceso de
revisión. El primer producto que se haya revisado
puede establecer las propias directivas de
revisión

● Llevar a cabo un buen entrenamiento de


todos los revisores. Por razones de efectividad,
todos los participantes en la revisión deben
recibir algún entrenamiento formal
 IS Unidad 5 ­ Luis Nieto ­ 2018 81

 
   

Unidad 5 – RTF

● Como existen muchas variables (número de


participantes, tipo de productos de trabajo,
tiempo y duración, enfoque de revisión
específico) que tienen impacto en una revisión
satisfactoria, una organización deberá determinar
qué método funciona mejor en un contexto local

 IS Unidad 5 ­ Luis Nieto ­ 2018 82

 
   

Unidad 5 – Pruebas del Software


software

● El proceso de pruebas comienza con la prueba de


unidades: funciones, objetos, etc

● Luego estas unidades se integran en subsistemas


y sistemas y se prueban las interacciones entre
los mismos

● Finalmente, después de entregar el sistema, el


cliente puede llevar a cabo una serie de pruebas
de aceptación para comprobar que el mismo
funciona como se especificó
 IS Unidad 5 ­ Luis Nieto ­ 2018 83

 
   

Unidad 5 – Pruebas del Software


software

● Este modelo de pruebas es apropiado para el


desarrollo de sistemas grandes, pero para
sistemas más chicos a veces se distinguen
menos etapas en el proceso:

Pruebas del Pruebas de


componente integración

 IS Unidad 5 ­ Luis Nieto ­ 2018 84

 
   

Unidad 5 – Pruebas del Software


software

● Prueba de componentes: probar las partes del


sistema. Busca descubrir defectos probando
componentes individuales (funciones, objetos,
componentes reutilizables, etc)

● Prueba del sistema: probar el sistema como un


todo. Busca establecer que el sistema satisface
sus requerimientos funcionales, y no se comporta
de forma inesperada

 IS Unidad 5 ­ Luis Nieto ­ 2018 85

 
   

Unidad 5 – Pruebas del Software


software

● El proceso de pruebas tiene 2 objetivos distintos:


● Demostrar al desarrollador y al cliente que el
SW satisface sus requerimientos

● Descubrir defectos en el SW (comportamiento


incorrecto o no deseable, incumplimiento de su
especificación, etc)

 IS Unidad 5 ­ Luis Nieto ­ 2018 86

 
   

Unidad 5 – Pruebas del Software


software

● El primer objetivo conduce a las pruebas de


validación (se espera que el sistema funcione
correctamente usando un conjunto determinado de
casos de prueba)
● Una prueba de validación exitosa demuestra
que el sistema funciona correctamente

● El segundo objetivo conduce a las pruebas de


defectos (los casos de prueba se diseñan para
exponer los defectos)
● Una prueba de defectos exitosa demuestra un
defecto en el sistema
 IS Unidad 5 ­ Luis Nieto ­ 2018 87

 
   

Unidad 5 – Pruebas del Software


software

● Las pruebas no pueden demostrar que el SW está


libre de defectos o que se comportará en todo
momento como está especificado:

● Las pruebas sólo pueden demostrar la


presencia de errores, no su ausencia

● El objetivo de las pruebas es convencer a los


desarrolladores y a los clientes que el SW es lo
suficientemente bueno para uso operacional
 IS Unidad 5 ­ Luis Nieto ­ 2018 88

 
   

Unidad 5 – Pruebas del Software


software

● Modelo general del proceso de pruebas:

Resultados de Informe de la
Casos de prueba Datos de prueba
la prueba prueba

Ejecutar el programa Comparar resultados


Diseñar casos de Preparar datos de
con los datos de con los datos de
prueba prueba
prueba prueba

 IS Unidad 5 ­ Luis Nieto ­ 2018 89

 
   

Unidad 5 – Pruebas del Software


software

● Casos de prueba: especificaciones de las


entradas para las pruebas y la salida esperada
del sistema (no se pueden generar
automáticamente)

● Datos de prueba: entradas que han sido


ideadas para probar el sistema (a veces pueden
generarse automáticamente)

 IS Unidad 5 ­ Luis Nieto ­ 2018 90

 
   

Unidad 5 – Pruebas del Software


software

● Es imposible probar cada posible secuencia de


ejecución del programa, por lo que las pruebas
tienen que basarse en un subconjunto de
posibles casos de prueba:
● Probar todas las funciones a las que se accede
a través de menús
● Probar todas las combinaciones de funciones
● Probar todas las funciones con datos correctos
e incorrectos

 IS Unidad 5 ­ Luis Nieto ­ 2018 91

 
   

Unidad 5 – Pruebas del Software


software

● Los gestores deciden quién será responsable de


las diferentes etapas de pruebas:
● Generalmente, los programadores tienen la
responsabilidad de probar sus componentes

● Una vez que lo hacen, el trabajo se pasa a un


equipo de integración que integra los módulos
de diferentes desarrolladores, construye el SW
y prueba el sistema como un todo

 IS Unidad 5 ­ Luis Nieto ­ 2018 92

 
   

Unidad 5 – Pruebas de Componentes

● Pruebas de componentes (de unidad)


● Consisten en probar los componentes
individuales en el sistema

● Su objetivo es encontrar defectos en los


componentes del sistema

 IS Unidad 5 ­ Luis Nieto ­ 2018 93

 
   

Unidad 5 – Pruebas de Componentes

● Tipos de componentes:
● Funciones/métodos dentro de un objeto

● Clases con varios atributos y métodos

● Componentes formados por diferentes objetos


o funciones (se accede a su funcionalidad
mediante una interfaz)

 IS Unidad 5 ­ Luis Nieto ­ 2018 94

 
   

Unidad 5 – Pruebas de Componentes

● Cuando se prueban métodos se los llama con


diferentes parámetros de entrada (correctos e
incorrectos)

● Al probar las clases se deben cubrir todas sus


características:
● Todos sus métodos
● Asignación y consulta de todos sus atributos
● Comportamiento del objeto en todos sus
posibles estados
 IS Unidad 5 ­ Luis Nieto ­ 2018 95

 
   

Unidad 5 – Pruebas de Componentes

● Muchos componentes están formados por varios


objetos, accediendo a sus funcionalidades por
medio de sus interfaces

● Las pruebas de estos componentes se ocupan


principalmente de probar que la interfaz del
componente se comporta de acuerdo con su
especificación

 IS Unidad 5 ­ Luis Nieto ­ 2018 96

 
   

Unidad 5 – Pruebas del sistema

● Las pruebas del sistema implican integrar y


probar 2 o más componentes que implementan
funciones o características del sistema:
● En un desarrollo iterativo, estas pruebas
prueban un incremento que va a ser entregado
al cliente

● En un desarrollo en cascada, estas pruebas


prueban el sistema completo

 IS Unidad 5 ­ Luis Nieto ­ 2018 97

 
   

Unidad 5 – Pruebas del sistema

● Para la mayoría de los sistemas complejos,


existen 2 fases distintas de pruebas del sistema:
● Pruebas de integración

● Pruebas de entregas

 IS Unidad 5 ­ Luis Nieto ­ 2018 98

 
   

Unidad
Unidad5 5– –Pruebas
Pruebasde
del
integración
sistema

● Pruebas de integración
● Se tiene acceso al código fuente (pruebas de
caja blanca)

● Cuando se descubre un problema, se intenta


encontrar el origen del mismo e identificar los
componentes que tienen que ser depurados

● Se ocupan principalmente de encontrar


defectos en el sistema
 IS Unidad 5 ­ Luis Nieto ­ 2018 99

 
   

Unidad 5 – Pruebas de integración

● El proceso de integración implica construir un


sistema a partir de sus componentes y probar el
mismo para encontrar problemas que pueden
surgir debido a la integración

● Las pruebas de integración comprueban que


estos componentes realmente funcionan juntos,
son llamados correctamente y transfieren los
datos correctos en el tiempo preciso a través de
sus interfaces

 IS Unidad 5 ­ Luis Nieto ­ 2018 100

 
   

Unidad 5 – Pruebas de integración

● La principal dificultad es la localización de los


errores

● Esto implica que cuando se integra un nuevo


incremento, es importante volver a ejecutar las
pruebas para incrementos previos, así como las
nuevas pruebas requeridas para verificar la
nueva funcionalidad del sistema

● Volver a ejecutar un conjunto existente de


pruebas se denomina pruebas de regresión
 IS Unidad 5 ­ Luis Nieto ­ 2018 101

 
   

Unidad 5 – Pruebas de entregas

● Pruebas de entregas
● Se prueba una versión del sistema que podría
ser entregada a los usuarios (suelen ser de
caja negra)

● Se valida que el sistema satisface sus


requerimientos y que es confiable

● Cuando los clientes se involucran se las suele


llamar pruebas de aceptación
 IS Unidad 5 ­ Luis Nieto ­ 2018 102

 
   

Unidad 5 – Pruebas de entregas

● Prueban una entrega del sistema que será


distribuida a los clientes

● El principal objetivo es demostrar que el sistema


satisface sus requerimientos:
● Demostrar que el sistema entrega la
funcionalidad especificada
● Demostrar que el sistema tiene el rendimiento
especificado
● Demostrar que el sistema no falla durante su
uso normal
 IS Unidad 5 ­ Luis Nieto ­ 2018 103

 
   

Unidad 5 – Pruebas de entregas

● Cuando se prueban las entregas del sistema, se


debe intentar “romper” el SW:
● Elegir entradas que fuerzan que el sistema
genere todos los mensajes de error
● Diseñar entradas que hacen que los buffers de
entrada se desborden
● Repetir la misma entrada varias veces
● Forzar a que se generen las salidas inválidas
● Forzar los resultados de los cálculos para que
sean muy grandes o muy pequeños
 IS Unidad 5 ­ Luis Nieto ­ 2018 104

 
   

Unidad 5 – Pruebas de rendimiento

● Una vez que un sistema se ha integrado


completamente, es posible probar las
propiedades emergentes del mismo, como el
rendimiento y la fiabilidad

● Las pruebas de rendimiento se diseñan para


asegurar que el sistema puede procesar su carga
esperada

 IS Unidad 5 ­ Luis Nieto ­ 2018 105

 
   

Unidad 5 – Pruebas de rendimiento

● Como sucede con otros tipos de pruebas, las


pruebas de rendimiento se ocupan tanto de
demostrar que el sistema satisface sus
requerimientos como de descubrir problemas y
defectos en el mismo

● Las pruebas de rendimiento implican estresar el


sistema realizando demandas que están fuera de
los límites del diseño del SW

 IS Unidad 5 ­ Luis Nieto ­ 2018 106

 
   

Unidad 5 – Pruebas de rendimiento

● Estos tipos de pruebas tienen 2 funciones:


● Sobrecargar el sistema y poder provocar que
se manifiesten defectos que normalmente no
serían descubiertos

● Probar el comportamiento de fallo de ejecución


del sistema. Pueden aparecer circunstancias a
través de una combinación no esperada de
eventos en donde la carga sobre el sistema
supere la carga máxima anticipada

 IS Unidad 5 ­ Luis Nieto ­ 2018 107

 
   

Unidad 5 – Diseño de casos de prueba

● En el diseño de casos de prueba se diseñan las


entradas y salidas esperadas para probar el
sistema

● El objeto es crear un conjunto de casos de prueba


que sean efectivos descubriendo defectos en los
programas y mostrando que el sistema satisface
sus requerimientos

 IS Unidad 5 ­ Luis Nieto ­ 2018 108

 
   

Unidad 5 – Diseño de casos de prueba

● Diseño de un caso de prueba:


● Se selecciona una característica del sistema o
componente a probar

● Se selecciona un conjunto de entradas que


ejecutan dicha característica, se documentan
las salidas esperadas, y si es posible se diseña
una prueba automatizada que pruebe que las
salidas reales y esperadas son las mismas

 IS Unidad 5 ­ Luis Nieto ­ 2018 109

 
   

Unidad 5 – Diseño de casos de prueba

● Enfoques que se pueden seguir para diseñar


casos de prueba:
● Pruebas basadas en requerimientos

● Pruebas de particiones

● Pruebas estructurales

● Pruebas de caminos
 IS Unidad 5 ­ Luis Nieto ­ 2018 110

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas basadas en requerimientos


● Se diseñan los casos de prueba para probar los
requerimientos del sistema

● Se utiliza para las pruebas del sistema

● Son pruebas de validación en lugar de pruebas


de defectos: se intenta demostrar que el
sistema ha implementado sus requerimientos
de forma adecuada
 IS Unidad 5 ­ Luis Nieto ­ 2018 111

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas basadas en requerimientos


● Los requerimientos deben poder probarse, por
lo que se los debe escribir de tal forma que se
pueda diseñar una prueba que permita
comprobar que los requerimientos se
satisfacen

 IS Unidad 5 ­ Luis Nieto ­ 2018 112

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de particiones
● Los datos de E/S se pueden agrupar por
características comunes:
– Números positivos
– Números negativos
– Selecciones de menús

● A estas características o categorías se las


denomina particiones o dominios

 IS Unidad 5 ­ Luis Nieto ­ 2018 113

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de particiones
● Se identifican todas las particiones para un
sistema o componente (los casos de prueba se
diseñan para que las E/S pertenezcan a estas
particiones)

● Una buena práctica es elegir los límites de las


particiones junto con los valores cercanos al
punto medio de la partición (entradas válidas e
inválidas)

 IS Unidad 5 ­ Luis Nieto ­ 2018 114

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas estructurales
● Con la estructura del programa, se diseñan
pruebas que ejecuten todas sus partes:
– Probar que cada sentencia se ejecuta al
menos una vez

● También se las llama “pruebas de caja blanca"

● La comprensión de la estructura del programa


ayuda a identificar particiones adicionales
 IS Unidad 5 ­ Luis Nieto ­ 2018 115

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Estrategia para las pruebas estructurales

● Su objetivo es asegurar que cada camino


independiente en el programa o componente
se ejecuta al menos una vez:
– Si se prueba cada camino, todas las
sentencias del programa o componente se
habrán ejecutado al menos una vez

 IS Unidad 5 ­ Luis Nieto ­ 2018 116

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● La cantidad de caminos es un programa es
proporcional a su tamaño

● Como los distintos módulos se van integrando,


no se pueden usar estas pruebas (se las usa en
las pruebas de componente)

 IS Unidad 5 ­ Luis Nieto ­ 2018 117

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Las pruebas de caminos no prueban todas las
posibles combinaciones de todos los caminos
(en programas con lazos hay un número
infinito de posibles combinaciones de caminos)

● Para diseñar estas pruebas se arma un grafo


de flujo del programa:
– Nodos: decisiones
– Aristas: flujo de control
 IS Unidad 5 ­ Luis Nieto ­ 2018 118

 
   

Unidad 5 – Diseño de casos de prueba

public void busquedaBinaria(int clave, int[] array, Resultado r) {


int limInf = 0; //1
1
int limSup = array.length – 1; //2
int medio;
2
r.setIndice(-1); //3
r.setEncontrado(false); //4 3
while (limInf <= limSup) { //5
medio = (limInf + limSup) / 2; //6
4
if (array[medio] == clave) { //7
r.setIndice(medio); //8 limInf >  5 while (limInf <= 
r.setEncontrado(true); //9 limSup limSup)
return; //10
}
6
else { array[medio] 
7 != clave 11
if (array[medio] > clave) //11
array[medio] 
limSup = medio – 1; //12
= clave 8 array[medio] 
else > clave
limInf = medio + 1; //13 9 12 13
}
} 14 10
} IS Unidad 5 ­ Luis Nieto ­ 2018 //14 119

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Los caminos en el grafo son:
– 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14
– 1, 2, 3, 4, 5, 14
– 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, ...
– 1, 2, 3, 4, 5, 6, 7, 11, 13, 5, ...

● Si se ejecutan todos estos caminos, se puede


asegurar que cada sentencia se ejecuta al
menos una vez, y que cada rama se ejecuta
para las condiciones verdadera y falsa
 IS Unidad 5 ­ Luis Nieto ­ 2018 120

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Para encontrar el número de caminos
independientes se puede calcular la
complejidad ciclomática del grafo:
– Condición simple: expresión lógica sin
conectores “AND” u “OR”

– Condición compuesta: expresión lógica


con conectores “AND” u “OR”

 IS Unidad 5 ­ Luis Nieto ­ 2018 121

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Cálculo de la complejidad ciclomática (para
programas sin sentencias GOTO):
– Es 1 más que el número de condiciones
(simples)

– Si hay condiciones compuestas, se cuenta el


número de condiciones simples en las
compuestas

 IS Unidad 5 ­ Luis Nieto ­ 2018 122

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Ejemplo: programa con 6 sentencias IF, 1 lazo
WHILE y todas expresiones condicionales
simples:
– Complejidad ciclomática = 8

● Si una de las expresiones condicionales es de


la forma “IF A AND B OR C”, esto cuenta
como 3 expresiones simples (A, B y C):
– Complejidad ciclomática = 10
 IS Unidad 5 ­ Luis Nieto ­ 2018 123

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Para el algoritmo de búsqueda binaria:
– while (limiteInferior <= limiteSuperior) { //5
– if (array[medio] == clave) { //7
– if (array[medio] > clave) //11

● Complejidad ciclomática = 4

● Cantidad de caminos independientes = 4

 IS Unidad 5 ­ Luis Nieto ­ 2018 124

 
   

Unidad 5 – Diseño de casos de prueba

● Pruebas de caminos
● Luego de obtener la cantidad de caminos
independientes se diseñan los casos de prueba
para ejecutarlos

● El número mínimo de casos de prueba


necesarios para probar todos los caminos es
igual a la complejidad ciclomática

 IS Unidad 5 ­ Luis Nieto ­ 2018 125

También podría gustarte