SlideShare una empresa de Scribd logo
1 de 26
Testeo automatizado con T2 Wishnu Prasetya Universidad de Utrecht Países Bajos Tanja Vos Universidad Politécnica  de Valencia Francisco Valverde
Líneas de Investigación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T2  =  Testing Tool   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
T2 esta basado en secuencias/trazas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],x.m k (…)     x.a l  = ….     x.m i (…)     x.m j (…)     x.m h (…)     x.a k  = …. … Generados aleatoriamente
Distribución y utilización de T2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Usar T2 con Junit import org.junit.Test; public class MyTest {     @Test     public void test1() {        // Call T2, pass the full name  // of the target class to it:        Sequenic.T2.Main.Junit(SortedList.class.getName()) ;     } } ,[object Object],[object Object],[object Object]
Keep the bar green to keep the code clean import org.junit.Test; public class MyTest {     @Test     public void test1() {        // Call T2, pass the full name  // of the target class to it:        Sequenic.T2.Main.Junit(SortedList.class.getName()) ;     } } ,[object Object],[object Object],[object Object]
T2 en Netbeans + Junit + EMMA
Ejemplo: sorted list public class SortedList { private  LinkedList<Comparable> s   private  Comparable max   public SortedList() public void insert(Comparable x)  public Comparable get() } public  SortedList()  {   s =  new  LinkedList<Comparable>();  } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejecutamos T2…….. ,[object Object]
Sin especificaciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Especificaciones “in-code” public class SortedList { private LinkedList<Comparable> s  private Comparable max  public SortedList() public … insert(Comparable x)  public … get()    } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Editando el código de  get . No es siempre la solución deseable…
Especificaciones “in-code” public class SortedList { private LinkedList<Comparable> s  private Comparable max  public SortedList() public … insert(Comparable x)  public … get()    } public  Comparable  get_spec () {  assert   s.isEmpty()  :  &quot;PRE&quot;  Comparable  ret = get()  assert  … ret.compareTo(s.getLast())    0  :  &quot;POST&quot;  return ret  } Cuando T2 selecciona los métodos para la secuencia comprueba si existe un  metodo_spec. Si existe lo utiliza en lugar del método original
Especificar un invariante parcial public class SortedList { private LinkedList<Comparable> s  private Comparable max  public SortedList() public … insert(Comparable x)  public … get()    } public  boolean  classinv ()  {   return    s.isEmpty()    s.contains(max);  } T2 verifica después de cada llamada si se cumple el invariante
Ejecutamos T2…….. ,[object Object]
** Error trace [1] : ** CREATING target object: (U2.T2.examples.SortedList) @ 0 s (LinkedList)  @  1 max NULL ** STEP 1. ** Calling method insert with: ** Receiver: target-obj ** Arg [0:] (Integer) : 29 ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList)  @  3 [0] (Integer) : 29 max (Integer) : 29 ** STEP 2. ** Calling method insert with: ** Receiver: target-obj ** Arg [0:] (Integer) : 0 ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList)  @  5 [0] (Integer) : 0 [1] (Integer) : 29 max (Integer) : 0 ** STEP 3. ** Calling method get_spec with: ** Receiver: target-obj ** Throwing java.lang.AssertionError: POST ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList)  @  3 [0] (Integer) : 29 max (Integer) : 29 ** Assertion VIOLATED! ** Strack trace: java.lang.AssertionError: POST at U2.T2.examples.SortedList.get_spec(SortedList.java:44) ... Un error en insert detectado por la post-condición de get…. La ventaja del testeo basado en secuencias…..
Ejemplo: sorted list public class SortedList { private  LinkedList<Comparable> s   private  Comparable max   public SortedList() public void insert(Comparable x)  public Comparable get() } ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],if   x  >  max     max=x
Sin especificaciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modelo de aplicación ,[object Object],[object Object],[object Object]
Modelo de aplicación ,[object Object],[object Object],[object Object],[object Object],Guiado por el modelo de aplicación..... Recordatorio: x.m k (…)     x.a l  = ….     x.m i (…)     x.m j (…)     x.m h (…)     x.a k  = …. …
Ejemplo Obtenido por T2: nombre del ultimo  método/atributo llamado/asignado Indica en que estado del modelo nos  encontramos Alterna en cada llamada entre el estado 1 y 2 del modelo de aplicacion Cuando no se cumple T2 descarta el paso de la secuencia automáticamente El modelo solo permite llamar a  inc  y a  dec  alternativamente
Ejemplo
Algunos resultados Class #Meth Max. Cyclo # Inst Block Cov. (%) Branch Cov. (%) Time  (ms) Fault #step BinarySearch Tree 18 7 359 94 72 907 No 20 K SortedList 7 6 212 98 85 16 yes 0.5 K Show 13 33 844 84 75 2500 no 5 K Pool 10 7 340 91 69 531 no 5 K
Conclusiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Bajarlo de: http://www.cs.uu.nl/wiki/WP/T2Framework
Contactar
Modelo de aplicación x : C Static vars Application  -step (public) methods of C

