FIT - Framework for Integration Tests

1,398
-1

Published on

Apresentação sobre o FIT. Ferramenta utilizada para auxiliar na colaboração da área de testes com a área de negócio.

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,398
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
25
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

FIT - Framework for Integration Tests

  1. 1. FIT<br />Framework for IntegratedTest<br />
  2. 2. O FIT é uma ferramenta de automação e colaboração criada por WardCuningham que permite que várias pessoas envolvidas no projeto trabalhem juntas para a captura, a implementação e teste das regras do software.<br />O que é<br />
  3. 3. O FIT é uma ponte entre a manifestação de um requisito baseando-se em Test-DrivenDevelopment.<br />Finalidades<br />
  4. 4. Elementos Básicos<br />
  5. 5. Uma “fixture” é uma classe que liga os dados de teste com o código que resolve os problemas de negócio (implementação).<br />Com as fixtures, os dados de teste se tornam “executáveis” permitindo que as regras de negócio sejam validadas de maneira automatizada.<br />Elementos Básicos (cont.)<br />
  6. 6. Exemplo de fixture: DivisaoFixture, testando e direcionando o desenvolvimento<br />packageprofit.test;<br /> <br />importprofit.application.DivisaoFacade;<br />importfit.ColumnFixture;<br /> <br />publicclassDivisaoFixtureextendsColumnFixture {<br />public Double dividendo;<br />public Double divisor;<br />privateDivisaoFacade facade = newDivisaoFacade();<br />public Double resultado() throws Exception {<br />returnfacade.execute(dividendo, divisor);<br /> } <br />}<br />Elementos Básicos (cont.)<br />
  7. 7. Elementos Básicos (cont.)<br />Os dados para teste são colocados num documento HTML e geralmente em formato de tabela. <br />O cabeçalho desta tabela indica a Fixture (uma classe) que será responsável por direcionar a construção e aplicar os teste.<br />
  8. 8. Resultados do FIT<br />
  9. 9. Nos resultados de teste podemos ver que os resultados corretos foram pintados de verde pelo FIT. Já na última linha, ocorreu um erro devidamente destacado pelo FIT em amarelo.<br />Os testes são direcionados pelas tabelas com os dados de teste que constam num diretório do projeto.<br />Resultados do FIT (cont.)<br />
  10. 10. A FITLibrary, uma extensão muito útil do FIT, possui uma implementação que lê todo um diretório(FolderRunner) e executa os testes.<br />Outra extensão, o FITNesse, permite a entrada dos dados para teste num Wiki próprio. Isso permite uma colaboração até maior com a área de negócios, melhorando a colaboração entre clientes e desenvolvedores.<br />Extensões e Fixtures<br />
  11. 11. O FIT e sua principal extensão, o FITNesse, possuem inúmeros estilos de fixture diferentes. As principais são:<br />ColumnFixture – utilizada para testar regras e cálculos. (vide exemplo anterior)<br />RowFixture – Para testar listas de objetos.<br />ActionFixture – Para testar sequências de ações.<br />Extensões e Fixtures (cont.)<br />
  12. 12. Antes de tudo é aconselhável criar um projeto separado para os testes do FIT. Nesse projeto estarão contidos os HTML que a área de negócio irá construir e fixture que os programadores irão desenvolver, portanto, devido ao tamanho e complexidade é necessário criar um novo projeto.<br />Por default o teste do FIT é gerado na fase de “integration-test” do ciclo de vida de construção do Maven(Build Lifecycle). <br />Automatizando o teste do FIT com Maven<br />
  13. 13. <ul><li>Para que possamos utilizar as fixtures, a classe que executa os testes (fit.FileRunner) e outros recursos torna-se necessário criar uma dependência do projeto com o “fitlibrary”.</li></ul> <dependencies><br /> <!-- FITLibrary --><br /> <dependency><br /> <groupId>org.fitnesse</groupId><br /> <artifactId>fitlibrary</artifactId><br /> <version>20080812</version><br /></dependency><br /> </dependencies><br />Configuração do pom.xml<br />
  14. 14. <ul><li>Para incorporar os testes do FIT ao ciclo de vida do Maven é necessário, além de inserir o plugin “fit-maven-plugin”, uma configuração mínima da sua execução: as tags “outputDirectory” e “sourceDirectory”, respectivamente onde será gerado o resultado e onde estarão os HTML para execução dos testes.
  15. 15. É interessante configurar a tag “ignoreFailures” para true, a fim de que não seja interrompido a construção do projeto mesmo em caso de erro nos testes.</li></ul>Configuração do pom.xml (cont.)<br />
  16. 16. <build><br /> <plugins><br /><!-- FIT --><br /> <plugin><br /> <groupId>org.codehaus.mojo</groupId><br /> <artifactId>fit-maven-plugin</artifactId><br /> <executions><br /> <execution><br /> <phase>integration-test</phase><br /> <configuration><br /> <outputDirectory>${basedir}/target/fit</outputDirectory><br /> <sourceDirectory>${basedir}/src/main/fit</sourceDirectory><br /> <sourceIncludes>**/test*.html</sourceIncludes><br /> <ignoreFailures>true</ignoreFailures><br /> </configuration><br /> <goals><br /> <goal>run</goal><br /> </goals><br /> </execution><br /> </executions><br /> </plugin><br /> </plugins><br /></build><br />Configuração do pom.xml (cont.)<br />
  17. 17. Perguntas<br />

×