TAITI é uma ferramenta para predizer os arquivos que um desenvolvedor precisará alterar para realizar uma tarefa de programação, como o desenvolvimento de uma nova funcionalidade de sistema, e assim estimar o risco de conflito de merge entre tarefas a serem desenvolvidas em paralelo por uma equipe. Ela se aplica à projetos Rails que adotam a dinâmica de BDD (Behavior Driven Development) com o Cucumber para a escrita de testes de aceitação automatizados e o PivotalTracker para gerenciamento de tarefas do projeto. TAITI foi desenvolvida como um plugin para a IDE RubyMine da JetBrains, também compatível com o IntelliJ Ultimate (com o plugin para Ruby).
TAITI está em desenvolvimento, segundo uma abordagem iterativa e incremental. Para fins de avaliação da interface gráfica, foi desenvolvida uma primeira versão que apenas lida com a organização da informação necessária para TAITI predizer os arquivos que o desenvolvedor precisará alterar para realizar uma tarefa de programação. Para instalar TAITI é preciso:
- Instalar o RubyMine ou o IntelliJ Ultimate
- Instalar o arquivo .zip do plugin disponível nas releases do GitHub
- Abrir a IDE instalada e ir em File > Settings/Preferences > Plugins > Clicar na engrenagem superior ao lado da aba "Installed" (Figura 1) > Install Plugin from Disk > Selecionar o arquivo .zip do plugin instalado anteriormente > OK:
Depois desses passos, o plugin deve estar instalado na sua IDE.
TAITI prediz os arquivos que serão alterados durante a realização de uma tarefa de programação com base nos testes do Cucumber relacionados à tarefa a ser realizada. No Cucumber, os testes são cenários escritos em arquivos features. Logo, por intermédio de TAITI, o desenvolvedor seleciona cenários de testes para uma tarefa, o que pressupõe que estes já tenham sido projetados. Os testes selecionados são salvos em um arquivo CSV que é exportado para o PivotalTracker.
Primeiramente, é necessário ter uma conta no PivotalTracker e que o repositório remoto do seu projeto esteja no GitHub. Para configurar o plugin é necessário acessar File > Settings/Preferences > Tools > TAITI, e basta preencher os três campos mostrado na tela a seguir (Figura 2) com suas as respectivas informações (para conseguir o token do PivotalTracker basta acessar o seu perfil e copiar o API Token).
Figura 2 - Tela de configuração do plugin TAITI.Após configurar o plugin, você pode acessá-lo na barra de menu em Tools > TAITI, onde é mostrado a tela principal do plugin (Figura 3). Na seção 1 é inserido o ID da tarefa que você está trabalhando atualmente no PivotalTracker (por exemplo, #123456789 ou 123456789), a seção 2 é uma listagem de arquivos em estrutura de árvore, onde você seleciona um ou mais arquivos feature onde estão os testes do Cucumber relacionados à sua tarefa, a seção 3 é exibido o arquivo feature selecionado e a seção 4 é uma tabela com todos os cenários selecionados.
Figura 3 - Tela principal do plugin TAITI.Após inserir o ID na seção 1 e selecionar um arquivo feature na seção 2, sua tela fica parecida com a tela da Figura 4. Onde o arquivo selecionado é exibido ao centro e cada teste nele existente é identificado por um checkbox. Ao marcar o checkbox, você informa que o referido teste está relacionado à tarefa. Alternativamente, é possível selecionar todos os testes em um arquivo, apenas marcando o checkbox que identifica o nome do arquivo na parte central da tela.
Figura 4 - Tela do plugin com o arquivo selecionado.Selecionado os cenários necessários para a tarefa, sua tela fica parecida com a tela da Figura 5. Onde na tabela (seção 4) há uma listagem de todos os testes selecionados, em um ou mais arquivos, e você pode atualizá-la, removendo algum teste caso julgue necessário.
Figura 5 - Tela do plugin com os cenários selecionados.Uma vez finalizada a seleção dos testes relacionados à tarefa, basta clicar em OK e um arquivo CSV com os cenários selecionados é criado e exportado para o PivotalTracker, sendo anexado como comentário na seção Activity da tarefa.
Figura 6 - Tela do comentário com o arquivo CSV anexado na aba Activity do PivotalTracker .




