Feeds:
Posts
Comentários

Archive for the ‘Testes’ Category

Na empresa em que trabalho atualmente, temos muitos processos/scripts feitos em bash. Até pouco tempo atrás não nos preocupavamos muito com testes unitários e de integração feitos em bash; bem diferente de outras liguagens que utilizamos, como: Java e JavaScript, onde a parte de testes unitários e a automatização estão em níveis satisfatórios e ficando cada vez mais rigorosos com o passar do tempo.

De alguns sprints para cá (adotamos há muito tempo scrum), começamos a dar mais atenção à parte de integração contínua dos processos dos nossos sitemas, passando a escrever testes para os scripts bash. Escolhemos aleatóriamente o Bats como framework de testes. Esse é desenvolvido por Sam Stephenson, um cara conhecido da comunidade Ruby; o código está no github, possibilitando assim o fork facilmente. Por enquanto estamos gostando do Bats e não temos previsão de abandoná-lo.

Um exemplo de teste bem simples que está na própria página do github é:


#!/usr/bin/env bats

@test "addition using bc" {
  result="$(echo 2+2 | bc)"
  [ "$result" -eq 4 ]
}

@test "addition using dc" {
  result="$(echo 2 2+p | dc)"
  [ "$result" -eq 4 ]
}

E para rodar o teste, basta executar o comando: $ bats nome_do_arquivo.bats. Como usamos Jenkins + Maven 3, colocamos esses scripts para rodar a partir desses dois utilitários. A integração deles funciona muito bem e é bem simples!
Como podem ver, não existe mais desculpa para não fazer testes e automatizar os scripts da sua empresa também. 😉

Read Full Post »

Smoke testing

Normalmente, sistemas possuem várias integrações com diferentes servidores, arquivos, web services, banco de dados, etc. Quanto mais o sistema cresce mais complicado fica para saber se todo o ambiente está funcionando corretamente; principalmente no ambiente de desenvolvimento onde várias pessoas tem o direito de alterar configurações, apagar arquivos, alterar e apagar tabelas, entre outras coisas. Smoke testing é uma boa solução para resolver esse tipo de problema, pois serve para fazer os primeiros testes e saber se o básico do ambiente está funcionando corretamente.

Uma coisa simples que pode ser feita é um painel de visualização (dashboard); esse economiza muito tempo de investigação quando aparece algum problema no sistema. Não é preciso fazer nada muito elaborado! Aconselho uma página que, por exemplo: execute ping nos servidores, verifique se arquivos existem, se bancos de dados e tabelas estão funcionando corretamente, se web services estão acessíveis, etc. Vale a pena usar linguagens leves e dinâmicas (como php, python, ruby, entre outras do tipo) para esse tipo de painel, pois é rápido de ser construido e fácil de ser alterado.

Read Full Post »