Más contenido relacionado

La actualidad más candente

Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaDaniel Gómez
 
Metodos en java
Metodos en javaMetodos en java
Metodos en javaaleja0940
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrenteedgar muñoz
 
Ejercicios
EjerciciosEjercicios
EjerciciosEzmee XD
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametroskenixxx
 
Portafolio segundo parcial
Portafolio segundo parcialPortafolio segundo parcial
Portafolio segundo parcialHugo Arechiga
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2climancc
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Curva de daño de un transformador c++
Curva de daño de un transformador c++Curva de daño de un transformador c++
Curva de daño de un transformador c++Marco Jiménez
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguajeLaura Folgado Galache
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
 
Curso java desde cero nivel i - modulo v
Curso java desde cero   nivel i - modulo vCurso java desde cero   nivel i - modulo v
Curso java desde cero nivel i - modulo vGiovanny Guillen
 

La actualidad más candente (20)

MéTodos Java
MéTodos JavaMéTodos Java
MéTodos Java
 
Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - Algoritmia
 
5 metodos y parametros
5 metodos y parametros5 metodos y parametros
5 metodos y parametros
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 
Programación Java
Programación JavaProgramación Java
Programación Java
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrente
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametros
 
Portafolio segundo parcial
Portafolio segundo parcialPortafolio segundo parcial
Portafolio segundo parcial
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
 
Java básico
Java  básicoJava  básico
Java básico
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Curva de daño de un transformador c++
Curva de daño de un transformador c++Curva de daño de un transformador c++
Curva de daño de un transformador c++
 
Herencia
HerenciaHerencia
Herencia
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje
 
Semana 1 Estructuras de Datos en Java
Semana 1   Estructuras de Datos en JavaSemana 1   Estructuras de Datos en Java
Semana 1 Estructuras de Datos en Java
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
Curso java desde cero nivel i - modulo v
Curso java desde cero   nivel i - modulo vCurso java desde cero   nivel i - modulo v
Curso java desde cero nivel i - modulo v
 
Taller interfaz 2
Taller interfaz 2Taller interfaz 2
Taller interfaz 2
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 

Similar a 6 Upv Solo Pruebas 2009

Por que java
Por que javaPor que java
Por que javareivax
 
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)Victor Asanza
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en JavaManuel Antonio
 
Java problems
Java problemsJava problems
Java problemsNoe Lopez
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadoresr0na91
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyJose Juan R. Zuñiga
 
Tdd y clean code SG campus
Tdd y clean code SG campusTdd y clean code SG campus
Tdd y clean code SG campusSoftware Guru
 
Ucv 2014 1_ads clase 15
Ucv 2014 1_ads clase 15Ucv 2014 1_ads clase 15
Ucv 2014 1_ads clase 15Taringa!
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepcionesJuan Mancilla
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcialmtemarialuisa
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 

Similar a 6 Upv Solo Pruebas 2009 (20)

Por que java
Por que javaPor que java
Por que java
 
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
⭐⭐⭐⭐⭐ SOLUCIÓN LECCIÓN SISTEMAS EMBEBIDOS, 2do Parcial (2020 PAO 1)
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
Java problems
Java problemsJava problems
Java problems
 
Sobrecarga de operadores
Sobrecarga de operadoresSobrecarga de operadores
Sobrecarga de operadores
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
Tdd y clean code SG campus
Tdd y clean code SG campusTdd y clean code SG campus
Tdd y clean code SG campus
 
Ucv 2014 1_ads clase 15
Ucv 2014 1_ads clase 15Ucv 2014 1_ads clase 15
Ucv 2014 1_ads clase 15
 
Tarea sesion 14
Tarea sesion 14Tarea sesion 14
Tarea sesion 14
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 
Java 8
Java 8Java 8
Java 8
 
Lenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetosLenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetos
 
Viernes Tecnicos DTrace
Viernes Tecnicos DTraceViernes Tecnicos DTrace
Viernes Tecnicos DTrace
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Ejerciciosparaelprimerparcial
EjerciciosparaelprimerparcialEjerciciosparaelprimerparcial
Ejerciciosparaelprimerparcial
 
JAVA.PPT
JAVA.PPTJAVA.PPT
JAVA.PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
JAVA (1).PPT
JAVA (1).PPTJAVA (1).PPT
JAVA (1).PPT
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 

Más de Pepe

05 Almira Labs VII Semana CMMI
05 Almira Labs VII Semana CMMI05 Almira Labs VII Semana CMMI
05 Almira Labs VII Semana CMMIPepe
 
