Mostrando postagens com marcador teste. Mostrar todas as postagens
Mostrando postagens com marcador teste. Mostrar todas as postagens

domingo, 21 de outubro de 2012

TIU Testing Dojo

Participei do primeiro TIU Testing Dojo que ocorreu no dia 20/10/2012, organizado pela equipe de testes e qualidade da Useall Software.

O encontro contou com participação de analistas, testers e também programadores, todos buscando ampliar conhecimento e prática para testes de software.

Os trabalhos iniciaram com uma apresentação sobre o que é Testing Dojo, os tipos de desafio e a dinâmica do dojo. Neste momento ficou clara a semelhança com nosso coding-dojo. Também tivemos a oportunidade de avaliar uma nova ferramenta de gestão e automação de testes.

Mas o foco era treinar testes e compartilhar conhecimentos. Escolhemos como desafio, avaliar um novo sistema desenvolvido pela empresa. Buscamos avaliar os quesitos funcionalidade e usabilidade. Piloto e co-piloto se revezavam definindo casos de teste e executando testes manuais e exploratórios, aprendendo o novo sistema, validando as funcionalidades e gerando ideias e melhorias para a usabilidade de cada recurso.

Pessoal concentrado. Tinha até co-co-piloto.

Depois, fizemos um processo inverso. Após levantar os casos de testes, compará-los com os testes unitários. Isso foi muito interessante, pois testadores e programadores puderam comparar visão diferentes de testes.

A sessão durou mais de 2 horas, onde todos os participantes se revezaram entre piloto, co-piloto e observadores. Por fim fizemos a retrospectiva, organizando as anotações e avaliando o evento.

Novo jeito de testar? De pé, mãos para trás, mão no bolso!!!

Carinhas felizes na retrospectiva

  • Realização do 1º TIU Testing Dojo
  • Participação de programadores e testadores
  • Desafio de avaliar dois quesitos (funcionalidade e usabilidade)
  • Compartilhamento de conhecimento entre a equipe
  • Uso da ferramenta de testes
  • Quitutes

Carinhas tristes

  • Teste em protótipo não foi tão produtivo
  • Sistema desconhecido e com fluxo complexo
  • Tempo de 5 minutos é pouco para rodízio
  • Primeira sala estava trancada
  • Sala reserva era apertada e algumas pessoas ficaram de pé
Os organizadores e participantes do evento estão de parabéns! Todos podemos contribuir e aprender sobre testes de software, uma das tarefas de grande importância no desenvolvimento de software de qualidade.

Slides usados na abertura do evento


[]

sábado, 23 de junho de 2012

Coding Dojo - TIUDojo

Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.

Gosto muito de participar desses encontros. Na empresa onde trabalho, várias pessoas participam, inclusive quem não trabalha com programação, mas que gosta muito e tem interesse em novos conhecimentos.

O dia de hoje foi especial, várias pessoas novas participaram do "TIUDojo", nome especial que foi dado ao nosso grupo. Na ocasião, falei brevemente sobre coding dojo e TDD. Meu amigo Everson fez uma "lightning talk" sobre desenvolvimento mobile.

Procuramos aplicar todas as regras de coding dojo. O processo é divertido e gera muito conhecimento.

O desafio escolhido do dia foi programar funções do jogo "campo minado".

Piloto e co-piloto

TDD - testes com sinal verde (no momento da foto, quase todos)

Passos de bebê (meu filhote prestigiando)

Equipe interessada, participativa e que gosta de programação


Cafézinho, refri, salgadinho

Deixo um agradecimento especial a todos que participaram do melhor coding dojo da região!!

E aí, você gostou do TIUDojo?
Qual será o próximo desafio?

[]

domingo, 10 de julho de 2011

Teste de software vai muito além do passou/falhou


Qualidade é um processo contínuo e de responsabilidade de todo o time de desenvolvimento de software. Para atestar qualidade, além de um bom processo de desenvolvimento, é necessário testar. Testar não é a última coisa a fazer num projeto de software. Deveria ser a primeira e, continuar por todo o projeto. Os testes devem atestar a qualidade dos sistemas construídos ou modificados pelo desenvolvimento.

Mas não basta ter responsabilidade com a qualidade, é necessário colaboração, confiança e transparência entre testadores e desenvolvedores. Todo o time deve entender e compartilhar do que está sendo construído. Desta forma poderão criar o produto certo, ou pelo menos de maneira certa.

O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.

Independentemente da metodologia de trabalho empregada no desenvolvimento de um software, para que se obtenha um produto final com um certo nível de qualidade, é imprescindível a melhoria dos processos de engenharia de software. Um desenvolvimento de software organizado tem como premissa uma metodologia de trabalho. Esta deve ter como base conceitos que visem a construção de um produto de software de forma eficaz. (Wikipédia)

Para atestar qualidade, você precisa ter especificações, algo que você pode avaliar. Você especifica o sistema para depois testar? Ou testa para gerar especificações de seu sistema? Uma sugestão é focar em “test driven” e não em “defect driven”. Se você esperar o sistema ficar pronto para testar, certamente encontrará erros.

É muito comum falar que teste de software demora e é perda de tempo, pois os programadores deveriam entregar o produto “pronto” e sem erros. Mas você pode utilizar ferramentas para ajudar na automação de testes. Num ambiente ágil você deve aplicar os princípios ágeis para automatizar testes. O teste deve fazer parte do “done” “pronto”.  Mas lembre-se, ferramentas de automação não são a solução para todos os seus problemas de qualidade de software. Teste automatizado não é moleza. Não é só gravar um script e depois executar. Testes simples e repetitivos podem ser automatizados. Invista tempo em testes manuais mais complexos. A maioria dos defeitos ainda é encontrada por testes manuais de sistema e aceitação.

É importante eliminar desperdícios nos testes.
. Testar rápido: usar processos ágeis;
. Testar melhor: maior cobertura, múltiplas visões do teste, foco na qualidade;
. Testar mais barato: redução de retrabalho, menor ciclo de testes, não duplicar testes;
. Não adianta “tentar testar o máximo” tem que ter metodologia e estratégia de teste;
. Testes de sistema e de aceite podem aumentar a produtividade dos desenvolvedores e a qualidade dos seus produtos se software.

Software muda constantemente e, quando uma nova funcionalidade é adicionada a um sistema que já estava testado e funcionava bem, sempre existe a possibilidade desta funcionalidade afetar outras. Uma boa maneira de assegurar que tanto esta funcionalidade, como todo o resto do sistema esteja funcionando corretamente, é fazer a integração contínua, ou seja, faça o “checkin” de seus códigos e “build” de seus sistemas constantemente.

Testar software é uma arte, que a maioria dos analistas e desenvolvedores não fazem com grande apreço. Desenvolvedor gosta de testar para “fazer funcionar” e não para garantir qualidade. Neste cenário, pensar em criar uma equipe de teste para formar um time com esses desenvolvedores pode ser considerado um grande avanço.

É importante definir algumas diretrizes e responsabilidades para a área de testes, como por exemplos:
. Vamos testar todos os softwares?
. Quanto tempo vamos investir nos testes? Este tempo é investimento mesmo ou é visto como custo para a empresa?
. Qual o nível de abrangência? Vamos testar tudo? O que é essencial?
. Qual o foco do teste? Vamos focar mais em teste de regras de negócio ou testes técnicos do sistema?
. Quais as características de qualidade serão avaliadas e, qual a peso de cada uma dentro desta avaliação?
. Como o time será avaliado?

As respostas para essas perguntas poderão ser assunto para outro post.

[]