Revisión actual |
Tu texto |
Línea 20: |
Línea 20: |
| === Resolución === | | === Resolución === |
| (Aclaración: pregunté a Juan Pablo y aclaró que valía dar un mutante para el que existieran tests que lo matan débil y fuertemente, mientras yo dé test que lo mata débilmente en el caso del inciso 2). | | (Aclaración: pregunté a Juan Pablo y aclaró que valía dar un mutante para el que existieran tests que lo matan débil y fuertemente, mientras yo dé test que lo mata débilmente en el caso del inciso 2). |
|
| |
| 1. Un mutante en el que la línea 4 muta a "while i>n" es matado fuertemente por el test: | | 1. Un mutante en el que la línea 4 muta a "while i>n" es matado fuertemente por el test: |
| <pre> | | <pre> |
Línea 57: |
Línea 56: |
| |} | | |} |
| === Resolución === | | === Resolución === |
| 1. Árbol de cómputo. Uso unroll de 1 (es decir "while i<n" cambia a "if 0<n").
| |
| <pre>
| |
| Uso los renombres:
| |
| C1: n0 >= 0
| |
| C2: 0 < n0
| |
| C3: 0%2 == 1
| |
| </pre>
| |
| <pre>
| |
| C1
| |
| / \
| |
| T / \ F
| |
| C2 (it. 3)
| |
| / \
| |
| T / \ F
| |
| C3 (it. 1)
| |
| / \
| |
| T / \ F
| |
| UNSAT (it. 2)
| |
| </pre>
| |
|
| |
| 2.
| |
| {| class="wikitable"
| |
| |+
| |
| |-
| |
| ! Iteración !! Input Concreto !! Condición de Ruta !! Fórmula enviada al demostrador !! Resultado posible
| |
| |-
| |
| | 1 || n=0 || C1 ^ ¬C2 || n>=0 and 0<n || n0 = 1
| |
| |-
| |
| | 2 || n=1 || C1 ^ C2 ^ ¬C3 || n>=0 and 0<n and 0%2==1 || UNSAT
| |
| |-
| |
| | || || || n<0 || n0 = -1
| |
| |-
| |
| | 3 || n=-1 || ¬C1 || END || END
| |
| |}
| |
|
| |
|
| == Ejercicio 3 == | | == Ejercicio 3 == |
Línea 110: |
Línea 75: |
|
| |
|
| === Resolución === | | === Resolución === |
| 1. Las branch distances resultantes luego de ejecutar todo el test suite son (con k=1):
| |
| {| class="wikitable"
| |
| |+
| |
| |-
| |
| ! !! C1 !! C2 !! C3
| |
| |-
| |
| | dist_true || 0 || 0 || 1
| |
| |-
| |
| | dist_false || 0 || 0 || 0
| |
| |}
| |
|
| |
| 2.
| |
| * test_1 cubre lineas 1,2,8
| |
| * test_2 cubre lineas 1,2,3,4,8
| |
| * test_3 cubre lineas 1,2,3,4,5,7,8
| |
| Por lo que la cobertura de la test suite es de 7/8 líneas.
| |
|
| |
| 3.
| |
| * test_1 cubre C1 por false
| |
| * test_2 cubre C1 true, C2 false
| |
| * test_3 cubre C1 true, C2 true y false, C3 false.
| |
| Por lo que la cobertura de la test suite es de 5/6 branches.
| |
|
| |
|
| == Ejercicio 4 == | | == Ejercicio 4 == |
Línea 167: |
Línea 110: |
|
| |
|
| === Resolución === | | === Resolución === |
| "s1", "s2", ..., "s6" todas recorren el mismo camino, "%12" y "hola+mundo" recorren otros caminos. Por lo tanto como la energía de un input se calcula
| |
| <pre>
| |
| e(s) = 1 / f(p(s))^a
| |
| </pre>
| |
| Donde f(p(s)) es la frecuencia de apariciones del camino s y el exponente a es 3, la probabilidad de elegir "hola+mundo" será
| |
| [[Archivo:IngSoft2 2parcial 06-10-2022 4-energia.jpg|miniaturadeimagen|alt=energía de hola más mundo dividido 6 por energía de inputs s numero mas energía de input porcentaje 12 mas energía de input hola mas mundo es igual a 1 sobre 1 al cubo en el denominador y seis por 1 sobre 6 al cubo mas 1 sobre 1 al cubo mas 1 sobre 1 al cubo. Es igual a 1 en el denominador y uno sobre 6 al cuadrado mas 1 mas 1 en el denominador|Probabilidad de elegir el input "hola+mundo"]]
| |