03 Tecsidel VII Semana CMMI
03 Tecsidel VII Semana CMMI03 Tecsidel VII Semana CMMI
03 Tecsidel VII Semana CMMIPepe
 
04 Panel VII Semana CMMI
04  Panel VII Semana CMMI04  Panel VII Semana CMMI
04 Panel VII Semana CMMIPepe
 
01 Ministerio de Defensa VII Semana CMMI
01 Ministerio de Defensa VII Semana CMMI01 Ministerio de Defensa VII Semana CMMI
01 Ministerio de Defensa VII Semana CMMIPepe
 
01 Insa VI Semana CMMI
01 Insa VI Semana CMMI01 Insa VI Semana CMMI
01 Insa VI Semana CMMIPepe
 
06 IAPSolutions VI Semana CMMI
06 IAPSolutions VI Semana CMMI06 IAPSolutions VI Semana CMMI
06 IAPSolutions VI Semana CMMIPepe
 
05 Visure VI Semana del CMMI
05 Visure VI Semana del CMMI05 Visure VI Semana del CMMI
05 Visure VI Semana del CMMIPepe
 
04 Grupo Gesfor VI Semana CMMI
04 Grupo Gesfor VI Semana CMMI04 Grupo Gesfor VI Semana CMMI
04 Grupo Gesfor VI Semana CMMIPepe
 
03 Siconet VI Semana CMMI
03 Siconet VI Semana CMMI03 Siconet VI Semana CMMI
03 Siconet VI Semana CMMIPepe
 
02 Avanade VI Semana CMMI
02 Avanade VI Semana CMMI02 Avanade VI Semana CMMI
02 Avanade VI Semana CMMIPepe
 
09 Gesein VI Semana CMMI
09 Gesein VI Semana CMMI09 Gesein VI Semana CMMI
09 Gesein VI Semana CMMIPepe
 
07 Caelum VI Semana CMMI
07 Caelum VI Semana CMMI07 Caelum VI Semana CMMI
07 Caelum VI Semana CMMIPepe
 
08 Consejo VI Semana CMMI
08 Consejo VI Semana CMMI08 Consejo VI Semana CMMI
08 Consejo VI Semana CMMIPepe
 
02 Deloitte SFIC 2009
02 Deloitte SFIC 200902 Deloitte SFIC 2009
02 Deloitte SFIC 2009Pepe
 
08 AEC SFIC 2009
08 AEC SFIC 200908 AEC SFIC 2009
08 AEC SFIC 2009Pepe
 
03 IDC SFIC 2009
03 IDC SFIC 200903 IDC SFIC 2009
03 IDC SFIC 2009Pepe
 
18 Inycom SFIC 2009
18 Inycom SFIC 200918 Inycom SFIC 2009
18 Inycom SFIC 2009Pepe
 
19 AEMES SFIC 2009
19 AEMES SFIC 200919 AEMES SFIC 2009
19 AEMES SFIC 2009Pepe
 
17 IBM SFIC 2009
17 IBM SFIC 200917 IBM SFIC 2009
17 IBM SFIC 2009Pepe
 
16 Vector Software SFIC 2009
16 Vector Software SFIC 200916 Vector Software SFIC 2009
16 Vector Software SFIC 2009Pepe
 

Más de Pepe (20)

05 Almira Labs VII Semana CMMI
05 Almira Labs VII Semana CMMI05 Almira Labs VII Semana CMMI
05 Almira Labs VII Semana CMMI
 
03 Tecsidel VII Semana CMMI
03 Tecsidel VII Semana CMMI03 Tecsidel VII Semana CMMI
03 Tecsidel VII Semana CMMI
 
04 Panel VII Semana CMMI
04  Panel VII Semana CMMI04  Panel VII Semana CMMI
04 Panel VII Semana CMMI
 
01 Ministerio de Defensa VII Semana CMMI
01 Ministerio de Defensa VII Semana CMMI01 Ministerio de Defensa VII Semana CMMI
01 Ministerio de Defensa VII Semana CMMI
 
01 Insa VI Semana CMMI
01 Insa VI Semana CMMI01 Insa VI Semana CMMI
01 Insa VI Semana CMMI
 
06 IAPSolutions VI Semana CMMI
06 IAPSolutions VI Semana CMMI06 IAPSolutions VI Semana CMMI
06 IAPSolutions VI Semana CMMI
 
05 Visure VI Semana del CMMI
05 Visure VI Semana del CMMI05 Visure VI Semana del CMMI
05 Visure VI Semana del CMMI
 
04 Grupo Gesfor VI Semana CMMI
04 Grupo Gesfor VI Semana CMMI04 Grupo Gesfor VI Semana CMMI
04 Grupo Gesfor VI Semana CMMI
 
