Testing
-
Upload
kdeespana -
Category
Technology
-
view
331 -
download
1
Transcript of Testing
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Testeando tu códigoAlbert Astals Cid
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Tipos de testing
Unit Testing
QTestLib
System Testing
Testability
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib
Forma parte de Qt
C++
Introducido en Qt 4.1
Dirigido a Unit Testing (white box)
Soporte para GUI, señales, eventos
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib
Forma parte de Qt
C++
Introducido en Qt 4.1
Dirigido a Unit Testing (white box)
Soporte para GUI, señales, eventos
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib (test básicos)
Crear una clase que hereda de QObject
Cada slot es un test
QVERIFY para condiciones true/false
QCOMPARE para comparaciones de dos valores
ejemplo1/main.cpp
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib (compilar + ejecutar)
Linkar con qtestlib
./programa_test
./programa_test nombre_de_slot
Varios flags
-random
-silent
-xml
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib (datos para tests)
Permite añadir “iteraciones” a un test sin añadir código
QTest::addColumn, para añadir columna de datos
QTest::newRow, para añadir fila de datos
QFETCH para recuperar datos de una fila
ejemplo2/main.cpp
Usar flag -v2 para ver que realmente se testean los 3 casos ;-)
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
QTestLib (tests gráficos)
QTest::key[Clicks|Click|Press|Release]
QTest::mouse[Click|DClick|Move|Press|Release]
QTest::touchEvent()
QTest::qWaitForWindowShown
QSignalSpy
ejemplo3/main.cpp
ejemplo4/main.cpp
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Testability
Desarrollado por Nokia (no el departamento de Qt)
Infraestructura cliente/servidor
Scripts Ruby
No es parte de Qt (Qt 4.6 añade soporte)
Dirigido a System Testing (gray box)
Soporte para GUI, señales, etc
kdelibs >= 4.8.3 (para programas basados en kdelibs)
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Testability (tdriver_visualizer)
Visualizador de la estructura de la aplicación
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código
Testability (scripts)
Ruby
Acceso a metodos y propiedades del objeto
Ejecutados en el servidor
ejemplo5/test.rb
Sebastian Kügler <[email protected]>, FrOSCon 2006
Akademy-es 2012 – Zaragoza – 19 de Mayo - Albert Astals Cid <[email protected]>
Testeando tu código