Ingeniería del So8ware II
|
|
|
- Arturo Velázquez Vázquez
- hace 10 años
- Vistas:
Transcripción
1 Ingeniería del So8ware II Tema 01. Construcción y Pruebas de So8ware Carlos Blanco Bueno DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN [email protected] Este tema se publica bajo Licencia: CreaOve Commons BY NC SA 3.0
2 Objetivos Construcción del Software Comprender que construir software engloba muchas más actividades que la de escribir código Conocer los principios de la construcción de software y las actividades más significativas Verificación y Validación Conocer el papel que juegan la verificación y validación del software y, dentro de ellas, las pruebas Pruebas Tener una visión general de los niveles, clases, técnicas y actividades de pruebas del software Pruebas OO Aprender las principales estrategias y métodos de pruebas para sistemas OO Aprender a diseñar casos de pruebas para OO 1.2
3 Contenido 1. Construcción del Software Conceptos Principios Proceso de Construcción 2. Verificación y Validación Objetivos Actividades Técnicas 4. Pruebas de Sistemas OO Introducción Estrategias para sistemas OO Diseño de casos de prueba OO Métodos de pruebas OO 3. Pruebas Conceptos Proceso de Pruebas Niveles de Prueba Estrategia de Aplicación Técnicas de Prueba 1.3
4 Bibliografía Bibliografía Piattini (2007). (Cap. 10) Sommerville (2005). (Capítulo 22 y 23) Jacobson, I., Booch, G., and Rumbaugh, J. (2000): El Proceso Unificado de Desarrollo. Addison-Wesley. (Capítulo 11) Pressman, R. (2005): Ingeniería del Software: Un Enfoque Práctico. 6º Edición. McGraw-Hill. (Capítulos 13 y 14) Pfleeger (2002). (Caps. 7, 8 y 9) IEEE Computer Society (2004). SWEBOK - Guide to the Software Engineering i Body of Knowledge, (Capítulos 4 y 5) 1.4
5 1.Construcción 1. Construcción Se refiere a la creación detallada de software operativo mediante una combinación de Codificación Verificación Pruebas Unitarias y de Integración Depuración Diseño Construcción Pruebas 1.5
6 1.Construcción Diseño Construcción Pruebas Los límites entre Construcción, Diseño y Pruebas varían dependiendo del ciclo de vida que se usa en cada proyecto Aunque bastante esfuerzo de diseño puede realizarse antes de empezar las actividades de construcción, otro debe de realizarse en paralelo Igualmente, algunos tipos de pruebas se realizan durante la construcción, mientras que otras se hacen a posteriori Durante la Construcción se generan las cantidades más grandes de artefactos software (ficheros de código, contenidos, casos de prueba, etc.) Esto origina necesidades de gestión de configuración 1.6
7 1.Construcción Lenguajes de Construcción Formas de especificar una solución a un problema ejecutable por una computadora Pueden ser de varias clases: De Configuración ió Permiten elegir entre un conjunto predefinido de opciones para crear instalaciones de software nuevas o particularizadas (ej. ficheros de configuración de Windows o UNIX) De Toolkits Permiten construir aplicaciones a partir de un Toolkit (conjunto integrado piezas reutilizables de aplicación específica) - Scripts: definidos de forma explícita. (ej. JavaScript). - APIs: definidos de forma implícita, ya que se implican a partir de la interfaz pública de un Toolkit. (ej. API de Office). De Programación Tipos de notaciones: Lingüística (cadenas de texto con palabras), Formal (expresiones de tipo matemático), Visual (símbolos gráficos) 1.7
8 1.Construcción Relación de los modelos con el código fuente Transformación de Modelos Ingeniería directa Ingeniería inversa Refactorización Modelos Código Fuente 1.8
9 1.Construcción - Principios Los principios fundamentales de la construcción de software son: Minimizar la Complejidad Anticipar los Cambios Pensar en la Verificación posterior Aplicar Estándares 1.9
10 1.Construcción - Principios Los principios fundamentales de la construcción de software son: Minimizar la Complejidad Escribiendo código sencillo y fácil de leer Utilizando estándares Técnicas de codificación Técnicas de aseguramiento de calidad Anticipar los Cambios El software se ve afectado por los cambios en su entorno y está destinado a cambiar a lo largo del tiempo Aplicación de técnicas específicas 1.10
11 1.Construcción - Principios Los principios fundamentales de la construcción de software son: Pensar en la Verificación posterior Construir de forma que los fallos puedan ser encontrados lo antes posible (al codificar, hacer pruebas u operar el sistema) Técnicas: Seguir estándares de codificación Hacer pruebas unitarias Organizar el código para soportar pruebas automatizadas Restringir el uso de técnicas complejas 1.11
12 1.Construcción - Principios Los principios fundamentales de la construcción de software son: Aplicar Estándares Directamente a la construcción del software: Formatos de comunicación (documentos, contenidos). Versiones estándares de lenguajes de programación (Java, C++, C#, ). Reglas de codificación (nombres de variables, comentarios, ). Notaciones de diagramas (UML, ). Intercambio entre herramientas (XLM, ). En un proyecto: Externos: propuestos por organismos de estandarización (ISO, ANSI, AENOR), consorcios industriales (OMG), asociaciones profesionales (IEEE, ACM). Internos: creados por la propia organización. 1.12
13 1.Construcción - Proceso Desde una perspectiva de proceso, los esfuerzos más significativos que se realizan durante la construcción de software son: Planificación Manejo de Excepciones Codificación ió Pruebas Aseguramiento de Calidad Reutilización Integración 1.13
14 1.Construcción - Proceso Planificación Elegir el método de construcción Granularidad y alcance con el que se realizan los requisitos Orden en el que se abordan Establecer el orden en el que los componentes se crean e integran Asignar tareas de construcción a personas específicas Manejo de Excepciones Mientras se construye un edificio, los albañiles deben hacer pequeños ajustes respecto de los planos De igual forma, los constructores de software deben hacer modificaciones y ajustes, unas veces pequeñas y otras no tanto, respecto de los detalles del diseño de un software 1.14
15 1.Construcción - Proceso Codificación La escritura del código fuente es el principal esfuerzo de construcción de software Aplicar técnicas para crear código fuente comprensible (reglas de asignación de nombres y de formato del código, clases, tipos enumerados, constantes etiquetadas, ) Manejar condiciones de error (errores previstos e imprevistos, excepciones) Prevenir brechas de seguridad a nivel de código (llenado de buffers, overflow de índices de vectores, ) Uso eficiente de recursos escasos (hilos, bloqueos en bases de datos, ) Organizar el código fuente (sentencias, rutinas, clases, paquetes, ) Documentar el código 1.15
16 1.Construcción - Proceso Pruebas Frecuentemente realizadas por los mismos que escriben el código El propósito de estas pruebas es reducir el tiempo entre el momento en el que los fallos se insertan en el código y el momento en que son detectados. Pruebas Unitarias Pruebas de Integración Técnicas para asegurar la calidad del código Pruebas (Unitarias y de Integración) Escribir las pruebas primero (test first development) Ejecución línea a línea (code stepping) Uso de aserciones Depuración (debugging) Revisiones Análisis estático 1.16
17 1.Construcción - Proceso Reutilización Implica más cosas que crear y usar bibliotecas de activos Es necesario oficializar la práctica de reutilización integrándola en los ciclos de vida y metodologías de los proyectos Ati Activos reutilizables: Planes de proyecto, Estimaciones de coste Especificaciones de requisitos, Arquitecturas, Diseños, Interfaces Código fuente (librerías, componentes, ) Documentación de usuario y técnica, Casos de prueba, Datos, Integración De rutinas, clases, componentes y sub-sistemas construidos de forma separada, y con otro(s) sistema(s) Para ello puede ser necesario: Planificar la secuencia en que se integrarán los componentes Crear andamios para soportar versiones provisionales Determinar el nivel de pruebas y aseguramiento de calidad realizado sobre los componentes antes de su integración 1.17
18 2.Verificación y Validación 2. Verificación y Validación VV es un conjunto de procedimientos, actividades, técnicas y herramientas que se utilizan, paralelamente al desarrollo de software, para asegurar que un producto software resuelve el problema inicialmente planteado Las pruebas son una familia de técnicas de VV 1.18
19 2.Verificación y Validación Objetivos de la VV: Atú Actúa sobre los productos intermedios it que se generan durante el desarrollo para: Detectar y corregir cuanto antes sus defectos y las desviaciones respecto al objetivo fijado Disminuir los riesgos, las desviaciones sobre los presupuestos y sobre el calendario o programa de tiempos del proyecto Mejorar la calidad y fiabilidad del software Valorar rápidamente los cambios propuestos y sus consecuencias 1.19
20 2.Verificación y Validación La visión del desarrollo de software como un conjunto de fases con posibles realimentaciones facilita la VV Al inicio del proyecto es necesario hacer un Plan de VV del Software (estructura del plan según el estándar IEEE 1012) Las actividades de VV se realizan de forma iterativa durante el desarrollo IEEE : IEEE Standard for Software Verification and Validation 1. Propósito 2. Documentos de referencia 3. Definiciones 4. Visión general de la verificación y validación 4.1 Organización 4.2 Programa de tiempos 4.3 Esquema de integridad de software 4.4 Resumen de recursos 4.5 Responsabilidades 4.6 Herramientas, técnicas y metodologías 5. Verificación y validación en el ciclo de vida 5.1 Gestión de la VV 5.2 VV en el proceso de adquisición 5.3 VV en el proceso de suministro 5.4 VV en el proceso de desarrollo: VV de la fase de concepto VV de la fase de requisitos 543VVdelafasedediseño diseño VV de la fase de implementación VV de la fase de pruebas VV de la fase de instalación 5.5 VV de la fase de operación 56VVd 5.6 del mantenimiento i 6. Informes de la VV del software 7. Procedimientos administrativos de la VV 7.1 Informe y resolución de anomalías 7.2 Política de iteración de tareas 7.3 Política de desviación 7.4 Procedimientos de control 7.5 Estándares, prácticas y convenciones. 8. Requisitos de documentación para la VV
21 2.Verificación y Validación Actividades de VV VERIFICACIÓN Estamos construyendo correctamente el producto? VALIDACIÓN Estamos construyendo el producto correcto? El software Et Estar conforme a su Hacer lo que el usuario debe especificación realmente quiere Objetivo Demostrar la consistencia, Determinar la corrección del compleción y corrección de los artefactos de las distintas fases (productos intermedios) producto final respecto a las necesidades del usuario Técnica más utilizada Revisiones Pruebas 1.21
22 2.Verificación y Validación Técnicas Estáticas (Revisiones) vs Dinámicas (Pruebas) Revisiones Especificación De Requisitos Diseño Arquitectural Especificación Formal Diseño Detallado Código Prototipo Pruebas 1.22
23 2.Verificación y Validación Las revisiones software pueden ser Informales No hay procedimientos definidos, por lo que la revisión se realiza de la forma más flexible posible. Ventajas menor coste y esfuerzo, preparación corta, etc. Desventajas Detectan menos defectos Semi-formales Se definen unos procedimientos mínimos a seguir (walkthroughs) Formales (Inspecciones) Se define completamente el proceso Revisión en detalle, por una persona o grupo distintos del autor, para: Verificar si el producto se ajusta a sus especificaciones o atributos de calidad y a los estándares utilizados en la empresa Señalar las desviaciones sobre los estándares y las especificaciones Recopilar datos que realimenten inspecciones posteriores (defectos recogidos, esfuerzo empleado, etc.) 1.23
24 2.Verificación y Validación Informes de Inspección Ejemplo de Formulario 1.24
25 3.Pruebas 3. Pruebas La manera adecuada de enfrentarse al reto de la calidad es la prevención! Mas vale prevenir que curar! Las pruebas son técnicas de comprobación dinámica Siempre implican la ejecución del programa Permiten: Evaluar la calidad de un producto Mejorarlo identificando defectos y problemas 1.25
26 3.Pruebas - Conceptos Ideas preconcebidas sobre las Pruebas: Pueden detectar las pruebas la ausencia de errores? Se puede realizar una prueba exhaustiva del software (probar todas las posibilidades de su funcionamiento)? Cuándo se descubre un error la prueba ha tenido éxito o ha fracasado? 1.26
27 3.Pruebas - Conceptos Limitaciones Teóricas y Prácticas de las Pruebas Aforismo o de Dijkstra: Probar programas as sirva para a demostrar la presencia de errores, pero nunca para demostrar su ausencia. En el mundo real no es posible hacer pruebas completas Se considera que existen infinitos casos de prueba y hay que buscar un equilibrio (recursos y tiempo limitados) Selección de los valores de entrada Selección de un conjunto finito de casos de prueba El criterio de selección depende de la técnica de pruebas No siempre son suficientes, ya que un sistema complejo podría reaccionar de distinta manera ante una misma entrada dependiendo de su estado Comparación de la salida obtenida con la esperada Decidir si los resultados observados son aceptables o no Según expectativas de los usuarios, especificaciones, requisitos, Oráculo Agente (humano o no) que decide cuando un programa actúa correctamente en una prueba dada, emitiendo un veredicto de correcto o fallo 1.27
28 3.Pruebas - Conceptos Relación entre Error, Defecto y Fallo: Error Equivocación del programador = 5 Sistema de gestión de aeropuerto Accidente (seguridad) d) Defecto (calidad) S.Aproximación Xyx//??? Fallo (fiabilidad) 1.28
29 3.Pruebas - Conceptos Ejemplo de las dificultades que se presentan if (A+B+C)/3 == A then print ( A, B y C son iguales ) else print ( A, B y C no son iguales ) Son suficientes estos dos casos de prueba? Caso 1: A=5; B=5; C=5; Caso 2: A=2; B=3; C=7; Cuáles otros serían necesarios en caso negativo? 1.29
30 3.Pruebas - Proceso 1.30
31 3.Pruebas - Niveles El ámbito o destino de las pruebas del software puede variar en tres niveles: Un módulo único PRUEBAS UNITARIAS Un grupo de módulos (relacionados por propósito, uso, comportamiento o estructura) PRUEBAS DE INTEGRACIÓN Un sistema completo PRUEBAS DE SISTEMA 1.31
32 3.Pruebas - Niveles Pruebas Unitarias Verifican el funcionamiento aislado de piezas de software que pueden ser probadas de forma separada Subprogramas/Módulos individuales Componente que incluye varios subprogramas/módulos Estas pruebas suelen llevarse a cabo con: Acceso al código fuente probado Ayuda de herramientas de depuración Participación (opcional) de los programadores que escribieron el código 1.32
33 3.Pruebas - Niveles Pruebas Unitarias De dónde obtener buenos casos de prueba unitarias? De las máquinas o diagramas de estado 1.33
34 3.Pruebas - Niveles Pruebas de Integración Verifican la interacción entre componentes del sistema software Estrategias: Guiadas por la arquitectura Los componentes se integran según hilos de funcionalidad Incremental Se combina el siguiente módulo que se debe probar con el conjunto de módulos que ya han sido probados Incremental Ascendente (Bottom-Up) 1. Se comienza por los módulos hoja (pruebas unitarias) 2. Se combinan los módulos según la jerarquía 3. Se repite en niveles superiores Incremental Descendente (Top-Down) Primero en profundidad, completando ramas del árbol Primero en anchura, completando niveles de jerarquía A B C E F G D 1.34
35 3.Pruebas - Niveles Pruebas de Integración Incremental Ascendente (Bottom-Up) 1. Unitarias de E, F, G y D 2. Integración de (B con E), (C con F) y (C con G) 3. Integración de (A con B), (A con C) y (A con D) 3ª fase A 2ª fase B C D 1ª fase E F G Incremental Descendente (Top-Down) Primero en profundidad, completando ramas del árbol (A, B, E, C, F, G, D) Primero en anchura, completando niveles de jerarquía (A, B, C, D, E, F, G) 1.35
36 3.Pruebas - Niveles Pruebas de Sistema Verifican el comportamiento del sistema en su conjunto Los fallos funcionales se suelen detectar en los otros dos niveles anteriores (unitarias e integración) Este nivel es más adecuado para comprobar requisitos no funcionales Seguridad, Velocidad, Exactitud, Fiabilidad También se prueban: Interfaces externos con otros sistemas Utilidades Unidades físicas Entorno operativo 1.36
37 3.Pruebas Clasificación según finalidad Clasificación de pruebas según su finalidad: Comprueban que las especificaciones funcionales están implementadas correctamente Pruebas Unitarias y de Integración Comprueban los requisitos no funcionales Pruebas de Sistema Comprueban el comportamiento del sistema frente a los requisitos del cliente (suele participar el mismo cliente o los usuarios) Pruebas de Aceptación Comprueban el comportamiento del sistema frente a los requisitos de configuración hardware Pruebas de Instalación Pruebas en grupos pequeños de usuarios potenciales antes de la difusión del software Pruebas alfa (en la misma empresa) y beta (fuera) 1.37
38 3.Pruebas Estrategia de Aplicación Relación entre las Actividades de Desarrollo y las Pruebas En qué orden han de escribirse y de realizarse las actividades de pruebas? 1.38
39 3.Pruebas Estrategia de Aplicación Relación entre las Actividades de Desarrollo y las Pruebas En qué orden han de escribirse y de realizarse las actividades de pruebas? Requisitos Pruebas de aceptación Diseño arquitectónico Pruebas de sistema Escribir pruebas Ejecutar pruebas Diseño detallado Pruebas de integración Código Pruebas unitarias 1.39
40 3.Pruebas Técnicas Técnicas de Prueba Principio básico: Intentar ser lo más sistemático posible en identificar un conjunto representativo de comportamientos del programa Determinados por subclases del dominio de entradas, escenarios, estados, Objetivo romper el programa, encontrar el mayor número de fallos posible De forma general, existen dos enfoques diferentes: Caja Negra (Funcional) Los casos de prueba se basan sólo en el comportamiento de entrada/salida Caja Blanca (Estructural) Basadas en información sobre cómo el software ha sido diseñado o codificado Entrada Caja negra Funciones Salida Entrada Caja blanca Salida 1.40
41 3.Pruebas Técnicas Caja Negra Orientadas a los requisitos funcionales x 1 x 2 y 1 x 2 f y 2 x n y n Buscan asegurar que: Se ha ingresado toda clase de entrada Que la salida observada = esperada y i =f(x i ), para todo i? 1.41
42 3.Pruebas Técnicas Particionamiento Equivalente El ldominio de las entradas se divide d en subconjuntos equivalentes respecto de una relación especificada (clases de equivalencia): La prueba de un valor representativo de una clase permite suponer «razonablemente» que el resultado obtenido será el mismo que para otro valor de la clase Se realiza un conjunto representativo de casos de prueba para cada clase de equivalencia i 1.42
43 3.Pruebas Técnicas Particionamiento Equivalente Ejemplo: Entrada de un Programa Código de Área: Número de tres cifras que no comienza ni por 0 ni por 1 Nombre: Seis caracteres Orden: cheque, depósito, pago factura, retirada de fondos Condición de entrada Clases válidas Clases inválidas Código área Nombre para identificar la operación Orden 1.43
44 3.Pruebas Técnicas Particionamiento Equivalente Ejemplo: Entrada de un Programa Código de Área: Número de tres cifras que no comienza ni por 0 ni por 1 Nombre: Seis caracteres Orden: cheque, depósito, pago factura, retirada de fondos Condición de entrada Clases válidas Clases inválidas Código área (1) 200 código 999 (2) código <200 (3) código >999 (4) no es número Nombre para identificar la (5) seis caracteres (6) menos de 6 caracteres operación (7) más de 6 caracteres Orden (8) «cheque» (12) ninguna orden válida (9) «depósito» (10) (11) «pago factura» «retirada de fondos» 1.44
45 3.Pruebas Técnicas Análisis de Valores Límite Similar a la anterior pero los valores de entrada de los casos de prueba se eligen en las cercanías de los límites de los dominios de entrada de las variables Suposición: Muchos defectos tienden a concentrarse cerca de los valores extremos de las entradas Extensión: Pruebas de Robustez, con casos fuera de los dominios de entrada Si aplicamos AVL en el ejemplo anterior qué valores para los casos de prueba seleccionaríamos? 1.45
46 3.Pruebas Técnicas Caja Blanca De alguna manera, me interesa conocer la cobertura alcanzada por mis casos de prueba dentro de la unidad de prueba x 1 y 1 x 2 y 2 x n y n 1.46
47 3.Pruebas Técnicas Criterios de Cobertura: Cobertura de sentencias. Que cada sentencia se ejecute al menos una vez. Cobertura de decisiones. Que cada decisión tenga, por lo menos una vez, un resultado verdadero y, al menos una vez, uno falso. Cobertura de condiciones. Que cada condición de cada decisión adopte el valor verdadero al menos una vez y el falso al menos una vez. Criterio de decisión/condición. Que se cumplan a la vez el criterio de condiciones y el de decisiones. Criterio de condición múltiple. La evaluación de las condiciones de cada decisión no se realiza de forma simultánea. Descomposición de una Decisión Multicondicional (a=1) and (c=4) else then (a=1) (c=4) else then 1.47
48 3.Pruebas Técnicas Grafos de Flujo Utilizados para la representación del flujo de control La estructura de control sirve de base para obtener los casos de prueba El diseño de casos de prueba tiene que estar basado en la elección de caminos importantes que ofrezcan una seguridad aceptable de que se descubren defectos x x x Secuencia Si x entonces... Hacer... hasta x Mientras x hacer... (If x then...else...) (Do...until x) (While x do...) 1.48
49 3.Pruebas Técnicas Grafo de Flujo de un Programa (Pseudocódigo) Abrir archivo; 1 WHILE (haya registros) DO 2 IF (cliente) THEN Mostrar cliente; 3 ELSE Mostrar registro; 4 5 ENDIF; Incrementar registro; 6 ENDWHILE; Cerrar archivos. 7 Complejidad ciclomática: Indicador del número de caminos independientes de un grafo Límite mínimo de número de casos de prueba para un programa Cálculo de complejidad ciclomática V(G) = arcos nodos + 2 V(G) = número de regiones cerradas Posible conjunto de caminos V(G) = número de nodos condición
50 3.Pruebas Técnicas Grafo de Flujo de un Programa (Pseudocódigo) Abrir archivos; Leer archivo ventas, al final indicar no más registros; Limpiar línea de impresión; WHILE (haya registros ventas) DO Total nacional = 0; Total extranjero = 0; WHILE (haya reg. ventas) y (mismo producto) IF (nacional) THEN Sumar venta nacional a total nacional ELSE Sumar venta extranjero a total extranjero ENDIF; Leer archivo ventas, al final indicar no más registros; ENDWHILE; Escribir línea de listado; Limpiar área de impresión; ENDWHILE; Cerrar archivos. 1.50
51 3.Pruebas Técnicas Grafo de Flujo de un Programa (Pseudocódigo) Abrir archivos; 1 Leer archivo ventas, al final indicar no más registros; Limpiar línea de impresión; WHILE (haya registros ventas) DO 3 Total nacional = 0; Total extranjero = 0; WHILE (haya reg. ventas) y (mismo producto) IF (nacional) THEN Sumar venta nacional a total t nacional ELSE Sumar venta extranjero a total extranjero ENDIF; Leer archivo ventas, al lfinal lindicar no más registros; 7a 7b ENDWHILE; Escribir línea de listado; Limpiar área de impresión; ENDWHILE; Cerrar archivos ,9 10,11 12,
52 3.Pruebas Técnicas Grafo de Flujo de un Programa (Pseudocódigo) 1 Complejidad Ciclomática V(G) = a n + 2 = = 5 V(G) = regiones = 5 V(G) = condiciones + 1 = Un posible conjunto de caminos 1 2 (12, 13) (10, 11) (10, 11) a (8, 9) 7a 7b b (8, 9) 8, ,11 12,
53 3.Pruebas Técnicas Otro criterio más preciso clasifica las técnicas de prueba según la fuente a partir de la que son generados los casos de prueba: Experiencia del ingeniero de pruebas Ad-hoc Exploratorias Especificaciones Particionamiento equivalente Análisis de valores límite Tablas de decisión Máquinas de estados finitos Especificación formal Aleatorias Estructura del código Flujo de control Flujo de datos Defectos que se quieren descubrir Conjetura de errores Mutación El campo de uso Perfil operacional SRET (guiadas por objetivos de fiabilidad) La naturaleza de la aplicación Orientado a Objetos Basado en Componentes Basado en Web Interfaz de Usuario Programas Concurrentes Conformidad de Protocolos Sistemas en Tiempo Real Sistemas Críticos (seguridad) 1.53
54 3.Pruebas Técnicas Basadas en la Experiencia Ad Hoc Las pruebas dependen totalmente de la habilidad, intuición y experiencia con programas similares del ingeniero de pruebas Exploratorias A la vez, se lleva a cabo aprendizaje, diseño de pruebas y ejecución de pruebas Las pruebas se diseñan, ejecutan y modifican de forma dinámica, sobre la marcha La eficiencia depende fundamentalmente del conocimiento del ingeniero de pruebas 1.54
55 3.Pruebas Técnicas Basadas en la Especificación Tablas de Decisión Se usan tablas de decisión para representar relaciones lógicas entre condiciones (entradas) y acciones (salidas) Los casos de prueba se derivan sistemáticamente de cada combinación de condiciones y acciones Máquinas de Estados Finitos Los programas se modelan como máquinas de estados finitos Los casos de prueba pueden ser seleccionados de forma que cubren los estados y las transiciones entre ellos 1.55
56 3.Pruebas Técnicas Basadas en la Especificación Especificación Formal Disponer de las especificaciones en un lenguaje formal permite la derivación automática de casos de prueba A la vez, se provee una salida de referencia (oráculo) para chequear los resultados de las pruebas Basadas en Modelos Basadas en Especificaciones Algebraicas Aleatorias Las Pruebas son generadas de forma plenamente aleatoria Requiere el conocimiento del dominio de las entradas Generación aleatoria de datos de entrada con la secuencia y la frecuencia con las que podrían aparecer en la práctica 1.56
57 3.Pruebas Técnicas Basadas en el Código Flujo de Control Se usan criterios que buscan cubrir todas las sentencias o bloques de sentencias de un programa El criterio más fuerte es la prueba de caminos (testing path) Ejecución de todos los caminos de flujo de control entrada-salida Otros criterios menos exigentes: Prueba de sentencias Prueba de ramas (branch) Prueba de condiciones/decisiones Los resultados de estas pruebas se establecen en porcentaje de cobertura 1.57
58 3.Pruebas Técnicas Basadas en el Código Flujo de Datos El diagrama de flujo de control es anotado con información sobre cómo se definen, usan y eliminan las variables del programa El criterio más fuerte busca probar todos los caminos de definición-uso: Para cada variable, se debe ejecutar cada segmento de camino de flujo de control desde la definición de la variable a su uso Criterios menos exigentes: Prueba de todas las definiciones Prueba de todos los usos 1.58
59 3.Pruebas Técnicas Basadas en Defectos inventan los casos de prueba con el objetivo o de descubrir categorías de defectos probables o previstos Conjetura de Errores Los casos de prueba se diseñan intentando descubrir los defectos más plausibles del programa 1. Enumerar una lista de posibles equivocaciones que pueden cometer los desarrolladores y de las situaciones propensas a ciertos errores Ejemplo: El valor cero es una situación propensa a error 2. Generar los casos de prueba en base a dicha lista (se suelen corresponder con defectos que aparecen comúnmente y no con aspectos funcionales) Fuente: Historia de defectos en proyectos previos 1.59
60 3.Pruebas Técnicas Basadas en Defectos Mutación Un mutante es una versión ligeramente modificada de un programa. La diferencia es un pequeño cambio sintáctico Cada caso de prueba se aplica al original y a los mutantes generados Asunción: Mirando defectos sintácticos sencillos se encuentran defectos reales más complejos Para ser eficiente se requieren muchos mutantes, que deben ser generados automáticamente de forma sistemática Hay herramientas disponibles para ello 1.60
61 3.Pruebas Técnicas Basadas en el Uso Perfil Operacional Se reproduce y se prueba el entorno operativo en que deberá funcionar el programa Se trata de inferir, a partir de los resultados observados, la futura fiabilidad del software cuando esté en uso SRET (Software Reliability Engineered Testing) Método en el cual las pruebas son diseñadas y guiadas por objetivos de fiabilidad d y criticidad id d de las diferentes funcionalidades 1.61
62 4.Pruebas OO 4. Pruebas de Sistemas OO Introducción Pruebas de Unidad d Caja negra Caja blanca Proceso de pruebas unitarias Diseño por valores interesantes Criterios de cobertura 1-wise y 2-wise Pruebas de Integración Por hilos, uso y agrupamiento Pruebas de Validación Diseño de Casos de Prueba Nivel de Clases Azar Partición Nivel de Interclases Azar Partición Escenario Comportamiento 1.62
63 4.Pruebas OO Ideas Las pruebas del diseño de sistemas estructurados t son distintas t a los sistemas orientados a objetos debido a las características particulares de cada uno No todas las pruebas se realizan sobre artefactos software, sino también sobre los modelos En los sistemas software OO, las pruebas son: Unitarias de Integración de Validación Para los sistemas reales, es importante minimizar el número de casos de prueba queserealizan 1.63
64 4.Pruebas OO La OO introduce nuevos aspectos La naturaleza de los programas OO cambian las estrategias y tácticas de prueba Reutilización, abstracción, conexiones y relaciones entre clases, diseño del sistema, diseño de objetos hasta su implementación. Arquitectura software OO Subsistemas organizados por capas que encapsulan clases que colaboran entre sí Necesario probar el sistema OO en diferentes niveles En cada etapa los modelos pueden probarse para descubrir errores y evitar que se propaguen a la siguiente iteración 1.64
65 4.Pruebas OO Paso inicial: verificación de modelos de análisis y diseño Antes que el código, se generan los modelos de análisis y diseño del sistema Son similares en estructura y contenido al programa OO, por tanto las pruebas comienzan con la revisión de estos modelos Para los modelos de análisis y diseño hay que comprobar: Exactitud qué es? Conformidad del modelo con el dominio del problema cómo se comprueba? Evaluación de los expertos en el tema Compleción qué es? El modelo o incluye cuyetodas las partes necesarias as para a su correcta definición (nombre de los métodos, tipos de datos, parámetros..) cómo se comprueba? Evaluación de los expertos en el tema Consistencia qué es? Las relaciones entre las entidades se respetan en todas las partes del modelo cómo se comprueba? Listas de comprobación 1.65
66 4.Pruebas OO Pruebas Unidad Pruebas de unidad Pruebas de integración Pruebas de unidad cuál es el concepto más parecido a módulo en OO? La clase cómo se prueban las clases? Con casos de prueba qué es un caso de prueba en este caso? 1. Construcción de una instancia de la clase que se va probar 2. Ejecución de una serie de servicios sobre ésta 3. Comprobación del resultado (oráculo) Pruebas de validación 1.66
67 4.Pruebas OO Pruebas Unidad Pruebas de unidad Pruebas de unidad Las pruebas de unidad en OO se realizan: Pruebas de integración Pruebas de validación Nivel de clase Nivel de método Pruebas de: 1) Probando cada uno de los métodos 1) Caja negra 2) Usando distintos niveles de cobertura 2) Caja blanca 1.67
68 4.Pruebas OO Pruebas Unidad Pruebas de unidad Pruebas de unidad (a nivel de método) Pruebas de caja negra Pruebas de integración Pruebas de validación x y z f EQ IS ES NT Entrada: longitud lados (x, y, z) Salida: tipo triangulo EQ (Equilatero) IS (Isosceles) ES (Escaleno) NT (No triangulo) 1.68
69 4.Pruebas OO Pruebas Unidad Pruebas de unidad Pruebas de unidad (a nivel de método) Pruebas de caja blanca Pruebas de integración Pruebas de validación Idea: realizar un seguimiento del código fuente según se van ejecutando los casos de prueba Conocer cuánto código se ha recorrido Determinar un valor cuantitativo de la cobertura según el criterio usado (sentencias, decisiones, condiciones, ) Encontrar fragmentos del programa que no son ejecutados por los casos de prueba Crear casos de prueba adicionales que incrementen la cobertura 1.69
70 4.Pruebas OO Pruebas Unidad Proceso para pruebas Unitarias La idea es combinar los métodos de caja negra con los de caja blanca Pruebas de unidad Pruebas de integración Pruebas de validación 1.70
71 4.Pruebas OO Pruebas Unidad Diseño de casos de prueba (Valores interesantes) Para diseñar correctamente los casos de prueba, éstos deberán usar valores interesantes Se considera un valor interesante aquel que permita recorrer la mayor cantidad posible de código fuente En función del criterio de cobertura elegido Obtención de valores interesantes Para un ejemplo real, el conjunto de valores a probar para conseguir cobertura total de sentencias puede ser muy grande Para proponer valores podemos ayudarnos de técnicas como Clases de equivalencia Dividir el dominio de entrada en clases de equivalencia con valores que provocan un mismo comportamiento t Valores límite Complementa a la anterior, seleccionando valores límite en vez de cualquier valor de la clase de equivalencia 1.71
72 4.Pruebas OO Pruebas Unidad Valores interesantes Qué conjuntos de tres valores recorren todas las sentencias del método gettipo()? (i, j, k) (2,2,2) (0,2,4) (2,3,5), 100% (2,3,4) cobertura de (2,5,2) sentencias (225) (2,2,5) (5,2,2) (2,2,4) (?,?,?) 1.72
73 4.Pruebas OO Pruebas Unidad Criterios de cobertura para valores interesantes: Grado en que los diferentes valores interesantes seleccionados se utilizan en la batería de casos de prueba: 1-wise: Se satisface cuando cada valor interesante de cada parámetro se incluye al menos en un caso de prueba 2-wise: Se satisface cuando cada par de valores interesantes se incluye al menos en un caso de prueba 1.73
74 4.Pruebas OO Pruebas Unidad Criterios de cobertura para valores interesantes: 1-wise Se satisface cuando cada valor interesante de cada parámetro se incluye al menos en un caso de prueba Ejemplo: Valores interesantes para cada lado del triángulo {0,1,2,3,4,5} Habría que probar con cada uno de esos valores al menos una vez en cada posición: Empezamos con un caso, por ejemplo (0,1,2) Marcamos los valores en la tabla para no repetirlos en los siguientes casos Seguimos tomando valores sin repetir (1,0,3) (2,3,4) (3,4,5) (4,5,0) (5,2,1) Hasta que todos los valores hayan sido seleccionados una vez i j k
75 4.Pruebas OO Pruebas Unidad Criterios de cobertura para valores interesantes: 2-wise Se satisface cuando cada par de valores interesantes se incluye al menos en un caso de prueba A partir de esta tabla, habrá que ir construyendo casos de prueba que vayan visitando cada par de valores el menor número posible de veces Ejemplo: -Tomamos el caso (0,0,0) y marcamos los 3 pares de arriba de la tabla - Tomamos el (0,1,1) y marcamos los pares (i=0,j=1), (i=0, k=1) y (j=1, k=1)
76 4.Pruebas OO Pruebas Integración Pruebas de integración Pruebas de unidad Pruebas de integración Pruebas de validación Mismas estrategias que en estructurado? No, porque OO no tiene una estructura de control jerárquico Nuevos paradigmas en OO: Pruebas basadas en hilos Integra las clases requeridas para responder a una entrada o suceso del sistema (diagramas de secuencia de UML) Cada hilo se integra y prueba individualmente Pruebas basadas en el uso Se comienza probando las clases más independientes Se continúa con las más dependientes hasta probar todo el sistema Pruebas de agrupamiento Se selecciona un agrupamiento de clases colaboradoras Se prueba diseñando las clases de pruebas que revelan errores en las colaboraciones 1.76
77 4.Pruebas OO Pruebas Integración Pruebas de Pruebas de Pruebas de unidad integración validación Pruebas de integración (hilos) Puede haber varias secuencias diferentes dependiendo, por ejemplo, del estado inicial del sistema y de la entrada del actor En el ejemplo Si no hubiera facturas muchos mensajes no serían enviados El caso de pruebas que se deriva de un diagrama de secuencia debería describir cómo probar una secuencia interesante en el diagrama, tomando el estado inicial del sistema 1.77
78 4.Pruebas OO Pruebas Validación Pruebas de unidad Pruebas de integración Pruebas de validación Pruebas de validación Se centra en acciones visibles al usuario y salidas reconocibles desde el sistema Los casos de prueba se obtienen a partir de los casos de uso (son parte del modelo de análisis) Ya que tienen una gran similitud de errores con los revelados en los requisitos it de interacción ió del usuario Qué métodos de prueba se utilizan? Caja negra 1.78
79 4.Pruebas OO Pruebas Validación Pruebas de unidad Pruebas de integración Pruebas de validación Ejemplo de prueba de Validación: Caso de Prueba: Pagar 300 por una Bicicleta de Montaña Et Entrada: -Existe pedido válido de Bicicleta de Montaña y se ha enviado a un vendedor -El precio es 300 incluyendo gastos envío -El comprador ha recibido una confirmación de pedido (ID 12345) -El comprador ha recibido una factura de 300 y que debería estar en el estado pendiente. -La factura debería apuntar a una cuenta ( ) la cual debería recibir el dinero. Esta cuenta tiene un saldo de y su titular debería ser el vendedor -La cuenta del comprador tiene un saldo de 350 Resultado: - El estado de la factura debería ser puesto a cerrada, indicando así que ha sido pagada. - Saldo de la cuenta = 50 - Saldo de la cuenta = Condiciones: - No se permite que otras instancias i accedan a las cuentas durante el caso de prueba 1.79
80 4.Pruebas OO Diseño de Casos Diseño de casos de prueba Prueba convencional Entrada Proceso Salida Prueba OO Secuencia de operaciones para probar los estados de la clase Hay que tener en cuenta: 1. Identificar cada caso de prueba y asociarlo explícitamente con la clase a probar 2. Declarar el propósito de la prueba 3. Desarrollar una lista de pasos a seguir Declarar una lista de estados del objeto a probar Lista de mensajes y operaciones que se ejecutarán Lista de excepciones que pueden ocurrir Lista de condiciones externas necesarias para conducir las pruebas Información adicional para facilitar la comprensión e implementación 1.80
81 4.Pruebas OO Diseño de Casos Métodos de diseño de casos de prueba Aniveldeclases Verificación al azar Pruebas de partición Partición basada en estados Partición basada en atributos Partición basada en categorías A nivel de interclases Verificación al azar Pruebas de partición ió Basadas en el escenario Pruebas de comportamiento 1.81
82 4.Pruebas OO Diseño de Casos Métodos a nivel de clase Verificación ió al azar: Consiste en probar en orden aleatorio diferentes secuencias válidas de operaciones Ejemplo: Para un sistema bancario, un orden aleatorio de operaciones sería abrir-configurar-depositar-retirar-cerrar 1.82
83 4.Pruebas OO Diseño de Casos Métodos a nivel de clase Pruebas de partición: Partición basada en estados: Clasifica las operaciones de clase en base a su habilidad de cambiar el estado de la clase Ejemplo: Para la clase cuenta de un sistema bancario, las operaciones depositar o retirar cambian el estado, las de consulta de saldo no Partición basada en atributos: Clasifica las operaciones basada en los atributos que usa Ejemplo: Operaciones que hacen uso del atributo LimiteCredito y las que no Partición basada en categorías: Clasifica las operaciones de acuerdo a la función genérica que llevan a cabo Ejemplo: Operaciones de inicialización (abrir, configurar), operaciones de consulta (saldo, resumen) 1.83
84 4.Pruebas OO Diseño de Casos Métodos a nivel de interclase Es necesario verificar las colaboraciones entre las clases Técnica de selección al azar (= que a nivel de clase) Técnica de partición (= que a nivel de clase) Técnica basada en el escenario Para cada clase cliente, generar secuencias de operaciones al azar. Así se enviarán mensajes a otras clases servidoras Para cada mensaje determinar la clase colaboradora y la operación correspondiente en el servidor Para cada operación invocada por el servidor determinar los mensajes que transmite Para cada mensaje determinar el siguiente nivel de operaciones invocadas e incorporarlas a la secuencia de pruebas 1.84
85 4.Pruebas OO Diseño de Casos Métodos a nivel de interclase Técnica basada en los modelos de comportamiento Los diagramas de transición de estados pueden derivar una secuencia de pruebas Se persigue alcanzar una cobertura total de estados La secuencia de operaciones debe causar que la clase haga transiciones por todos los estados Ejemplo: abrir-preparar cuenta-depositar-retiro-cerrar retiro cerrar 1.85
PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE
PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,
Plan de estudios ISTQB: Nivel Fundamentos
Plan de estudios ISTQB: Nivel Fundamentos Temario 1. INTRODUCCIÓN 2. FUNDAMENTOS DE PRUEBAS 3. PRUEBAS A TRAVÉS DEL CICLO DE VIDA DEL 4. TÉCNICAS ESTÁTICAS 5. TÉCNICAS DE DISEÑO DE PRUEBAS 6. GESTIÓN DE
Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE
Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.
El Proceso Unificado de Desarrollo de Software
El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:
SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010
SSTQB Nivel Fundamentos Examen ejemplo Página 1 de 12 Fecha publicación: 28 - octubre - 2015 Índice Preguntas... 3 Respuestas... 12 Página 2 de 12 Fecha publicación: 28 - octubre - 2015 Preguntas 1 2 Una
CICLO DE VIDA DEL SOFTWARE
CICLO DE VIDA DEL SOFTWARE 1. Concepto de Ciclo de Vida 2. Procesos del Ciclo de Vida del Software 3. Modelo en cascada 4. Modelo incremental 5. Modelo en espiral 6. Prototipado 7. La reutilización en
Elementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A.
Cátedra : Sistemas de Información Administrativa S.I.A. Escuela de Contadores Auditores Tema: Ingeniería del Software Estrategias de Pruebas Relator: Sr. Eduardo Leyton G Pruebas del Software (Basado en
Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:
PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo
Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba
Pruebas Pruebas en el PUD Las pruebas del software Diseño de casos de prueba Tipos de prueba Estrategias de prueba 1 2 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
1. Descripción y objetivos
Pruebas 1 1. Descripción y objetivos Las pruebas son prácticas a realizar en diversos momentos de la vida del sistema de información para verificar: El correcto funcionamiento de los componentes del sistema.
Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008
Estándares para planes de calidad de software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 DIFERENCIA ENTRE PRODUCIR UNA FUNCION Y PRODUCIR UNA FUNCION
Fundamentos del diseño 3ª edición (2002)
Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento
OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen A través de este artículo se ofrece un panorama amplio y de alto nivel sobre la especificación y los diferentes diagramas del Lenguaje
Figure 7-1: Phase A: Architecture Vision
Fase A Figure 7-1: Phase A: Architecture Vision Objetivos: Los objetivos de la fase A son: Enfoque: Desarrollar una visión de alto nivel de las capacidades y el valor del negocio para ser entregado como
Empresa Financiera Herramientas de SW Servicios
Empresa Financiera Herramientas de SW Servicios Resulta importante mencionar que ésta es una empresa cuya actividad principal está enfocada a satisfacer las necesidades financieras de los clientes, a través
6.4 ESTRATEGIAS DE PRUEBA
Prueba del sistema Prueba de validación Prueba de integración Prueba de Unidad Código Diseño Requisitos Ingeniería del Sistema Las pruebas del software aplican similar estrategia moviéndonos de adentro
PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE
VI PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE 6.1 PRUEBAS DEL SOFTWARE Una vez generado el código el software debe ser probado para descubrir el máximo de errores posibles antes de su entrega al cliente.
UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos
2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven
Proceso de desarrollo del software modelo en cascada
Proceso de desarrollo del software modelo en cascada Análisis: Necesidades del usuario especificaciones Diseño: Descomposición en elementos que puedan desarrollarse por separado especificaciones de cada
1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).
1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada
Ingeniería de Software. Pruebas
Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en
DISEÑO DE FUNCIONES (TRATAMIENTOS)
DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se
IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)
IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO) Introducción 1. Como se indica en la Norma Internacional de Auditoría 401, "Auditoría en un contexto informatizado", los objetivos globales
Diseño orientado a los objetos
Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia
Gestión y Desarrollo de Requisitos en Proyectos Software
Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería
Planificación, Gestión y Desarrollo de Proyectos
Planificación, Gestión y Desarrollo de Proyectos Conceptos básicos Planificación de un proyecto Gestión de un proyecto Desarrollo de un proyecto 1 Conceptos básicos: Proyecto Conjunto de actividades que
comunidades de práctica
1. Introducción CoSpace es una plataforma web diseñada para proporcionar un espacio virtual de interacción y colaboración entre formadores en comunidades virtuales. Se originó como resultado de las necesidades
Tema 9. Pruebas del Software
Tema 9. Pruebas del Software 1. Definiciones asociadas 2. El proceso de prueba 3. Técnicas de diseño de casos de prueba 4. Pruebas estructurales 5. Pruebas funcionales 6. Pruebas aleatorias 7. Enfoque
4. Programación Paralela
4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios
Testing. Tipos, Planificación y Ejecución de Pruebas
Testing Tipos, Planificación y Ejecución de Pruebas Contenido Definiciones del Testing de Software Objetivos, conceptos Tipos de Test Testing a-la RUP Rol del Testing en el proceso Artefactos Trabajadores
Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática
Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Metodología Evolutiva Incremental Mediante Prototipo y Técnicas Orientada a Objeto (MEI/P-OO)
Unidades temáticas de Ingeniería del Software. Fases del proceso de desarrollo 4ª edición (2008)
Unidades temáticas de Ingeniería del Software Fases del proceso de desarrollo 4ª edición (2008) Facultad de Informática organización del desarrollo El ciclo de vida del software abarca el proceso de desarrollo,
Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
6 Anexos: 6.1 Definición de Rup:
6 Anexos: 6.1 Definición de Rup: Es un producto del proceso de ingeniería de software que proporciona un enfoque disciplinado para asignar tareas y responsabilidades dentro de una organización del desarrollo.
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Técnica de modelado de objetos (I) El modelado orientado a objetos es una técnica de especificación semiformal para
Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007
Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el
Ingeniería del So8ware II
Ingeniería del So8ware II Tema 04 (2). Alcance de Proyectos So8ware Carlos Blanco Bueno DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN [email protected] Este tema se publica bajo Licencia: CreaQve
Gestión de Configuración del Software
Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software
CLASE # 5 TÉCNICAS DE CAJA BLANCA
CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente
La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática
La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado
Anteproyecto Fin de Carrera
Universidad de Castilla-La Mancha Escuela Superior de Informática Anteproyecto Fin de Carrera DIMITRI (Desarrollo e Implantación de Metodologías y Tecnologías de Testing) Dirige: Macario Polo Usaola Presenta:
Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML
Diseño Diseño en el PUD Diseño de software Patrones arquitectónicos Diseño Orientado a Objetos en UML 1 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos de uso, Modelo
CICLO DE VIDA DEL SOFTWARE. Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software
3.010 CONCEPTO DE CICLO DE VIDA Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software IEEE 1074 Un marco de referencia que contiene los
Programación páginas web. Servidor (PHP)
Programación páginas web. Servidor (PHP) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos MySQL.
Estructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
SISTEMAS DE INFORMACIÓN I TEORÍA
CONTENIDO: CICLO DE VIDA DE DESARROLLO DE SI FASES GENÉRICAS DEL CICLO DE VIDA DE DESARROLLO DE SI VISIÓN TRADICIONAL DEL CICLO DE VIDA DE DESARROLLO DE SI DE DESARROLLO DE SI: ANÁLISIS Material diseñado
Mantenimiento de Sistemas de Información
de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD
Unidad VI: Supervisión y Revisión del proyecto
Unidad VI: Supervisión y Revisión del proyecto 61. Administración de recursos La administración de recursos es el intento por determinar cuánto, dinero, esfuerzo, recursos y tiempo que tomará construir
INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz
INGENIERÍA DEL SOFTWARE I Tema 1 Introducción a la Ingeniería del Software Univ. Cantabria Fac. de Ciencias Francisco Ruiz Objetivos Comprender qué es la Ingeniería del Software y su necesidad. Situarla
14. Ingeniería de software. Ing. Alejandro Adorjan
14. Ing. Alejandro Adorjan : un enfoque en ingeniería de requerimientos Introducción La ingeniería de software es una disciplina que estudia la aplicación de la teoría, el conocimiento y la práctica de
Introducción a la Firma Electrónica en MIDAS
Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento
Prueba de software. Ingeniería de software Eduardo Ferreira, Martín Solari
Prueba de software Ingeniería de software Eduardo Ferreira, Martín Solari 1 Temario Prueba de software Estrategias, niveles y tipos de prueba Pruebas de caja blanca Pruebas de caja negra Proceso de prueba
SEGURIDAD Y PROTECCION DE FICHEROS
SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD
El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.
Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:
Gestión de proyectos
Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El
Novedades en Q-flow 3.02
Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye
ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN
ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN Clase 6: Ingeniería de Requerimientos Metododología y Ejemplo Primer Cuatrimestre 2015 Mg. María Mercedes Vitturini
Soporte Técnico de Software HP
Soporte Técnico de Software HP Servicios Tecnológicos HP Servicios contractuales Datos técnicos El Soporte Técnico de Software HP ofrece servicios integrales de soporte remoto de para los productos de
Introducción al Proceso de Pruebas.
Introducción al Proceso de Pruebas. Javier Gutiérrez / [email protected] Introducción al proceso de pruebas Objetivo: repasar las ideas principales sobre las pruebas del software y, en concreto, las que usaremos
PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él.
PROCESOS SOFTWARE MOTIVACIÓN? Con independencia de la metodología o modelo implementado, es común la estrategia para la mejora continua de la calidad, basada en el Círculo de Deming o Plan, Do, Check,
Calidad de Sistemas de Información
Calidad de Sistemas de Información Introducción (2) Concepto de calidad Conjunto de propiedades y características de un producto, proceso o servicio que le hace satisfacer las necesidades establecidas
EL PROCESO DE DISEÑO DEL SOFTWARE
UNIDAD VI EL PROCESO DE DISEÑO DEL SOFWARE Contenido: 6.1 El diseño en la Ingeniería de Software 6.2 El proceso de Diseño 6.3 Fundamentos de Diseño 6.4 Diseño de Datos 6.5 Diseño Arquitectónico 6.6 Diseño
Modelado Avanzado con Casos de Uso. Diseño de Software Avanzado Departamento de Informática
Modelado Avanzado con Casos de Uso Especificación Gráfica de Casos de Uso Una simple secuencia de acciones no puede describir adecuadamente la riqueza de situaciones que se pueden presentar en un caso
Tema 2. Ingeniería del Software I [email protected]
Tema 2 Ciclo de vida del software Ingeniería del Software I [email protected] Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición
El proceso unificado en pocas palabras
El Proceso Unificado de Desarrollo de Software Ivar Jacobson Grady Booch James Rumbaugh Addison Wesley Resumen Capítulo 1. El proceso unificado: dirigido por casos de uso, centrado en la arquitectura,
Capítulo 9. Archivos de sintaxis
Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta
Tema 3 Metodologías de Desarrollo de Software
Ingeniería del Software Ingeniería del Software de Gestión Tema 3 Metodologías de Desarrollo de Software Félix Óscar García Rubio Crescencio Bravo Santos Índice 1. Definiciones 2. Objetivos 3. Conceptos
MACROPROCESO GESTIÓN TECNOLÓGICA
Versión 1.0 Página 1 de 5 1. OBJETIVO Suministrar las fases para la puesta en producción de aplicaciones y sistemas de información desarrollados o adquiridos por el Instituto Colombiano de Bienestar Familiar
SISTEMAS DE INFORMACIÓN III TEORÍA
CONTENIDO: IMPLEMENTACIÓN DE SISTEMAS CODIFICACIÓN- PRUEBAS - INSTALACIÓN - DOCUMENTACIÓN- ADIESTRAMIENTO - SOPORTE LA IMPLANTACIÓN COMO CAMBIO ORGANIZACIONAL Material diseñado y elaborado por: Prof. Luis
RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014
RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES
TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA
TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido
PROGRAMACIÓN PÁGINAS WEB CON PHP
PROGRAMACIÓN PÁGINAS WEB CON PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología
Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, 2002. Introducción al Diseño de Software
Principio de Diseño Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, 2002 Introducción al Diseño de Software Qué es el diseño? Representación ingenieril
Arquitectura de sistema de alta disponibilidad
Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los
TEMA 2: DESARROLLO DEL SOFTWARE
TEMA 2: DESARROLLO DEL SOFTWARE EDI I Curso 2007/08 Escuela Politécnica Superior Universidad Autónoma de Madrid TEMA 2: DESARROLLO DEL SOFTWARE 2.1. Ciclo de vida del Software 2.2. Corrección de errores
Metodologías de diseño de hardware
Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción
PRU. Fundamento Institucional. Objetivos. Alcance
PRU INSTRUCCIONES: a continuación se describe el flujo de trabajo correspondiente al área de procesos de PRUEBAS para el desarrollo de software, en el cual se debe apoyar para la ejecución de sus actividades;
Workflows? Sí, cuántos quiere?
Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención
forma de entrenar a la nuerona en su aprendizaje.
Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo
http://www.cem.itesm.mx/extension/ms
Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos
19. Packages o paquetes
Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir
Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre
Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Cenditel, Mayo 2011 Licencia de Uso Copyright (c) 2010, Alvarez J., Solé S., Briceño R., Fundación CENDITEL. La Fundación CENDITEL
DISEÑO DE COMPONENTES DE SOFTWARE *
DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.
DE VIDA PARA EL DESARROLLO DE SISTEMAS
MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso
Ciclo de vida del software
Ciclo de vida del software Definición El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema. Confiable,
PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
BPMN básico. Clase Modelos de Procesos. Javier Bermudez ([email protected])
BPMN básico Clase Modelos de Procesos Javier Bermudez ([email protected]) Para qué modelar? Para sacar el mejor provecho a los artefactos creados por el hombre 2 BPMN Historia Mayo 2004: BPMI Lanza propuesta
Ingeniería de Software Dr. Marcello Visconti Z. Ingeniería de Software
Universidad Técnica Federico Santa María Departamento de Informática Ingeniería de Software Dr. Marcello Visconti Z. Programa Proceso de Software y Paradigmas de Desarrollo Gestión de Proyectos Fases del
GedicoPDA: software de preventa
GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente
http://www.informatizate.net
http://www.informatizate.net Metodologías De Desarrollo De Software María A. Mendoza Sanchez Ing. Informático - UNT Microsoft Certified Professional - MCP Analísta y Desarrolladora - TeamSoft Perú S.A.C.
Sistema de marketing de proximidad
Dizan Vasquez Propuesta de proyecto Sistema de marketing de proximidad ACME México Dizan Vasquez Índice general 1. Descripción 3 2. Resúmen ejecutivo 4 2.1. Objetivo.................................................
ESTE EJERCICIO ES DE TIPO MIXTO.
junio, 1ª semana, nacional 2012 ESTE EJERCICIO ES DE TIPO MIXTO. ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIÓN DEL
Estándar de Ingeniería de Software de la European Space Agency (ESA)
Estándar de Ingeniería de Software de la European Space Agency (ESA) Sergio Ochoa M. Cecilia Bastarrica Contenidos Fases, actividades e hitos establecidos por el estándar. Conclusiones 2 1 Ciclo de Vida
Especificación de Requisitos según el estándar de IEEE 830
Especificación de Requisitos según el estándar de IEEE 830 IEEE Std. 830-1998 22 de Octubre de 2008 Resumen Este documento presenta, en castellano, el formato de Especificación de Requisitos Software (ERS)