03 Siconet VI Semana CMMI
03 Siconet VI Semana CMMI03 Siconet VI Semana CMMI
03 Siconet VI Semana CMMI
 
02 Avanade VI Semana CMMI
02 Avanade VI Semana CMMI02 Avanade VI Semana CMMI
02 Avanade VI Semana CMMI
 
09 Gesein VI Semana CMMI
09 Gesein VI Semana CMMI09 Gesein VI Semana CMMI
09 Gesein VI Semana CMMI
 
07 Caelum VI Semana CMMI
07 Caelum VI Semana CMMI07 Caelum VI Semana CMMI
07 Caelum VI Semana CMMI
 
08 Consejo VI Semana CMMI
08 Consejo VI Semana CMMI08 Consejo VI Semana CMMI
08 Consejo VI Semana CMMI
 
02 Deloitte SFIC 2009
02 Deloitte SFIC 200902 Deloitte SFIC 2009
02 Deloitte SFIC 2009
 
08 AEC SFIC 2009
08 AEC SFIC 200908 AEC SFIC 2009
08 AEC SFIC 2009
 
03 IDC SFIC 2009
03 IDC SFIC 200903 IDC SFIC 2009
03 IDC SFIC 2009
 
18 Inycom SFIC 2009
18 Inycom SFIC 200918 Inycom SFIC 2009
18 Inycom SFIC 2009
 
19 AEMES SFIC 2009
19 AEMES SFIC 200919 AEMES SFIC 2009
19 AEMES SFIC 2009
 
17 IBM SFIC 2009
17 IBM SFIC 200917 IBM SFIC 2009
17 IBM SFIC 2009
 
16 Vector Software SFIC 2009
16 Vector Software SFIC 200916 Vector Software SFIC 2009
16 Vector Software SFIC 2009
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (10)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

6 Upv Solo Pruebas 2009

  • 1. Testeo automatizado con T2 Wishnu Prasetya Universidad de Utrecht Países Bajos Tanja Vos Universidad Politécnica de Valencia Francisco Valverde
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. T2 en Netbeans + Junit + EMMA
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Especificaciones “in-code” public class SortedList { private LinkedList<Comparable> s private Comparable max public SortedList() public … insert(Comparable x) public … get() } public Comparable get_spec () { assert  s.isEmpty() : &quot;PRE&quot; Comparable ret = get() assert … ret.compareTo(s.getLast())  0 : &quot;POST&quot; return ret } Cuando T2 selecciona los métodos para la secuencia comprueba si existe un metodo_spec. Si existe lo utiliza en lugar del método original
  • 14. Especificar un invariante parcial public class SortedList { private LinkedList<Comparable> s private Comparable max public SortedList() public … insert(Comparable x) public … get() } public boolean classinv () { return  s.isEmpty()  s.contains(max); } T2 verifica después de cada llamada si se cumple el invariante
  • 15.
  • 16. ** Error trace [1] : ** CREATING target object: (U2.T2.examples.SortedList) @ 0 s (LinkedList) @ 1 max NULL ** STEP 1. ** Calling method insert with: ** Receiver: target-obj ** Arg [0:] (Integer) : 29 ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList) @ 3 [0] (Integer) : 29 max (Integer) : 29 ** STEP 2. ** Calling method insert with: ** Receiver: target-obj ** Arg [0:] (Integer) : 0 ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList) @ 5 [0] (Integer) : 0 [1] (Integer) : 29 max (Integer) : 0 ** STEP 3. ** Calling method get_spec with: ** Receiver: target-obj ** Throwing java.lang.AssertionError: POST ** Target object after the step: (U2.T2.examples.SortedList) @ 0 s (LinkedList) @ 3 [0] (Integer) : 29 max (Integer) : 29 ** Assertion VIOLATED! ** Strack trace: java.lang.AssertionError: POST at U2.T2.examples.SortedList.get_spec(SortedList.java:44) ... Un error en insert detectado por la post-condición de get…. La ventaja del testeo basado en secuencias…..
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Ejemplo Obtenido por T2: nombre del ultimo método/atributo llamado/asignado Indica en que estado del modelo nos encontramos Alterna en cada llamada entre el estado 1 y 2 del modelo de aplicacion Cuando no se cumple T2 descarta el paso de la secuencia automáticamente El modelo solo permite llamar a inc y a dec alternativamente
  • 23. Algunos resultados Class #Meth Max. Cyclo # Inst Block Cov. (%) Branch Cov. (%) Time (ms) Fault #step BinarySearch Tree 18 7 359 94 72 907 No 20 K SortedList 7 6 212 98 85 16 yes 0.5 K Show 13 33 844 84 75 2500 no 5 K Pool 10 7 340 91 69 531 no 5 K
  • 24.
  • 26. Modelo de aplicación x : C Static vars Application  -step (public) methods of C