Diseño Exp Parcial
Diseño Exp Parcial
Diseño Exp Parcial
https://cl.abstracta.us/blog/tipos-pruebas-performance/
SCRUM:
Validación: ¿Provee al sistema las funciones que mejor soporten las necesidades del cliente?
Realismo: ¿Pueden los Requisitos ser implementados con la tecnología y el presupuesto disponible?
Criterios de aceptación: Un criterio de aceptación es el criterio por el cual se define si una historia de
usuario fue desarrollada según la expectativa del Product Manager/Owner (como representante de los
criterios del cliente) y se si puede dar como hecha.
Revisión de Requisitos:
Demostración de que los Requisitos que definen el sistema son lo que el cliente realmente quiere.
Los costos de errores en los Requisitos son altos, por lo cual, la validación es muy importante.
reparar un error de Requisito después del desarrollo puede resultar en un coste 100 veces mayor que
reparar un error en la implementación.
El Prototipado es una técnica importante de la validación de Requisitos.
Validación. ¿Provee al sistema las funciones que mejor soporten las necesidades del cliente?
Realismo. ¿Pueden los Requisitos ser implementados con la tecnología y el presupuesto disponible?
Una revisión regular puede ayudar mientras la definición de Requisitos está siendo hecha.
La revisión debe ser formal (con los documentos completos) o informal. Una buena comunicación entre
desarrolladores, clientes y usuarios puede resolver problemas en las primeras etapas.
Términos:
• RUP: Es un proceso de ingeniería de software que suministra un enfoque para asignar tareas y
responsabilidades dentro de una organización de desarrollo
• XP: Es una metodología de desarrollo que pertenece a las conocidas como metodologías ágiles
(otras son Scrum, Kanban…), cuyo objetivo es el desarrollo y gestión de proyectos con eficacia,
flexibilidad y control. Ambos conceptos, relacionados estrechamente, son distintos.
• Disciplina:
Modelado.
Implementación.
Pruebas.
Despliegue.
Gestión de la configuración.
Entorno.
• Iteración: En un desarrollo iterativo e incremental el proyecto se planifica en diversos bloques
temporales (en el caso de Scrum de un mes natural o hasta de dos semanas, si así se necesita)
llamados iteraciones. Las iteraciones se pueden entender como miniproyectos.
• Error (error): Es una decisión incorrecta tomada durante el desarrollo de un sistema de software
(usualmente una suposición incorrecta).
• Defecto (defect, fault, «bug»): Es una propiedad del software que puede hacer que se comporte
de una manera no deseada, por ejemplo, un proceso, una definición de datos o un paso de
procesamiento incorrectos en un programa.
Los fallos son producidos por defectos, que son el resultado de errores. Los fallos existen en la ejecución
del programa, los defectos en el software, y los errores en las personas.
Corre
cción
Compa
Robustez
tibilidad
Facilida Calidad
Eficien
d de
cia
Uso
Integri Portabil
dad idad
Corrección:
Es la capacidad de los productos software para realizar con exactitud las tareas expresadas en su
especificación.
Uno de los problemas de la corrección es que se presupone la confianza en los distintos componentes
involucrados en la producción del sistema; compilador, bibliotecas, módulos, Sistema operativo, etc.
Robustez:
Eficiencia:
Es la capacidad del software para hacer buen uso de los recursos que manipula.
Una práctica muy común en los desarrolladores es la optimización excesiva, lo importante es mantener
un balance adecuado entre eficiencia y corrección.
Portabilidad:
Es la facilidad con que un sistema software puede ser migrado entre diferentes plataformas hardware o
software.
La portabilidad es un factor que tomó gran importancia en la década de los 90 debido a la gran
proliferación de los sistemas basados en Internet y su basta heterogeneidad.
Integridad:
Es la característica de un sistema de ser capaz de proteger sus diferentes componentes contra los
procesos o elementos que no tengan derecho de acceso a los mismos.
Facilidad de Uso:
Compatibilidad:
Es la facilidad de combinar diferentes elementos software con el fin de ejecutar una labor en conjunto.
La mayoría de los sistemas son abiertos (interactúan con otros sistemas), y el dinamismo inherente a la
realidad hace muy probable que los sistemas software tengan que intercambiar información entre sí.
Esto hace que la compatibilidad sea un factor muy serio al momento de modelar el sistema.
Validación:
Conjunto de actividades que aseguran que el software construido se ajusta a los requisitos del cliente.
Verificación:
Conjunto de actividades que aseguran que el software implementa correctamente una función
específica.
Verificación y Validación:
¿Qué evitamos con las pruebas?
Pérdidas de productividad
Es una de las barreras para evitar que software de baja calidad llegue a los usuarios finales.
V&V Estática = REVISIONES
Informales:
Objetivos Definidos
Procesos Documentados
Roles definidos y Personas entrenadas en ellos
Checklist, reglas y métodos para encontrar defectos
Reporte de resultado
Recolección de datos para el control de proceso
Técnicas de Prueba:
Documentos:
V&V Estática
Ventajas:
No requiere de código ejecutable, por lo que puede ser realizada desde el inicio
Mejora la capacitación
Desventajas:
V&V Dinámica
Ventajas:
Pueden no ser exhaustivas (Principio de Pareto – 80 / 20)
Desventajas:
Tipos de Prueba:
Pruebas de Unidad
Caja Blanca: Usa la estructura de control del diseño procedimental para obtener los casos de
Caja Negra: Se centran en los requisitos funcionales del software. Se llevan a cabo sobre la
interfaz del sistema.
Pruebas Funcionales
Comprueban si los sistemas cumplen con las funciones específicas para los que han sido
creados.
Pruebas no Funcionales
Prueban la calidad de las características del producto (Usabilidad, Mantenibilidad, Fiabilidad,
rendimiento, etc)
Pruebas de Integración
Se comprueba la compatibilidad y funcionalidad de los interfaces entre las distintas ‘partes’ que
componen un sistema, estas ‘partes’ pueden ser módulos, aplicaciones individuales, aplicaciones
cliente/servidor, etc.
Pruebas de Validación
La validación del software se consigue mediante una serie de pruebas de caja negra que demuestran la
conformidad con los requisitos.
Prueba Alfa: Las pruebas alfa se llevan a cabo en un entorno controlado, pero por un cliente.
Realizadas por el usuario con el desarrollador como observador en un entorno controlado
(simulación de un entorno de producción).
Prueba Beta: Es una aplicación en vivo del software en un entorno que no puede ser controlado
Pruebas de Sistema
Pruebas de Recuperación: Fuerza el fallo del software de muchas formas y verifica que la
recuperación se lleva a cabo apropiadamente.
Pruebas de Seguridad: Intenta verificar que los mecanismos de protección incorporados en el
sistema lo protegerán de accesos impropios por parte de piratas informáticos.
Pruebas de Resistencia: Ejecuta un sistema de forma que demande recursos en cantidad,
frecuencia o volúmenes anormales.
Pruebas de Rendimiento: Consisten en determinar que los tiempos de respuesta están dentro
de los intervalos establecidos en las especificaciones del sistema.
Niveles de Pruebas:
Medición:
Por ejemplo:
Por ejemplo:
Métrica:
Una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado
(IEEE Estándar Glossary of Software Engineering Terms)
Por ejemplo:
Indicador:
Un indicador es una métrica o una combinación de métricas que proporcionan una visión profunda del
proceso del software, del proyecto de software o del producto en sí.
Reporte de pruebas:
• Pruebas De Software: Realizo la Medición
Donde:
TMDF: Tiempo Medio de Fallo (Tiempo medio que le demora a una persona encontrar el origen del fallo)
TMDR: Tiempo Medio de Reparación (Tiempo medio que le demora una persona en arreglar el fallo)
Donde:
MP = CPS / CPR
Donde:
CPR: Número de casos de pruebas a ejecutar requeridos para cubrir los requisitos.
Modelo V
Organización del Equipo
Gerente de
Proyecto
Gestor de
Calidad
Jefe de QA/QC
Analista de
Analista de Analista de
Control de
Aseguramiento Control
Cambios
SCRUM:
RUP:
Escenarios de Negocio:
Caso de Prueba:
Precondiciones
Conjunto de valores de entrada
Conjunto de resultados esperados
Forma en la cual se debe ejecutar el caso de prueba y verificación de resultados
Postcondiciones
Test Base o Test Basis (Fundamentos de pruebas)
Conjunto de documentos que definen los requisitos de un componente o sistema utilizado como
referencia para el desarrollo de casos de prueba.
Debugging (Depuración)
Debugging (Depuración)
Localización y corrección de defectos en el código fuente.
Requirement (Requisito)
Review (Revisión)
Conformidad con el enfoque global, los esfuerzos requeridos para las pruebas se distribuyen entre los
deferentes objetos de prueba y objetivos de las pruebas:
Conjunto de condiciones genéricas y específicas, acordadas con los stakeholders, para permitir que un
proceso sea considerado formalmente finalizado. El propósito de los criterios de salida es evitar que una
tarea se considere finalizada habiendo partes importantes de la misma sin completar. Los criterios de
salida son utilizados como fuente para elaborar informes y planificar
le suspensión de las pruebas.
Un objeto u evento de un componente o sistema que debe verificado por uno o más casos de prueba.
Ejemplos: una función, transacción, característica, atributo de calidad o elemento estructural
Conjunto de casos de prueba para un componente o sistema, donde la post condición de un caso de
prueba es utilizada como precondición pare el caso de
prueba siguiente.
Datos que existen en el sistema antes de que una prueba sea ejecutada, y que
afecta o es afectado por los componentes o sistema sujeto a pruebas.
Inspección:
Las Inspecciones son un proceso bien definido y disciplinado donde un equipo de personas cualificadas
analiza un producto software usando una técnica de lectura con el propósito de detectar defectos.
Proceso de Inspección:
DETECCION DE CORRECCION Y
Preparar la LecturaDEFECTOS
Individual Compilado de SEGUIMIENTO
Corrección por el
Inspección Detección de faltas Autor
Proporcionar Faltas Discusión de Informe de
Información Grupo cambios
COLECCIÓN DE
INICIO
DEFECTOS
INICIO:
Planificación:
Lanzamiento (Opcional):
DETENCIÓN DE DEFECTOS:
Es el corazón de la inspección.
COLECCIÓN DE DEFECTOS:
Compilación
La recolección de defectos debe ayudar a tomar la decisión sobre si es necesaria una reinspección.
Inspección en grupo
C-USE: Asignación
u: usada
k: destruida
~: no existe la variable
U: indefinida
R: definida y referenciada
Donde
• c : # de nodos de condición.
Beneficios:
V&V ESTÁTICA
Es un conjunto de técnicas que buscan defectos sobre el sistema en reposo. Esto es, estudian los
distintos modelos que componen el sistema software buscando posibles defectos en los mismos. Así
pues, estas técnicas se pueden aplicar, tanto a requisitos como a modelos de análisis, diseño y
pseudocódigo.
Las técnicas de evaluación estática se aplican en el mismo orden en que se van generando los distintos
productos del desarrollo siguiendo una filosofía top- down.
Ventajas y Desventajas
x Dependen de la especificación.
Cuando se esté evaluando estáticamente un producto de software, es importante que el evaluador tenga
en mente qué tipo de defectos está buscando y cuál sería el mejor “tipo de calidad” para ese producto.
Tipos de Defectos
Compleción: Especificación completa del problema. Está especificado todo lo que tiene que hacer el
sistema. En dos palabras: no falta nada; no sobra nada
Defectos con respecto a los requerimientos: el diseño no realiza lo que el requerimiento establece
Consistencia: Al igual que en los requerimientos, el diseño debe ser consistente entre todas sus partes.
Defectos de “escritura”:
Por ejemplo, bucles infinitos, variable definida de un tipo, pero utilizada de otro, contador que se
sale de las dimensiones de un array, etc.
Revisiones
A las técnicas de Evaluación estática se las conoce de modo genérico por Revisiones.
Las revisiones pretenden detectar manualmente defectos en cualquier producto del desarrollo.
Manualmente significa que el producto en cuestión (sea requisito, diseño,
código, etc.) está impreso en papel y los revisores están analizando ese artefacto mediante
técnicas de lectura, sin ejecutarlo.
Las técnicas estáticas de pruebas comprenden varios métodos que no ejecutan el componente o
sistema objeto de la prueba.
Los defectos / desviaciones son detectados en una fase temprana antes de que sean
implementadas en el código.
Ventajas:
Desventajas:
Fase de planificación
Organización de la revisión, selección de los miembros de la revisión.
Preparación de la organización e inicio (KICK-OFF”).
Distribución de los objetivos de la revisión e información adicional.
Preparación individual.
Los evaluadores inspeccionarán los objetos, comentan los elementos en caso de
necesidad de aclaraciones.
Reunión de revisión.
Reunión de los miembros de la revisión, los evaluadores presentan sus resultados.
Seguimiento (“follow up”)
El resultado de la revisión es distribuido al responsable de la revisión estableciendo:
Objeto sujeto a pruebas, participantes y roles.
Recomendaciones realizadas por los evaluadores.
Roles:
Director – Responsable – Jefe de proyecto: Inicia la revisión, decide respecto de los participantes y
asigna recursos.
Evaluador (también: Inspector o revisor): Reunión de los miembros de la revisión, los evaluadores
presentan sus resultados.
Escriba (también escribano): Documenta todos los asuntos, problemas y putos que hubieran sido
identificados.
Tipos de revisión
Ventajas y desventajas
Revisiones Informales
Las Revisiones Informales no dejan de ser un intercambio de opiniones entre los participantes.
Ventajas y desventajas
Rentable
No requiere protocolo
Desventaja: No tiene un procedimiento formal
Walkthrough:
Es una revisión que consiste en simular la ejecución de casos de prueba para el programa que se está
evaluando. No existe traducción exacta en español y a menudo se usa el término en inglés. Quizás la
mejor traducción porque ilustra muy bien la idea es Recorrido. De hecho, con los walkthrough se recorre
el programa imitando lo que haría la computadora.
Ventajas y Desventajas
Esfuerzo producido en la preparación de la sesión de revisión, pero es una sesión cuyo resultado
queda abierto.
Una sesión puede ser iniciada a través de notificaciones realizadas con poca antelación.
El autor tiene una gran influencia sobre el resultado dado que el mismo modera la revisión, hay
un riesgo de dominación por su parte.
Posibilidad limitada de control, dado que el autor también se encuentra a cargo de cualquier
actividad de seguimiento
Auditorias
Las auditorias contrastan los artefactos generados durante el desarrollo con estándares, generales o de
la organización. Típicamente pretenden comprobar formatos de documentos, inclusión de toda la
información necesaria, etc. Es decir, no se tratan de comprobaciones técnicas, sino de gestión o
administración del proyecto.
Factores de Éxito
Las revisiones se deben desarrollar orientados al logro de objetivos, es decir, las desviaciones en
el objeto revisado deben ser establecidos de forma imparcial.
El autor del objeto revisado deberá ser motivado de una forma positiva por la revisión (“su
documento será aún mejor” en lugar de “su documento es de baja calidad”).
Uso sistemático entre otros de las técnicas y plantillas implantadas.
El uso de listas de comprobación mejorará la eficiencia de la revisión.
Para la ejecución apropiada de las revisiones será necesario un presupuesto suficiente (10% al
15% del costo total del desarrollo)
Hacer uso del efecto de las lecciones aprendidas, utilizar la retroalimentación para implementar
un proceso de mejora continua.
Duración de una reunión de revisión: 2 horas máximo.
Partición equivalente
dividir (partición) de las entradas, salidas, etc en zonas que son iguales (equivalentes)
hipótesis: si un valor funciona, todo funciona
una de cada partición mejor que todas de una
Ejemplo:
Suma el resultado de A + B
(99,-99)
(99,99)
• fallas tienden a esconderse cerca de las fronteras