SlideShare uma empresa Scribd logo
FITFramework for IntegratedTest
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.O que é
O FIT é uma ponte entre a manifestação de um requisito baseando-se em Test-DrivenDevelopment.Finalidades
Elementos Básicos
Uma “fixture” é uma classe que liga os dados de teste com o código que resolve os problemas de negócio (implementação).Com as fixtures, os dados de teste se tornam “executáveis” permitindo que as regras de negócio sejam validadas de maneira automatizada.Elementos Básicos (cont.)
Exemplo de fixture: DivisaoFixture, testando e direcionando o desenvolvimentopackageprofit.test; importprofit.application.DivisaoFacade;importfit.ColumnFixture; publicclassDivisaoFixtureextendsColumnFixture {public Double dividendo;public Double divisor;privateDivisaoFacade facade = newDivisaoFacade();public Double resultado() throws Exception {returnfacade.execute(dividendo, divisor);	}	}Elementos Básicos (cont.)
Elementos Básicos (cont.)Os dados para teste são colocados num documento HTML e geralmente em formato de tabela. O cabeçalho desta tabela indica a Fixture (uma classe) que será responsável por direcionar a construção e aplicar os teste.
Resultados do FIT
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.Os testes são direcionados pelas tabelas com os dados de teste que constam num diretório do projeto.Resultados do FIT (cont.)
A FITLibrary, uma extensão muito útil do FIT, possui uma implementação que lê todo um diretório(FolderRunner) e executa os testes.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.Extensões e Fixtures
O FIT e sua principal extensão, o FITNesse, possuem inúmeros estilos de fixture diferentes. As principais são:ColumnFixture – utilizada para testar regras e cálculos. (vide exemplo anterior)RowFixture – Para testar listas de objetos.ActionFixture – Para testar sequências de ações.Extensões e Fixtures (cont.)
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.Por default o teste do FIT é gerado na fase de “integration-test” do ciclo de vida de construção do Maven(Build Lifecycle). Automatizando o teste do FIT com Maven
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”. <dependencies>    <!-- FITLibrary -->    <dependency>    	<groupId>org.fitnesse</groupId>    	<artifactId>fitlibrary</artifactId>    	<version>20080812</version></dependency>  </dependencies>Configuração do pom.xml
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.
É 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.Configuração do pom.xml (cont.)
<build>   <plugins><!-- FIT -->	<plugin>          <groupId>org.codehaus.mojo</groupId>          <artifactId>fit-maven-plugin</artifactId>          <executions>             <execution>                <phase>integration-test</phase>                <configuration>                   <outputDirectory>${basedir}/target/fit</outputDirectory>                   <sourceDirectory>${basedir}/src/main/fit</sourceDirectory>                   <sourceIncludes>**/test*.html</sourceIncludes>                   <ignoreFailures>true</ignoreFailures>                </configuration>                <goals>                   <goal>run</goal>                </goals>             </execution>          </executions>       </plugin>   </plugins></build>Configuração do pom.xml (cont.)

Mais conteúdo relacionado

PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Protractor, por Daniel Amorim
PPTX
Julho 2016 - BDD com SpecFlow
PDF
Mutant Testing: um mundo para um X-Testing.
PDF
Protractor - Testando aplicações AngularJS end to end
ODP
Protractor - Testando aplicações AngularJS end to end
PPTX
Cobertura - Ferramenta para teste de cobertura
PPTX
EMMA - Ferramenta para teste de cobertura
2024 Trend Updates: What Really Works In SEO & Content Marketing
Protractor, por Daniel Amorim
Julho 2016 - BDD com SpecFlow
Mutant Testing: um mundo para um X-Testing.
Protractor - Testando aplicações AngularJS end to end
Protractor - Testando aplicações AngularJS end to end
Cobertura - Ferramenta para teste de cobertura
EMMA - Ferramenta para teste de cobertura
Anúncio

FIT - Framework for Integration Tests

  • 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.O que é
  • 3. O FIT é uma ponte entre a manifestação de um requisito baseando-se em Test-DrivenDevelopment.Finalidades
  • 5. Uma “fixture” é uma classe que liga os dados de teste com o código que resolve os problemas de negócio (implementação).Com as fixtures, os dados de teste se tornam “executáveis” permitindo que as regras de negócio sejam validadas de maneira automatizada.Elementos Básicos (cont.)
  • 6. Exemplo de fixture: DivisaoFixture, testando e direcionando o desenvolvimentopackageprofit.test; importprofit.application.DivisaoFacade;importfit.ColumnFixture; publicclassDivisaoFixtureextendsColumnFixture {public Double dividendo;public Double divisor;privateDivisaoFacade facade = newDivisaoFacade();public Double resultado() throws Exception {returnfacade.execute(dividendo, divisor); } }Elementos Básicos (cont.)
  • 7. Elementos Básicos (cont.)Os dados para teste são colocados num documento HTML e geralmente em formato de tabela. O cabeçalho desta tabela indica a Fixture (uma classe) que será responsável por direcionar a construção e aplicar os teste.
  • 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.Os testes são direcionados pelas tabelas com os dados de teste que constam num diretório do projeto.Resultados do FIT (cont.)
  • 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.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.Extensões e Fixtures
  • 11. O FIT e sua principal extensão, o FITNesse, possuem inúmeros estilos de fixture diferentes. As principais são:ColumnFixture – utilizada para testar regras e cálculos. (vide exemplo anterior)RowFixture – Para testar listas de objetos.ActionFixture – Para testar sequências de ações.Extensões e Fixtures (cont.)
  • 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.Por default o teste do FIT é gerado na fase de “integration-test” do ciclo de vida de construção do Maven(Build Lifecycle). Automatizando o teste do FIT com Maven
  • 13. 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”. <dependencies> <!-- FITLibrary --> <dependency> <groupId>org.fitnesse</groupId> <artifactId>fitlibrary</artifactId> <version>20080812</version></dependency> </dependencies>Configuração do pom.xml
  • 14. 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. É 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.Configuração do pom.xml (cont.)
  • 16. <build> <plugins><!-- FIT --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>fit-maven-plugin</artifactId> <executions> <execution> <phase>integration-test</phase> <configuration> <outputDirectory>${basedir}/target/fit</outputDirectory> <sourceDirectory>${basedir}/src/main/fit</sourceDirectory> <sourceIncludes>**/test*.html</sourceIncludes> <ignoreFailures>true</ignoreFailures> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins></build>Configuração do pom.xml (cont.)