FITNesse FITNesse Alejandro Araújo Una herramienta para Una herramienta para -Pruebas de aceptación -Pruebas de aceptación ejecutables ejecutables -Mejorar la colaboración en el -Mejorar la colaboración en el desarrollo de software. desarrollo de software.
Presentación sobre FITNesse brindada a personal del CES (Centro de Ensayos de Software) el 11/05/07-19horas-Salón de Posgrados- Instituto de Computación, Facultad de Ingeniería UDELAR, Montevideo, Uruguay,
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
FITNesseFITNesse
Alejandro Araújo
Una herramienta para Una herramienta para
-Pruebas de aceptación -Pruebas de aceptación ejecutablesejecutables
-Mejorar la colaboración en -Mejorar la colaboración en el desarrollo de software.el desarrollo de software.
• FIT :FIT : Marco de trabajo para pruebas integradas Marco de trabajo para pruebas integradas de aceptaciónde aceptación
• Creador: Ward CunninghamCreador: Ward Cunningham• Sitio: fit.c2.com Sitio: fit.c2.com • Libro: FIT for developing softwareLibro: FIT for developing software
“FIT es una herramienta para mejorar la colaboración en el desarrollo de software, desde etapas tempranas, entre clientes, programadores y testers. Permite que todos los actores conozcan que debería hacer el software y lo que hace; comparando automáticamente los resultados actuales con los esperados por los clientes.” (W.Cunningham, http://fit.c2.com/?WelcomeVisitors)
FIT: Presentación
• Lee tablas que contienen información para la prueba y los resultados esperados. (Dirigido por datos y palabras claves).
• Cada tabla es interpretada por una clase (“Fixture”)• Compara el resultado de correr el programa bajo prueba
• FitLibrary FitLibrary (Extensión creada por R.Mudridge)(Extensión creada por R.Mudridge)
• DoFixture• Otras fixtures (p/ej SetupFixture)
• Programado en Java con FitServers en varios lenguajes
• Reflection
““Toda implementación de Toda implementación de FIT debe instrumentar FIT debe instrumentar las tres fixtures básicas”las tres fixtures básicas”
(J.Shoares)(J.Shoares)
Características
• ColumnFixtureColumnFixtureSi el total de la compra es mayor que $ 1000 se Si el total de la compra es mayor que $ 1000 se realizará un 5% de descuento.realizará un 5% de descuento.
• ActionFixtureActionFixtureUn usuario de chat se conecta; crea una sala e ingresa. Un usuario de chat se conecta; crea una sala e ingresa. Otro usuario se conecta e ingresa a la misma sala. Se debe Otro usuario se conecta e ingresa a la misma sala. Se debe comprobar que la sala tiene dos ocupantes.comprobar que la sala tiene dos ocupantes.
• RowFixtureRowFixtureLos ocupantes de la sala de chat “Lotr” son los usuarios Anna y Luke
Caso de prueba
Resultado de la prueba
Características – Fixtures básicas
• DoFixtureDoFixtureUn usuario se conecta al servidor, crea una sala de chat y entra a dicha sala. Se verifica que sea el único ocupante.El usuario se desconecta. Se verifica que la sala está vacía
Caso de prueba
Resultado de la prueba
Características – FitLibrary
• DoFixtureDoFixtureBuscará por reflection los nombres de los métodos que obtiene concatenando los valores en las columnas impares. Pasa como argumentos los valores de las columnas pares.
• Ejecución de fixtures básicas en FitNesseEjecución de fixtures básicas en FitNesse• ColumnFixture• ActionFixture• RowFixture
• Ejecución de conjunto de pruebas en FitNesseEjecución de conjunto de pruebas en FitNesse• Ejecución en Eclipse con plugin FitNesseEjecución en Eclipse con plugin FitNesse
Duración: Duración: 10 minutos.10 minutos.
• Wiki de FITNesseWiki de FITNesse
• Creación y edición simple de páginasCreación y edición simple de páginas
|The user navigates to the URL|http://www.google.com||The page has the title|Google||The page has an element named|q||The page has an element named|btnG||The user Types|Cory Foy|in the field named|q||The user clicks on the button named|btnG||The user closes the browser|
Ventajas Ventajas • Consolida las pruebas en un wiki• EATDD (Ejemplifica – Documenta)• Código libre• Tabular • Código en lenguaje de la aplicación• Dirigido por palabras claves y datos• Útil también en prueba unitaria
• Inicializar y restaurar• Combinatoria
• No se detiene ante el primer error• No es necesaria programación para escribir y ejecutar pruebas
Desventajas - ProblemasDesventajas - Problemas • Consolida las pruebas en un wiki(Falta de integración con ambiente de desarrollo)
• Programación en lenguaje de la aplicación• Conocimiento interno de la aplicación• Esperar a que finalicen todas las pruebas• Curva de aprendizaje• Gran cantidad de tablas y fixtures • Reelaboración (Refactoring) • Integración continua • Versionado muy pobre• ¿Gestión del proceso?
Recomendaciones (?)Recomendaciones (?)• Incluir los requerimientos de fixtures al Incluir los requerimientos de fixtures al
planificar cada iteraciónplanificar cada iteración• Protocolo para utilización en equipoProtocolo para utilización en equipo• Documentar las pruebas en las páginas wikiDocumentar las pruebas en las páginas wiki• Instrumentar el versionadoInstrumentar el versionado• Definir nomenclatura y “gramática”Definir nomenclatura y “gramática”• Evitar tablas de acciones extensas Evitar tablas de acciones extensas • Sustituir ActionFixture por DoFixtureSustituir ActionFixture por DoFixture• Integrar con otras herramientasIntegrar con otras herramientas• Integrar con ambiente de desarrolloIntegrar con ambiente de desarrollo• Organizar pruebas en conjuntos (suites)Organizar pruebas en conjuntos (suites)• Patrones (BOCD)Patrones (BOCD)
BibliografíaBibliografía• Adzic, Gojko “Getting Fit with Net” www.gojko.net/fitnesse/fitnesse.pdf• Adzic, GojKo “DbFit” http://gojko.net/fitnesse/dbfit/reference/• Aquino, Mario FIT, http://www.ociweb.com/jnb/jnbDec2005.html• BandXI International, “ConFit", http://www.bandxi.com/fitnesse/index.html• Cory Foy http://www.cornetdesign.com/2006/09/fitnesse-selenium-wrapper.html• Cunninghan W, "Welcome Visitors. FIT", http://fit.c2.com/• Eclipse http://www.eclipse.org• FITClipse http://ebe.cpsc.ucalgary.ca/ebe/Wiki.jsp?page=FitClipse• Glover A "Resolve to get FIT Try FIT and JUnit for a requirements testing workout!"
http://www-128.ibm.com/developerworks/java/library/j-cq02286/• Jain N "Running FitNesse Inside the Container", http://www.jroller.com/page/njain?
entry=running_fitnesse_inside_the_container• http://tech.groups.yahoo.com/group/fitnesse/• Kare S, Marius T "AutAT:tool for automatic acceptance testing", tesis
maestría,BUCS, Dep.of Computer Science, Norwegian Univ.Science and Technology • Miller, J "Create a Testing DSL with FitNesse and Selenium",
http://codebetter.com/blogs/jeremy.miller/archive/2006/07/15/147400.aspx• Mugridge R, Cunningham W, "Fit for Developing Software: Framework For Integrated
Tests", Prentice Hall, 2005• Selenium http://www.openqa.org/selenium/• STIQ • Vettrivel V "FIT and Eclipse: Testing with the Extended FIT Eclipse plug-in",
http://www-128.ibm.com/developerworks/aix/library/au-fiteclipse/• Vlagsma P. "FitBook Examples ported to .NET 2.0",
http://www.vlagsma.com/fitnesse/Default.aspx• Welcome to FitNesse, http://www.fitnesse.org• Rick Mugridge http://www.zibreve.org