Tema 2. Software Testing
|
|
- Lucía Josefa Flores Jiménez
- hace 8 años
- Vistas:
Transcripción
1 Tema 2. Software Testing Herramientas Avanzadas para el Desarrollo de Software Profesora: Alicia Villanueva DSIC, Escuela Técnica Superior de Ingeniería Informática Curso
2 Indice Indice Introducción Taxonomía Grado de Cobertura Generación automática de casos de prueba Generación aleatoria de pruebas Generación simbólica de pruebas
3 Introducción Objetivos Software Testing Comprender el papel de la prueba de programas dentro del desarrollo de software. Identificar los criterios y valores que determinan la calidad de los programas y de la prueba de programas. Identificar cuáles son los parámetros determinantes en el proceso de prueba de programas Conocer las técnicas básicas de generación automática de casos de prueba
4 Introducción Bibliografía Software Testing The Art of Software Testing. Glenford J. Myers. John Wiley & Sons, Inc Software Testing And Analysis: Process, Principles And Techniques. Mauro Pezze y Michal Young. Wiley & Sons Software Engineering with Student Project Guidance. Barbee Teasley Mynatt. Prentice-Hall International Editions, Software Testing Techniques. Boris Beizer. Van Nostrand Reinhold (N.Y.) 2nd Edition, Software Engineering: A Practitioner s Approach. Roger S. Pressman. McGraw-Hill Why Programs Fail. A Guide to Systematic Debugging. Andreas Zeller. Elsevier, Morgan Kaufmann Publishers, dponkt.verlag 2005.
5 Introducción Bibliografía Software Testing On Random and Partition Testing, S. Ntafos. International Symposium on Software Testing and Analysis, Constraint-Based Automatic Test Data Generation. R.A. DeMillo, A.J. Offutt. IEEE Transactions on Software Engineering, 17(9), Automated Software Test Data Generation, B. Korel. IEEE Transactions on Software Engineering, 16(8) Test-Data Generation Using Genetic Algorithms, R.P. Pargas, M.J. Harrols, R.R. Peck. The journal of software testing, verification and reliability, 9,1999. Gast: Generic Automated Software Testing, P.Koopman, A. Alimarine, J. Tretmans, R. Plasmeijer.
6 Introducción Motivación Prevenir o curar? Algunos datos: Barron 2002 Aproximadamente el 22 % de los PCs y el 25 % de los portátiles fallan cada año, en comparación al 9 % de los VCRs, el 7 % de las grandes pantallas de televisión, el 7 % de las secadoras de ropa, y el 8 % de las neveras. US 2002 Los defectos de software están costando a la economía de USA una estimación de 59.5 billones de dólares cada año (Estudio federal llevado a cabo por RTI). Beizer 1990 Del trabajo empleado para desarrollar un programa que funcione, normalmente el 50 % se utiliza en tareas de testing y depuración. ailpern 2002 Las actividades de validación (depuración, testing y verificación) pueden fácilmente abarcar desde el 50 % al 75 % del coste total de desarrollo Gould 1975 De un grupo de programadores experimentados, los tres mejores en tareas de depuración eran capaces de encontrar defectos en el 30 % de tiempo del empleado por los tres peores, y cometían solo un 40 % de los errores. RTI 2002 Los desarrolladores estiman que las mejoras en testing y depuración podrían reducir el coste de los errores de software en un tercio
7 Introducción Motivación Prevenir o curar? En general, cuando un programa falla, han ocurrido tres cosas: 1. El programador ha introducido un defecto en el código (bug) 2. El defecto causa una infección en el estado del programa 3. La infección causa un fallo: un error observable Debemos Prevenir la introducción de defectos Tener mecanismos para detectar estos defectos: identificación de fallos Automatizar las tareas mejora Eficacia Eficiencia
8 Introducción Qué es Software Testing? Software testing (ST) es una técnica usada para analizar la corrección, completitud y calidad de programas. proceso: ejecutar una serie de casos de prueba y evaluar el resultado evaluación: no sólo de la calidad del programa, sino también de la calidad de la prueba Software testing is the process of questioning a product in order to evaluate it.
9 Introducción Qué es Software Testing? ST no puede demostrar la corrección de un programa. Es un problema actual, objeto de innumerables investigaciónes El objetivo final es el de garantizar un nivel de calidad aceptable se debe definir qué es aceptable dependerá del tipo de programa que se esté probando
10 Introducción Qué es Software Testing? Reglas básicas del software testing (Zeller 2005) Especificar: Un programa no puede ser correcto por sí mismo, lo será con respecto a una especificación que describa su objetivo. Prueba temprana: No se debe esperar a que esté el sistema desarrollado completamente para probarlo. Prueba primero: Escribe los casos de prueba antes de implementar la unidad de código correspondiente. Los casos de prueba pueden servir como especificación. Prueba con frecuencia: Al menos se debe probar con cada entrega del software. Lo ideal es probar con cada cambio del programa ( automatización!). Prueba suficiente: Mide la cobertura de las pruebas. Que prueben otros: Las pruebas en busca de problemas desconocidos es un proceso destructivo. Una persona independiente podrá ser más objetivo a la hora de hacer las pruebas.
11 Introducción Atributos que determinan la calidad del software Funcionalidad: relacionados con las funciones del programa y sus propiedades. Fiabilidad: relacionados con la capacidad del programa de mantener su nivel de eficacia bajo determinadas condiciones exigentes y durante un periodo de tiempo concreto. madurez, capacidad de recuperación, tolerancia a fallos. Eficiencia: relacionados con el compromiso entre la eficiencia del programa y la cantidad de recursos usados bajo determinadas condiciones. comportamiento temporal, recursos usados.
12 Introducción Atributos que determinan la calidad del software Portabilidad: relacionados con la capacidad de un programa de ser transferido de un entorno a otro. instalación, conformidad, reemplazamiento, adaptabilidad. Mantenimiento: relacionados con el esfuerzo necesario para hacer determinados cambios en los programas. estabilidad, capacidad de ser analizado, maleabilidad. Amigabilidad: relacionados con el esfuerzo necesario para usar el programa. facilidad en el aprendizaje, facilidad de comprensión.
13 Introducción Tipos de pruebas Existen muchos tipos de pruebas de programa. cada tipo de prueba tiene un objetivo final distinto y se centra en una clase de errores o de programas ejemplo tipos de pruebas: pruebas unitarias, que pueden realizarse usando pruebas de caja blanca o pruebas de caja negra
14 Introducción Tipos de pruebas Existen muchos tipos de pruebas de programa. cada tipo de prueba tiene un objetivo final distinto y se centra en una clase de errores o de programas ejemplo tipos de pruebas: pruebas unitarias, que pueden realizarse usando pruebas de caja blanca o pruebas de caja negra Pruebas de caja blanca Objetivo: usando la estructura del código, intentar cubrir todas las posibles ejecuciones del programa con el menor número de casos de prueba Pruebas de caja negra Objetivo: encontrar errores funcionales, tomando como referencia los requisitos funcionales del programa.
15 Introducción Conceptos básicos Una prueba consiste en general en la ejecución de casos de prueba y su evaluación. Caso de prueba Consiste en una única ejecución del programa (a veces restringida a un único paso de ejecución) Parámetros que lo identifican: datos de entrada, identificador, orden de ejecución, requisitos adicionales, tipo de prueba, autor, resultado esperado.
16 Introducción Conceptos básicos Suite Conjunto de casos de prueba. Contiene además instrucciones para su ejecución y objetivos relacionados con la prueba. Puede contener descripciones de pruebas sucesivas Plan de pruebas Conjunto de casos de prueba pero con distinta información asociada: tipo de propiedades que se desean probar, cómo se debe interpretar el resultado, descripción detallada de la prueba.
17 Introducción Conceptos básicos Scripts Pequeños programas que automatizan la ejecución de los casos de prueba. normalmente usados para pruebas de caja blanca es necesario poder comparar de forma sencilla el resultado obtenido con la salida esperada. Mock object Objetos creados artificialmente que repiten acciones que previamente se han capturado simula el comportamiento de un objeto real reemplaza al objeto real durante el proceso de prueba
18 Introducción Conceptos básicos Escenario Definición de una prueba en base a una historia hipotética. El escenario ideal será una historia motivante, creíble y compleja, pero fácil de evaluar. Puede ser un diagrama o una descripción en lenguaje natural.
19 Introducción Ciclo de vida Dos reglas básicas: Cuándo parar la prueba de un programa? Regla pesimista: Se para cuando se acabe el presupuesto, el tiempo o cuando se agoten los casos de prueba. Regla optimista: Se para cuando la fiabilidad del programa alcance el nivel exigido por los requisitos o bien cuando el beneficio de seguir con la prueba no justifique el coste.
20 Taxonomía Taxonomía Existen muchos métodos de prueba. Distintos criterios de clasificación dan lugar a distintas clasificaciones. Clasificación según finalidad Pruebas de corrección Pruebas de rendimiento Pruebas de fiabilidad Pruebas de seguridad
21 Taxonomía Taxonomía Clasificación según alcance Pruebas de unidad Pruebas de componente Pruebas de integración Pruebas de sistema
22 Taxonomía Taxonomía Clasificación según ciclo de vida Pruebas de fase de requisitos Pruebas de fase de diseño Pruebas de fase de programa Evaluación de resultados de pruebas Pruebas de fase de instalación Pruebas de aceptación Pruebas de mantenimiento
23 Taxonomía Pruebas de corrección (finalidad) Objetivo: Garantizar una máxima corrección del producto. Lo mínimo que exigimos a un programa es que sea correcto. Recordad que no se puede garantizar una corrección total. Medimos la corrección con respecto a los requisitos del sistema (a cualquier nivel). Las pruebas de caja blanca y caja negra pueden ser útiles (entre otras cosas) para probar corrección
24 Taxonomía Pruebas de rendimiento (finalidad) Objetivo: Detectar posibles cuellos de botella en el código, además de comparar y evaluar el rendimiento del programa. No todos los programas tienen requisitos específicos en cuanto a rendimiento esperado. Método: usar benchmarks Atributos de rendimiento: Consumo de recursos, producción, tiempo de respuesta a estímulos, longitud de colas, etc. Recursos relacionados: Ancho de banda de la red, ciclos de CPU, espacio en disco, operaciones de acceso a disco, uso de memoria, etc.
25 Taxonomía Pruebas de fiabilidad (finalidad) Objetivo: Garantizar hasta un nivel determinado que un sistema no contiene operaciones que dan lugar a la aparición de errores. Está basado en el uso de un modelo de estimación para analizar los datos y estimar la fiabilidad actual y predecir la fiabilidad futura. En base al resultado se decide si sacar el programa al mercado Los usuarios pueden decidir si usar el producto o no.
26 Taxonomía Pruebas de seguridad (finalidad) Objetivo: Identificar y eliminar errores en el código que puedan dar lugar a violaciones de seguridad. Validar la efectividad de las medidas de seguridad tomadas en la fase de diseño y de desarrollo. La calidad, la fiabilidad y la seguridad de los programas están íntimamente relacionadas. Se pueden usar simulaciones de ataques para encontrar puntos vulnerables del sistema
27 Grado de Cobertura Grado de Cobertura de las pruebas Qué es? La cobertura permite medir lo buena o mala que ha sido una prueba en base a un criterio se debe elegir un criterio de cobertura se debe elegir un grado de cobertura aceptable dependerá del tipo de sistema que se esté probando, el número de usuarios que podrían verse afectados ante un fallo, etc.
28 Grado de Cobertura Grado de Cobertura de las pruebas Qué es? La cobertura permite medir lo buena o mala que ha sido una prueba en base a un criterio se debe elegir un criterio de cobertura se debe elegir un grado de cobertura aceptable dependerá del tipo de sistema que se esté probando, el número de usuarios que podrían verse afectados ante un fallo, etc. Distintos criterios de cobertura marcan distintos objetivos finales de las pruebas
29 Grado de Cobertura Grado de Cobertura de las pruebas Criterios de cobertura Cobertura de segmentos o de sentencias Un segmento es una secuencia de sentencias sin puntos de decisión Se harán pruebas para cada segmento Cobertura de ramas recorre todas las salidas de los puntos de decisión cobertura 100 % implica cobertura 100 % de segmentos necesita refinamiento en lenguajes que soportan excepciones: añadir pruebas que las provoquen Cobertura de condición/decisión trocea las expresiones booleanas complejas en sus componentes e intenta curbir todos los posibles valores de cada uno de ellos. mejora la cobertura de ramas
30 Grado de Cobertura Grado de Cobertura de las pruebas Criterios de cobertura Cobertura de bucles realiza pruebas según el tipo de bucle los bucles son segmentos controlados por decisiones para bucles tipo while: tres pruebas 1. caso en que no se ejecuta 2. caso en que se ejecuta una sola vez 3. caso en que se ejecuta más de una vez para bucles de tipo repeat: dos pruebas 1. caso en que se ejecuta una sola vez 2. caso en que se ejecuta más de una vez los bucles de tipo for: mismos casos que while Son seguros siempre y cuando: no se altere la variable de control en el interior del bucle no contengan sentencias exit, return o peor aún, goto cuando esto no ocurre debemos usar la cobertura de ramas
31 Grado de Cobertura Grado de Cobertura de las pruebas Qué es una buena cobertura? Una buena cobertura se define en función de lo crítico que sea el programa. se valora el riesgo (o coste) que implica un fallo durante su ejecución para software donde un fallo afecta sólo a la imagen dada (poco crítico), suelen bastar coberturas entre el 60 % y 80 % el número de usuarios también es determinante en la elección del grado de cobertura exigido
32 Generación automática de casos de prueba Generación Automática de pruebas Motivación La fase de diseño de casos de prueba de un sistema puede llegar a suponer el 50 % del coste del desarrollo de la prueba Las técnicas para automatizar la generación de casos de prueba puede reducir dicho coste a la vez que puede incrementar la calidad de las pruebas. El número de pruebas necesarios para probar el software puede ser infinito, por ello las técnicas para la generación de pruebas intentan encontrar un conjunto mínimo de pruebas sin pérdida de eficacia
33 Generación automática de casos de prueba Generación Automática de pruebas Paradigmas Generación aleatoria se generan entradas aleatoriamente hasta que se encuentra una útil según un determinado criterio cuanto más complejo es el programa, más difícil encontrar un caso útil. Generación de tests simbólicos estáticamente se asignan valores simbólicos a las variables búsqueda directa a través de la ejecución del programa a probar se usan técnicas de búsqueda metaheurísticas: algoritmos genéticos, recocido simulado o búsqueda tabú.
34 Generación aleatoria de pruebas Generación aleatoria de pruebas La generación aleatoria de casos de prueba es una técnica muy fácil y rápida de implementar aunque muchos científicos cuestionan la calidad de la prueba que se obtiene. a priori no se necesita información adicional sobre el código del programa se deben generar casos de prueba útiles es posible guiar la generación para obtener más cantidad de casos útiles
35 Generación simbólica de pruebas Generación simbólica de pruebas Idea La idea de los métodos simbólicos es la de generar los casos de prueba a partir de información estática del programa. PROBLEMAS tenemos problemas cuando la sintaxis del lenguaje de programación permite poder definir estructuras de datos (por ejemplo matrices) cuya dimensión depende de algún parámetro de entrada podría ser necesario probar todas las posibles dimensiones de las estructuras de datos
36 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones Método introducido por DeMillo y Offutt, con el que usando técnicas de mutación del código, definen un conjunto de restricciones y, a partir de ellas se generan conjuntos de datos que las satisfacen.
37 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones NOTACIÓN Dada una función F, llamamos P al programa que la modela P(t) es el valor de la función en el punto t, el conjunto de los puntos en los que P está definido es el dominio D de P
38 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones NOTACIÓN Dada una función F, llamamos P al programa que la modela P(t) es el valor de la función en el punto t, el conjunto de los puntos en los que P está definido es el dominio D de P Adecuación Un conjunto de pruebas T D es adecuado para P y F si, para todos los programas Q, si Q(D) F(D) t T.Q(t) P(t)
39 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones En general, es imposible calcular de forma eficaz un conjunto de pruebas adecuado para un programa, por ello se define: Mutation Adequacy Dado un conjunto finito de programas Φ, un conjunto de pruebas T D es adecuado para P con respecto a Φ si para todo programa Q Φ, si Q(D) F(D) t T.Q(t) P(t)
40 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones Relacionado con las técnicas de mutación del código tenemos acceptor, accp(p,t) que devuelve true si T es adecuado para P con respecto a un Φ dado generator, gen(p) que genera un conjunto T adecuado para P con respecto a un dado Φ los generadores usan operadores de mutación que producen programas casi idénticos al original
41 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones Relacionado con las técnicas de mutación del código tenemos acceptor, accp(p,t) que devuelve true si T es adecuado para P con respecto a un Φ dado generator, gen(p) que genera un conjunto T adecuado para P con respecto a un dado Φ los generadores usan operadores de mutación que producen programas casi idénticos al original Mothra Mothra es un sistema capaz de generar variantes de programas FORTRAN o C usando 22 y más de 70 operadores de mutación respectivamente
42 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones Los operadores de mutación deben definirse para modelar los errores que los programadores cometen con más frecuencia teniendo en cuenta criterios como valores límite, cobertura de ramas, etc.
43 Generación simbólica de pruebas Generación simbólica de pruebas Método basado en restricciones Los operadores de mutación deben definirse para modelar los errores que los programadores cometen con más frecuencia teniendo en cuenta criterios como valores límite, cobertura de ramas, etc. Mutante Un mutante es un programa generado a partir de un operador de mutación. en nuestro contexto representará un programa incorrecto, perteneciente al conjunto Φ
44 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones CONSTRAINT-BASED TESTING El método define de forma automática condiciones, expresadas como restricciones algebraicas, bajo las cuales un programa mutante fallaría (es decir, daría un resultado distinto al esperado). A partir de las restricciones, se generan automáticamente casos de prueba que satisfacen dichas restricciones. Es un método aproximado!
45 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones Dado el programa: Se generan los mutantes: EJEMPLO: CONJUNTO DE MUTANTES FUNCTION MAX (M,N) 1 MAX = M 2 if (N > M) MAX = N 3 return FUNCTION MAX (M,N) 1 MAX = N 2 if (N > M) MAX = N 3 return FUNCTION MAX (M,N) 1 MAX = M 2 if (N < M) MAX = N 3 return FUNCTION MAX (M,N) 1 MAX = abs(m) 2 if (N > M) MAX = N 3 return FUNCTION MAX (M,N) 1 MAX = M 2 if (N M) MAX = N 3 return
46 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones DEFINICIÓN DE RESTRICCIONES Noción de necesidad Dado un programa P y un mutante M, que consiste en cambiar la sentencia S de P, para que un caso de prueba t sea capaz de eliminar el mutante M, es necesario que el estado de M tras la ejecución de S sea distinto al estado de P en ese mismo punto de ejecución No es una condición suficiente!
47 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones EJEMPLO: RESTRICCIONES NECESARIAS FUNCTION MAX (M,N) 1 MAX = M MAX = N M N MAX = abs(m) M < 0 2 if (N > M) MAX = N if (N < M) MAX = N (N>M) (N<M) if (N M) MAX = N (N>M) (N M) 3 return
48 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones Plantillas (incompleta) para la definición de las restricciones según Mothra: sustitución de un array por otro A(e 1 ) B(e 2 ) sustitución de un array por una constante C A(e 1 ) sustitución de un operador aritmético e 1 ρe 2 e 1 φe 2 e 1 ρe 2 e 1 e 1 ρe 2 e 2 e 1 ρe 2 Mod(e 1, e 2 ) sustitución de una constante por un array A(e 1 ) C sustitución de una variable por un escalar X C sustitución de conector lógico por otro e 1 ρe 2 e 1 φe 2 sustitución de operador relacional por otro e 1 ρe 2 e 1 φe 2 sustitución de variables escalares X Y
49 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones CALIDAD: MÉTODO ITERATIVO En todo momento tenemos un conjunto de mutantes antes de añadir un caso de prueba al conjunto generado se ejecuta un caso de prueba en el programa original se ejecuta el caso de prueba en cada mutante y se comparan los resultados con el esperado si el resultado es distinto, entonces se elimina el mutante del conjunto de mutantes
50 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones Una vez termina el método iterativo, se obtienen dos resultados: la cantidad de mutantes eliminados del conjunto generado Cuantos más mutantes se hayan eliminado, mejor es el conjunto de casos de prueba Los mutantes no eliminados nos indican vulnerabilidades del programa
51 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones Una vez termina el método iterativo, se obtienen dos resultados: la cantidad de mutantes eliminados del conjunto generado Cuantos más mutantes se hayan eliminado, mejor es el conjunto de casos de prueba Los mutantes no eliminados nos indican vulnerabilidades del programa El objetivo final es el de eliminar todos los mutantes de Φ
52 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones En general, es imposible definir restricciones suficientes, pero existen mejoras a las restricciones de necesidad. Restricciones de predicado Unidas a las restricciones de necesidad, mejoran la precisión de los casos de prueba generados Tratan de diferenciar predicados distintos, generando para cada mutante e la restricción e e
53 Generación simbólica de pruebas Estrategia Generación simbólica de pruebas Método basado en restricciones EJEMPLO: RESTRICCIONES DE PREDICADO Expresión original: if (I+K J) then... Mutante: if (3+K J) then... Restricción de necesidad: I 3 Caso de prueba: I=7, J=9, K=7 se satisface I 3 I+K=14 J y 3+K=10 J no distinguimos el mutante Restricción de predicado: (I+K J) (3+K J) true true NO se satisface
54 Metaheurísticas Metaheurísticas aplicadas a pruebas de caja blanca Algoritmos genéticos Jones, Stharner y Eyres McGraw, Michael y Schatz Pargas, Harrold y Peck Lin y Yeh. Búsqueda tabú Díaz y Tuya. Recocido Simulado Tracey, Clark y Mander
55 Método de Korel: TESTGEN Método de Korel Método dinámico basado en la ejecución real del programa, en métodos de minimización de funciones y en análisis del flujo de datos Idea Buscar valores de los parámetros de entrada que fuercen la ejecución de un determinado camino del código
56 Método de Korel: TESTGEN Método de Korel GRAFO DE FLUJO El grafo de flujo del programa Q es un grafo dirigido C = (N, A, s, e) donde N es el conjunto de nodos, A es una relación binaria entre nodos s es el nodo de entrada, perteneciente a N e es el nodo de salida, perteneciente a N
57 Método de Korel: TESTGEN Método de Korel GRAFO DE FLUJO los nodos representan las partes ejecutables más pequeñas del código con una única entrada y salida los arcos representan cambios de control entre las instrucciones representadas por los dos nodos de la relación si el arco está relacionado con un punto de decisión del programa, se le llama rama
58 Método de Korel: TESTGEN Método de Korel EJEMPLO: GRAFO DE FLUJO var A: array[1..100] of integer; low, high, step: integer; min, max: integer; i: integer; begin 1 input(low,high,step,a); 2 min := A[low]; 3 max := A[low]; 4 i:= low+step; 5 while i<high do begin 6,7 if max < A[i] then max:=a[i]; 8,9 if min > A[i] then min:=a[i]; 10 i:=i+step; end 11 output(min,max); end;
59 Método de Korel: TESTGEN Método de Korel EJEMPLO: GRAFO DE FLUJO (a completar)
60 Método de Korel: TESTGEN Método de Korel En lenguajes estructurados como C, el grafo de flujo es fácil de construir Problemas para la construcción del grafo: Saltos y go tos Saltos indirectos (dependientes de una variable) Llamada dinámica Excepciones Dependencias: de datos o de flujo / de lectura o de escritura Herramienta (análisis estático, slicing) CODESURFER
61 Método de Korel: TESTGEN Método de Korel EJEMPLO: CAMINO A RECORRER Dado el camino P = s, 1, 2, 3, 4, 5, 6, 8, 10, 5, 6, 8, 9, 10, 5, 11, encontrar los valores de entrada low, high, step y los elementos de A que hacen que P se ejecute. Valores iniciales: low = 39 high = 93 step = 12 A[1] = 1; A[2] = 2;... ; A[100] = 100
62 Método de Korel: TESTGEN Método de Korel EJEMPLO: TRAZA INICIAL (a completar)
63 Método de Korel: TESTGEN Método de Korel Normalmente, a partir de los datos de entrada iniciales no se cubre todo el camino. Cuando se queda bloqueado Para superar el punto de ejecución donde falla, se define una función objetivo y se intenta minimizar variando los valores de los parámetros de entrada.
64 Método de Korel: TESTGEN Método de Korel Las funciones serán de tipo Funcion Relación 0 siguiendo la plantilla: Código Función Relación E 1 > E 2 E 2 E 1 < E 1 E 2 E 2 E 1 E 1 < E 2 E 1 E 2 < E 1 E 2 E 1 E 2 E 1 = E 2 abs(e 1 E 2 ) = E 1 E 2 abs(e 1 E 2 ) E 1 y E 2 son expresiones aritméticas
65 Método de Korel: TESTGEN Método de Korel EJEMPLO: TRAZA (a completar)
66 Método de Korel: TESTGEN Método de Korel Factores determinantes en la eficiencia del algoritmo: proceso de incremento/decremento de los valores de los parámetros, una vez detectada la dirección buena análisis del flujo de datos para determinar el orden de moficación de las variables mejoras para manejar estructuras de datos dinámicas o punteros
67 Método de Jones et al. Método de Jones et al. Automatic structural testing using genetic algorithms. B. Jones, H. Sthamer y D. Eyers. The Software Engineering Journal 11, primera aplicación a generación automática de pruebas el objetivo es maximizar la cobertura de ramas usando el grafo de control de flujo del programa. usa como función objetivo el recíproco de la distancia de Hamming
68 Método de Jones et al. Método de Jones et al. Los algoritmos genéticos están basados en la teoría de la evoluciónd e Darwin: Idea Combinar muestras de la población para obtener individuos mejores, que aumente la calidad de la población Parámetros a decidir: representación de los individuos número de miembros de la población: fijo? población inicial método de cruce y mutación función objetivo método de selección de padres
69 Método de Jones et al. Método de Jones et al. CRUCE Cruce sencillo: Dados dos miembros (cadenas de bits), se elige de forma aleatoria un punto de la cadena que los representa y se intercambian las colas de las cadenas a partir de dicho punto. Cruce doble: Dados dos miembros, se eligen dos puntos de forma aleatoria de las cadenas y se intercambia la parte entre dichos dos puntos. Variantes: Intercambiar los elementos de las cadenas con una probabilidad dada (0.5).
70 Método de Jones et al. Método de Jones et al. MUTACIÓN Dado un miembro de la población, se elige de forma aleatoria un punto de la cadena y, con una probabilidad determinada, se cambia el valor del elemento en ese punto de la cadena si la cadena contiene datos binarios, la mutación consistirá en cambiar el valor de 0 a 1 o viceversa.
71 Método de Jones et al. Método de Jones et al. Algunas consideraciones generales: es necesario introducir cierta aleatoriedad en la elección de los padres para favorecer la diversidad de la población Es necesario definir de forma adecuada qué miembros serán los supervivientes tras un cruce o mutación, introduciendo aquí también un factor aleatorio La aleatoriedad permite que el algoritmo no se bloquee en mínimos locales.
72 Método de Jones et al. Método de Jones et al. ESQUEMA GENERAL DE UN ALGORITMO GENÉTICO Inicializar poblacion loop Determinar el ajuste de la poblacion Seleccionar los padres del cruce Obtener los miembros nuevos, mutar y determinar su ajuste si se alcanza el objetivo entonces salir is si se alcanzado limite de iteracion entonces salir is Seleccionar los supervivientes de la poblacion y los nuevos miembros Formar la nueva poblacion end loop
73 Método de Jones et al. Método de Jones et al. EJEMPLO: ESTRUCTURA SIMPLE if D=0 then C1 else C2 end if D es una función, dependiente de las variables x 1 y x 2 C1 y C2 son expresiones del lenguaje de programación hay que probar el caso en el que D=0 y el caso en el que D 0
74 Método de Jones et al. Método de Jones et al. EJEMPLO: ESTRUCTURA SIMPLE x 1 x 2 ajuste padres hijos x 1 x 2 ajuste descripción cruce en posición cruce en posición cruce en posición cruce en posición y mutación en 5
75 Método de Jones et al. Método de Jones et al. Cuando tratamos con un programa entero y no sólo con una expresión: se recurre al mantenimiento de un árbol o grafo de flujo de control el algoritmo considera de forma sucesiva todos los puntos de decisión del grafo o árbol, intentando que todas las ramas del grafo estén cubiertas por casos de prueba (miembros de la población).
76 Método GADGET, McGraw et al. Método GADGET, McGraw et al. Generating software test data by evolution. G. McGraw, C. Michael, M. Schatz. Technical Report RSTR , RST Corporation, el objetivo es maximizar la cobertura de ramas y de condición-decisión. la generación automática se hace usando su propio sistema GADGET (Genetic Algorithm Data Generation Tool) diseñado para trabajar con programas grandes escritos en C y C++. no limita el conjunto de construcciones de C válidas. busca un camino para alcanzar el punto del código donde se quiere que el criterio de cobertura sea satisfecho y convertir ese criterio en una función que pueda ser minimizada.
77 Método GADGET, McGraw et al. Método GADGET, McGraw et al. Como novedades, el sistema GADGET incorpora: además de poder usar un algoritmo genético tradicional, puede usar también el Differential Genetic Algorithm en el que el cruce se define de forma diferente
78 Método GADGET, McGraw et al. Método GADGET, McGraw et al. Como novedades, el sistema GADGET incorpora: además de poder usar un algoritmo genético tradicional, puede usar también el Differential Genetic Algorithm en el que el cruce se define de forma diferente DIFFERENTIAL GENETIC ALGORITHM se genera una población inicial aleatoria para cada elemento I de la población se eligen de forma aleatoria tres compañeros: A, B y C pueden coincidir con el mismo I
79 Método GADGET, McGraw et al. Método GADGET, McGraw et al. DIFFERENTIAL GENETIC ALGORITHM Dada una probabilidad p y un valor α, parámetros del algoritmo, se genera un nuevo elemento I : por cada elemento I i de la cadena que representa al elemento I, se define I i = I i con una probabilidad p con probabilidad 1 p, definimos I i = A i + α(b i C i ) Si el individuo I tiene una función objetivo mejor que I, se elimina I de la población y se introduce en su lugar el nuevo individuo I.
80 Método GADGET, McGraw et al. Método GADGET, McGraw et al. EJEMPLO Supongamos que p = 2/3 y que α = 0,4, entonces podríamos tener la siguiente situación: I = A B C I
81 Método GADGET, McGraw et al. Método GADGET, McGraw et al. COBERTURA Una vez definidos los parámetros del algoritmo Se inicializa una tabla de cobertura que contendrá los requisitos que deben ser cubiertos por los casos de prueba una lista de todas las condiciones y decisiones que aparecen en el código Empieza el bucle iterativo
82 Método GADGET, McGraw et al. Método GADGET, McGraw et al. En cada iteración del programa, se elige un requisito de la tabla, el cual intentará cubrir el algoritmo cada vez que un caso de prueba nuevo (un nuevo individuo) cubre un requisito cualquiera de la tabla, se marca en la tabla como cubierto cuando se cubre el requisito elegido, se inicia una nueva iteración si se alcanza el número máximo de iteraciones sin que se cubra el objetivo, se marca como intento fallido y se inicia una nueva iteración
83 Método GADGET, McGraw et al. Método GADGET, McGraw et al. El algoritmo termina cuando: todos los requisitos de la tabla han sido cubiertos no todos los requisitos se han cubierto, pero los no cubiertos se han intentado La calidad del conjunto de casos de prueba puede medirse según el número de requisitos que ha sido capaz de cubrir
84 Método TGEN, Pargas et al. Método TGEN, Pargas et al. Test data generation using genetic algorithms. R.P. Pargas, M.J. Harrold yr.r Peck. The journal of software testing, verification and reliability, 9, describe el sistema TGEN maximiza la cobertura de ramas y de sentencias usando el grafo de control de dependencias, en el que los nodos representan sentencias y los arcos representan las dependencias entre sentencias (predicados). la función objetivo compara el conjunto de predicados actual con el conjunto de predicados que tienen que cumplirse para llegar al nodo objetivo. una solución que cubre la mayoría de los predicados tendrá una evaluación alta de la función objetivo.
85 Método TGEN, Pargas et al. Método TGEN, Pargas et al. GRAFO DE DEPENDENCIAS Puede definirse a partir del grafo de flujo. Sean V y W dos nodos del grafo de flujo, decimos que W está post-dominado por V si todo camino dirigido que va de W a la salida, pasa obligatoriamente por V Dados dos nodos V e W del grafo de flujo de control, decimos que V es control-dependiente de W si y sólo si: 1. existe un camino dirigido de V a W que cumple que todos sus nodos Z están post-dominados por W, y 2. V no está post-dominado por W
86 Método TGEN, Pargas et al. Método TGEN, Pargas et al. GRAFO DE DEPENDENCIAS Puede definirse a partir del grafo de flujo. Sean V y W dos nodos del grafo de flujo, decimos que W está post-dominado por V si todo camino dirigido que va de W a la salida, pasa obligatoriamente por V Dados dos nodos V e W del grafo de flujo de control, decimos que V es control-dependiente de W si y sólo si: 1. existe un camino dirigido de V a W que cumple que todos sus nodos Z están post-dominados por W, y 2. V no está post-dominado por W Los nodos representan sentencias y los arcos dependencias entre sentencias
87 Método TGEN, Pargas et al. Método TGEN, Pargas et al. EJEMPLO: GRAFO DE DEPENDENCIAS Dado el siguiente programa escrito en pseudocódigo integer i, j, k 1 read i, j, k 2 if (i<j) 3 if (j<k) 4 i = k; 5 else k = i; endif endif 6 print i, j, k Obtenemos el grafo de flujo y de dependencias
88 Método TGEN, Pargas et al. Método TGEN, Pargas et al. EJEMPLO: GRAFO DE FLUJO (a completar)
89 Método TGEN, Pargas et al. Método TGEN, Pargas et al. EJEMPLO: GRAFO DE DEPENDENCIAS (a completar)
90 Método TGEN, Pargas et al. Método TGEN, Pargas et al. A partir del grafo de dependencias: cada camino acícliclo del grafo de dependencias contiene los predicados (arcos) que tienen que satisfacerse para llegar a ejecutar una determinada sentencia (nodo) Objetivo Cubrir con los casos de prueba generados (individuos del algoritmo genético), todos los predicados que aparecen en el grafo de dependencias
91 Método TGEN, Pargas et al. Método TGEN, Pargas et al. Función de aceptación (objetivo): número de predicados que son cubiertos Nótese que el objetivo de cubrir todos los predicados irá cambiando conforme se vayan cubriendo objetivos parciales
92 Método TGEN, Pargas et al. Método TGEN, Pargas et al. ALGORITMO (1/2) a partir del grafo de dependencias se generan los predicados que deben ser cubiertos por los casos de prueba se define un conjunto inicial de individuos se inicializan las estructuras de datos auxiliares que almacenan predicados ya cubiertos, etc. inicia el bucle iterativo
93 Método TGEN, Pargas et al. Método TGEN, Pargas et al. ALGORITMO (2/2) En cada iteración del bucle se elige un objetivo: obtiene un conjunto de casos de prueba mediante el algoritmo genético se calcula el grado de aceptación de la población se ordenan los individuos según su aceptación se seleccionan los padres de los nuevos individuos se cruza (método tradicional) o muta (se asigna un valor aleatorio a uno de los elementos de la cadena elegido aleatoriamente también) la proporción de cruces es del 90 % y de mutaciones 10 % si se alcanza un número límite de iteraciones sin poder cubrir el objetivo, se para y se marca el objetivo como inalcanzable
94 Método TGEN, Pargas et al. Método TGEN, Pargas et al. EJEMPLO Supongamos que en un momento dado tenemos la siguiente población: test Entrada (i, j, k) Sentencias t1 1, 6, 9 t2 0, 1, 4 t3 5, 0, 1 t4 2, 2, 3 Qué sentencia falta cubrir? Cuál es nuestra función objetivo?
95 Método TGEN, Pargas et al. Método TGEN, Pargas et al. EJEMPLO determinar el grado de aceptación de cada individuo con respecto al objetivo asignar probabilidad a cada elemento para ser elegido como padre de un cruce en función del grado de aceptación elegir los padres en el conjunto de padres puede repetirse un elemento generar nueva población determinar si satisface el objetivo o no
96 Método de Recocido Simulado Método de Recocido Simulado Automated program flaw finding using simulated annealing. N. Tracey, J. Clark y K. Mander. International Symposium on software testing and analysis, ACM/SIGSOFT, usa la técnica de recocido simulado para dos cosas: generar los casos de prueba en base a las especificaciones de un sistema probar condiciones que elevan excepciones en un programa no se usa para la generación de pruebas de cobertura. el recocido simulado es un método de búsqueda local que trata de encontrar un conjunto de posibles soluciones, reduciendo la posibilidad de quedarse atascado en un óptimo local malo mediante movimientos a soluciones inferiores controlados por un esquema aleatorio.
97 Método de Recocido Simulado Método de Recocido Simulado La función objetivo se define en base a la precondición y postcondición de un determinado fragmento de código El cálculo del valor de la función objetivo depende de la precondición y la postcondición negada se contará el número de componentes de la condición anterior expresada en forma normal disyuntiva que son satisfechas
98 Método de Recocido Simulado Método de Recocido Simulado La función objetivo se define en base a la precondición y postcondición de un determinado fragmento de código El cálculo del valor de la función objetivo depende de la precondición y la postcondición negada se contará el número de componentes de la condición anterior expresada en forma normal disyuntiva que son satisfechas EJEMPLO pasa a ser A (B (C D)) A B (C D)
99 Método de Recocido Simulado Método de Recocido Simulado El algoritmo buscará en la vecindad posibles casos de prueba que sean mejores en términos de la función objetivo que los actuales, hablando de variables reales, la vecindad puede ser un rango superior e inferior de valores Habrá un mecanismo de selección por el que casos de prueba peores podrán ser seleccionados, sobre todo en la fase inicial de la ejecución. este mecanismo permite evitar quedarse bloquado en un mínimo local
Comparación de técnicas metaheurísticas para la generación automática de casos de prueba que obtengan una cobertura software
Comparación de técnicas metaheurísticas para la generación automática de casos de prueba que obtengan una cobertura software Eugenia Díaz, Raquel Blanco, Javier Tuya Departamento de Informática, Universidad
Más detallesTé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
Más detallesPRUEBAS 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,
Más detalles1. 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.
Más detallesCLASE # 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
Más detallesProgramación Genética
Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino
Más detallesElementos 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
Más detallesSSTQB. 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
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS
ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos
Más detallesSistemas 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
Más detallesCiclo 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
Más detallesAnálisis de los datos
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización
Más detallesFuncionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net
2012 Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net Servinet Sistemas y Comunicación S.L. www.softwaregestionproyectos.com Última Revisión: Febrero
Más detallesDISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.
DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar
Más detallesESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
Más detallesCICLO 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
Más detallesSEGURIDAD 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
Más detallesIngeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
Más detallesEstas 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
Más detallesTécnicas Avanzadas de Testing Automatizado
Técnicas Avanzadas de Testing Automatizado Criterios de cobertura: Caja blanca/caja negra Clases de Equivalencia Valores de borde Cobertura basada en flujo de control CodeCover Mutación Jumble Criterios
Más detallesTesting. 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
Más detallesÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ
ELECTRÓNICA DIGITAL DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ IES TRINIDAD ARROYO DPTO. DE ELECTRÓNICA ÍNDICE ÍNDICE... 1 1. LIMITACIONES DE LOS CONTADORES ASÍNCRONOS... 2 2. CONTADORES SÍNCRONOS...
Más detallesCRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler
Bizagi Process Modeler Copyright 2011 - Bizagi Tabla de Contenido CRM- Gestión de Oportunidades de Venta... 4 Descripción... 4 Principales Factores en la Construcción del Proceso... 5 Modelo de Datos...
Más detallesAnálisis y cuantificación del Riesgo
Análisis y cuantificación del Riesgo 1 Qué es el análisis del Riesgo? 2. Métodos M de Análisis de riesgos 3. Método M de Montecarlo 4. Modelo de Análisis de Riesgos 5. Qué pasos de deben seguir para el
Más detallesPRUEBAS, 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.
Más detalles3.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.
Más detallesUnidades 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,
Más detallesIntroducción al Proceso de Pruebas.
Introducción al Proceso de Pruebas. Javier Gutiérrez / javierj@us.es Introducción al proceso de pruebas Objetivo: repasar las ideas principales sobre las pruebas del software y, en concreto, las que usaremos
Más detallesDISEÑ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
Más detallesGENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Más detallesFundamentos 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
Más detallesProceso 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
Más detallesUniversidad 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)
Más detallesIntroducció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
Más detallesINTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
Más detallesPlan 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
Más detallesEstructuras 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.
Más detallesPROGRAMACIÓ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
Más detallesTarea 4.2 Memoria Virtual
1 Tarea 4.2 1. Cuál es la diferencia entre paginación simple y paginación en memoria virtual? En memoria virtual no es necesario que todas las páginas estén en marcos de la memoria principal. Las páginas
Más detallesTema 4. Gestión de entrada/salida
Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada
Más detallesSoluciones Informáticas para la Gestión de la Calidad c/vicente Aleixandre nº 10 4º H, 15009 A CORUÑA Telf: 981 133 207 / 616 145 723 info@spuch.
MANUAL DE USUARIO Índice Índice... 2 Introducción... 2 Pantalla inicial... 3 Conectar las bases de datos... 4 Periodicidad de sincronización... 6 Reglas de sincronización... 7 Ejecutar consultas SQL...
Más detallesCapítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas
Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse
Más detalles2 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
Más detallesSISTEMAS Y MANUALES DE LA CALIDAD
SISTEMAS Y MANUALES DE LA CALIDAD NORMATIVAS SOBRE SISTEMAS DE CALIDAD Introducción La experiencia de algunos sectores industriales que por las características particulares de sus productos tenían necesidad
Más detallesANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.
ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones
Más detallesCopyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler
Copyright 2011 - bizagi Gestión de Cambios Bizagi Process Modeler Tabla de Contenido Gestión de Cambios... 4 Descripción... 4 Principales factores en la Construcción del Proceso... 5 Modelo de Datos...
Más detallesCharlas para la Gestión del Mantenimiento Fernando Espinosa Fuentes
Charlas para la Gestión del Mantenimiento Fernando Espinosa Fuentes Conseguir una alta eficiencia de los activos es un reto importante ya que tiene un impacto significativo sobre los beneficios. Afecta
Más detallesGestión de Oportunidades
Gestión de Oportunidades Bizagi Suite Gestión de Oportunidades 1 Tabla de Contenido CRM Gestión de Oportunidades de Negocio... 4 Elementos del Proceso... 5 Registrar Oportunidad... 5 Habilitar Alarma y
Más detallesPlan de Gestión de Configuración. Universidad Nacional de la Patagonia Austral
Plan de Gestión de Configuración Universidad Nacional de la Patagonia Austral Temario 1. Gestión de Configuración de Software 1.1 Definición 2. Plan de SCM 2.1 Estructura Organizacional 2.2 Actividades
Más detallesGestió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
Más detallesEl 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:
Más detallesGestió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
Más detallesEl Proceso de Pruebas de acuerdo a los estandares y la experiencia.
El Proceso de Pruebas de acuerdo a los estandares y la experiencia. Logo@Copyright 1 Objetivos 1. Compartir conocimiento adquirido en distintos proyectos con la comunidad de Testing. 2. Generar un espacio
Más detallesPlanificación en Team Foundation Server 2010
Planificación en Team Foundation Server 2010 Planificación y Seguimientos en Proyectos Agile con Microsoft Visual Studio Team Foundation Server 2010 Dirigido a: Todos los roles implicados en un proyecto
Más detalles5.- ANÁLISIS DE RIESGO
5.- ANÁLISIS DE RIESGO El módulo de Análisis de Riesgo se caracteriza por desarrollar una herramienta formativa para la gestión, que permite al usuario identificar, analizar y cuantificar el riesgo de
Más detallesMineria de datos y su aplicación en web mining data Redes de computadores I ELO 322
Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322 Nicole García Gómez 2830047-6 Diego Riquelme Adriasola 2621044-5 RESUMEN.- La minería de datos corresponde a la extracción
Más detallesCAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar
CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados
Más detalles- Bases de Datos - - Diseño Físico - Luis D. García
- Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo
Más detallesLa Tecnología líder en Simulación
La Tecnología líder en Simulación El software de simulación Arena, es un "seguro de vida" para las empresa: le ayuda a predecir el impacto en las organizaciones de nuevas ideas, estrategias y políticas
Más detallesASIS Technology Partners. www.asistp.com 1
ASIS Technology Partners www.asistp.com 1 Organización para el Testing de Software www.asistp.com 2 Por qué Testing? A nivel mundial cada año se pierden más de 500 billones de dólares en fallas de software
Más detallesQ-flow Patrones básicos de Workflow
How to Q-flow Patrones básicos de Workflow Versión: 2.0 Fecha de publicación 28-03-2011 Aplica a: Q-flow 3.0 y Q-flow 3.1 Índice Introducción... 3 Patrones de control... 4 Patrón: Secuencia... 4 Patrón:
Más detallesTEMA 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
Más detallesEste documento proporciona la secuencia de pasos necesarios para la construcción de un Diagrama de Flujo. www.fundibeq.org
DIAGRAMA DE FLUJO 1.- INTRODUCCIÓN Este documento proporciona la secuencia de pasos necesarios para la construcción de un Diagrama de Flujo. Muestra la importancia de dos aspectos clave en este proceso:
Más detallesTABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Más detallesGeneración automática de casos de prueba mediante búsqueda dispersa
Generación automática de casos de prueba mediante búsqueda dispersa Raquel Blanco, Eugenia Díaz, Javier Tuya Departamento de Informática, Universidad de Oviedo {rblanco madiaz tuya}@uniovi.es Abstract
Más detallesEs de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado.
DIAGRAMA DE AÁRBOL 1.- INTRODUCCIÓN Este documento describe el proceso de construcción de un Diagrama de Árbol, mediante el cual se dispone de una metodología simple y sistemática para la identificación
Más detalles4 Pruebas y análisis del software
4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran
Más detallesHoy terminamos caja blanca
Hoy terminamos caja blanca Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Blanca/Otros enfoques Blanca A. Vargas Govea vargasgovea@itesm.mx Marzo 22, 2013 Contenido Pruebas
Más detallesTEMA 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
Más detallesCONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler
CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA BizAgi Process Modeler TABLA DE CONTENIDO PROCESO DE MESA DE AYUDA INTERNA... 3 1. DIAGRAMA DEL PROCESO... 4 2. MODELO DE DATOS... 5 ENTIDADES DEL SISTEMA...
Más detallesGestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi
Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...
Más detalles18. Camino de datos y unidad de control
Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los
Más detallesEl 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:
Más detallesRegistro (record): es la unidad básica de acceso y manipulación de la base de datos.
UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.
Más detallesIntroducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas
Más detallesISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE
ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE MARZO 2007 Este documento contesta las preguntas más frecuentes que se plantean las organizaciones que quieren
Más detallesResolución de Problemas
Introducción Resolución de Problemas La resolución de problemas es una capacidad que consideramos inteligente Somos capaces de resolver problemas muy diferentes Encontrar el camino en un laberinto Resolver
Más detallesTesting. Ingeniería del Software I. Ejecución del testing. Cómo se hace testing? Cómo seleccionar datos Datos de producción
Ingeniería del Software I Testing Martina Marré martina@dc.uba.ar Testing Es el proceso de ejecutar un producto para verificar que satisface los requerimientos o para identificar diferencias entre el comportamiento
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesEmpresa 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
Más detalles+ Cómo ahorrar dinero con Software Quality
+ Cómo ahorrar dinero con Software Quality Qué es Software Quality Assurance? Porqué facilita el ahorro de dinero? Introducción El objetivo de este documento es explicar qué es Software Quality Assurance,
Más detallesGestió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
Más detallesSoftware Criptográfico FNMT-RCM
Software Criptográfico FNMT-RCM ÍNDICE 1. DESCARGA E INSTALACIÓN DEL SOFTWARE 2. EXPORTACIÓN DE CERTIFICADOS EN MICROSOFT INTERNET EXPLORER 3. IMPORTACIÓN DEL CERTIFICADO A LA TARJETA CRIPTOGRÁFICA -2-
Más detalles2. Entorno de trabajo y funcionalidad en Arquímedes
2. Entorno de trabajo y funcionalidad en Arquímedes 2.9. Presupuestos comparativos. Cómo contrastar ofertas... 1 2.9.1. Análisis de los datos del comparativo de presupuestos... 4 2.9.2. Ejemplo de comparativo
Más detallesCapí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
Más detallesMesa de Ayuda Interna
Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...
Más detallesParte I: Introducción
Parte I: Introducción Introducción al Data Mining: su Aplicación a la Empresa Cursada 2007 POR QUÉ? Las empresas de todos los tamaños necesitan aprender de sus datos para crear una relación one-to-one
Más detallesUnidad 1. Fundamentos en Gestión de Riesgos
1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.
Más detallesINSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un
INSTRODUCCION Toda organización puede mejorar su manera de trabajar, lo cual significa un incremento de sus clientes y gestionar el riesgo de la mejor manera posible, reduciendo costes y mejorando la calidad
Más detallesESTIMACIÓN. puntual y por intervalo
ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio
Más detallesTest de intrusión (Penetration Test) Introducción
Test de intrusión (Penetration Test) Introducción Nos encontramos en una época en donde las empresas están sufriendo ataques informáticos cada vez en forma más asidua, basta con ver los informes anuales
Más detallesGENERACIÓN DE TRANSFERENCIAS
GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base
Más detallesEstá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
Más detallesBases de datos en Excel
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos
Más detallesSobre la lectura y escritura de datos en FORTRAN.
Sobre la lectura y escritura de datos en FORTRAN. 1. Las sentencias READ /WRITE Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o escritura de datos. En el lenguaje
Más detallesAdministración de proyectos. Organizar, planificar y programar los proyectos de software
Administración de proyectos Organizar, planificar y programar los proyectos de software Administración de proyectos Trata de las actividades que hay que realizar para asegurar que el software se entregará
Más detalles5.4. Manual de usuario
5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin
Más detallesParámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)
QUÉ SON CONCEPTOS PARAMÉTRICOS? Los conceptos paramétricos de Presto permiten definir de una sola vez una colección de conceptos similares a partir de los cuales se generan variantes o conceptos derivados
Más detalles