Title: L
1Líneas de investigación
- Macario Polo Usaola
- Grupo Alarcos
2Mutación de casos de prueba
- Account.deposit.deposit
- Account.deposit.withdraw
3Mutación de casos de prueba
- Account.deposit.deposit
- Account.deposit.withdraw
- Account.withdraw
operador
4Mutación de casos de prueba
- Operadores
- CL (Comment Line) elimina una llamada.
- IN (Interchange of calls) intercambia llamadas
- RC (Repeat call) repite llamada
- ZE (Zero/null) sustituye por cero o por null
- MAX (Maximum)/MIN (Minimum) cambia un valor
numérico por el máximo/mínimo admitido - NEG (Negativize) multiplica por -1
- INC (Increasing)/ DEC (Decreasing) suma/resta 1
5Mutación de casos de prueba
Original test case Account onew Account(100) o.deposit(100, A deposit) o.withdraw(0, A withdrawal) o.deposit(50, A deposit)
Test case mutants / Applied the CL operator / Account onew Account(100) // o.deposit(100, A deposit) ? o.withdraw(0, A withdrawal) o.deposit(50, A deposit)
Test case mutants / Applied the IN operator / Account onew Account(100) o.deposit(100, A deposit) o.deposit(50, A deposit) ? o.withdraw(0, A withdrawal) ?
Test case mutants / Applied the ZE operator / Account onew Account(100) o.deposit(100, A deposit) o.withdraw(0, A withdrawal) ? o.deposit(50, A deposit)
6Mutación de casos de prueba
7Mutación de casos de prueba
8Mutación de orden 2
- Pasos en pruebas con mutación
- Generación de mutantes
- Ejecución de casos de prueba contra mutantes
- Análisis de resultados
9Mutación de orden 2
10Mutación de orden 2
P M1 M2 M1,2
int foo(int x) int r x 1 r r 1 return r int foo(int x) int r x - 1 () r r 1 return r int foo(int x) int r x 1 r r 1 () return r int foo(int x) int r x 1 () r r 1 () return r
Evidentemente
El recíproco es cierto?
11Mutación de orden 2
Evidentemente
El recíproco es cierto?
12Mutación de orden 2
- Algoritmos de combinación
LastToFirst DifferentOperators RandomMix
13Mutación de orden 2
14Mutación de orden 2
- Resultados experimentales
15Mutación de orden 2
16Mutación de orden 2
- Resultados en programas no benchmark
17Mutación de orden 2
18Mutación de orden 2