Análise estática de código
O FIT é uma ferramenta de automação e colaboração criada por Ward Cuningham que permite que várias pessoas envolvidas no projeto trabalhem juntas para a captura, a implementação e teste das regras do software.
O FIT é uma ponte entre a manifestação de um requisito baseando-se em Test-Driven Development.
Elementos Básicos
Figura 1 - Elementos básicos do FIT.
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.
Operação Divisão profit.test.DivisaoFixture dividendo divisor resultado()
10
2
5
15
2
7.5
15
3
5
11.5
0
0
Figura 2 – Alguns dados para teste da Operação Divisão.
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.
Exemplo Fixture package profit.test;
import profit.application.DivisaoFacade; import fit.ColumnFixture;
public class DivisaoFixture extends ColumnFixture { public Double dividendo; public Double divisor; private DivisaoFacade facade = new DivisaoFacade(); public Double resultado() throws Exception { return facade.execute(dividendo, divisor); }
}
Figura 3 – DivisaoFixture, testando e direcionando o desenvolvimento.
Após rodar o FIT os resultados de cada teste são gerados.
Operação Divisão profit.test.DivisaoFixture dividendo divisor resultado()
10
2
5
15
2
7.5
15
3
5
11.5
0
0
java.lang.Exception: Divisão por zero. at profit.application.DivisaoFacade.execute(DivisaoFacade.java:6) at profit.test.DivisaoFixture.resultado(DivisaoFixture.java:14) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at