quarta-feira, 22 de julho de 2009

CheckList de Transição de Fases – Análise, Design e Execução de Teste

Uma boa prática que ajuda a minimizar os problemas de rotatividade das equipes e transição de atividades é a utilização de um Check List para cada fase. O objetivo deste post é compartilhar um checklist que ajude a garantir que todos os trabalhos realizados na fase de análise, design e execução de teste foram concluídos e passar o conhecimento adquirido nessas fases para os Engenheiros, Analistas de Teste que serão envolvidos na próxima fase de teste.

1. Transição da fase de análise para design


Projeto: Nome do Projeto e/ou Componente
Data: Data quando a reunião de transição aconteceu
Participantes da Reunião de Transição:
Incluir o nome dos participantes da reunião de transição – Nome 1
Incluir o nome dos participantes da reunião de transição – Nome 2




2. Transição da fase de design para execução
Projeto:
Nome do Projeto e/ou Componente
Data: Data quando a reunião de transição aconteceu
Participantes da Reunião de Transição:
Incluir o nome dos participantes da reunião de transição – Nome 1
Incluir o nome dos participantes da reunião de transição – Nome 2




Como vocês podem ver, é uma maneira fácil e rápida de garantir que todos os trabalhos realizados na fase de análise, design e execução de teste foram concluídos e que o conhecimento adquirido nessas fases foi compartilhado com as partes interessadas na próxima fase de teste.

Até+,
Quezada

Dança das Cadeiras ou Samba do Crioulo Doido? Será que isso acontece na sua empresa ou projeto(s)?

Você deve estar fazendo a seguinte questão “O que ele quer dizer com Dança das Cadeiras ou Samba do Crioulo Doido?”. Confesso que fiquei pensando nisso alguns dias, e como não consegui identificar se a rotatividade das pessoas nas empresas e projetos é a Dança das Cadeiras, ou se é o Samba do Crioulo Doido, acabei colocando essa questão para você decidir. Bem, como esse assunto é muito amplo e poderíamos ficar aqui horas e horas discutindo e expondo as nossas idéias, vou tentar focar em projetos de teste de software.

A rotatividade das pessoas em projetos de teste de software é um fato. Essa nova era em que vivemos, "Era do Conhecimento", umas das características do profissional, é a mobilidade em busca de melhores oportunidades.
Segundo estudos do DIEESE – Departamento Intersindical de Estatística e Estudos Socioeconômicos (publicados em 2007), no ano de 2006 a taxa mensal de rotatividade no Brasil era de 3,5% ao mês, que representa um índice anual de 42%. Em 2002, este índice era de 35% ao ano, ou seja, em cinco anos a rotatividade aumentou 20%, o que significa que em aproximadamente 2,5 anos, as empresas trocam seus quadros de funcionários.

Muitas vezes as pessoas perguntam “Como resolver esse problema?”. O que eu sempre tento mostrar é que não se consegue resolver 100% do problema, mas é possível minimizá-lo fazendo um bom planejamento e gerenciamento de riscos. Vamos lá, quem aqui nunca teve esse tipo de problema em projetos que teve participação? Se você falar que isso não acontece na sua empresa me avisa que vou mandar o meu CV pra você :-). Pensando bem, acho que não vou fazer isso não, afinal, resolver os problemas dos projetos que é o legal e se fosse fácil, qualquer um faria !!!
No momento em que estamos planejando os projetos é necessário levar em consideração o perfil dos profissionais que poderão contribuir para que o projeto seja executado com sucesso. Se você fizer um planejamento sem considerar esse item, provavelmente terá problema com a rotatividade de pessoas, pois precisará fazer a “dança das cadeiras” entre os projetos para atender o perfil que já devia ter sido pensado na hora do planejamento, isso sem considerar as pessoas que acabam saindo da empresa ou mudando de área. Sabemos também que em alguns casos não temos um profissional na empresa que tenha o perfil que o projeto está demandando, então, neste caso, temos o risco identificado e é necessário criar um plano de ação para mitigar o risco.

Vale lembrar que mesmo com todo o planejamento feito, as técnicas selecionadas, o recurso e pessoas alocadas, os riscos identificados e, as partes interessadas comprometidas, sempre terão possíveis riscos de projeto com rotatividade da equipe. Neste caso, tudo o que você puder fazer para documentar o que está sendo feito no projeto de teste, faça. Só tome cuidado para não burocratizar o seu dia-a-dia.

Vou tentar mostrar um exemplo clássico que acontece em projetos de testes:
Vamos supor que temos um Gerente de Teste ou Projeto, um Líder/Arquiteto de Teste, um Analista de Teste e vários Testadores.

Fase de Planejamento
Gerente de Teste: Ah, vamos alocar o Líder/Arquiteto X, o Analista Y e os Testadores A, B e C nesse projeto que vai dar tudo certo.

Líder/Arquiteto de Teste X: Olha seu Gerente, para esse projeto precisamos de alguém que tenha conhecimento em testes de aplicação web e o Analista Y e os Testadores A, B e C não tem esse conhecimento, teríamos que treiná-los.

Gerente de Teste: Não temos como fazer isso, os outros Analistas e Testadores que tem esse conhecimento não poderão participar do projeto e tenho certeza que você conseguirá resolver possíveis problemas técnicos que poderemos ter.

Nesse momento o Líder/Arquiteto de Teste pensa “Vai dar M@#$%ERDA” isso ai... :-(

Fase de Análise de Teste
Analista de Teste Y identifica todos os casos de teste que devem ser feitos de acordo com os requisitos do sistema e executa todas as outras tarefas que pertencem a essa fase.

Pausa para o café, reunião!
Na reunião de acompanhamento do projeto o Gerente de Teste comunica para sua equipe que aconteceu um problema no Projeto W e o Analista de Teste Y terá que mudar de projeto, e o Analista Z irá substituí-lo.
Agora acontece o problema de transição e compartilhamento do conhecimento do Analista Y para o Analista Z, afinal, quem sabe e entende do sistema é o Analista Y.

Fase de Design de Teste
Analista Z faz todo o design dos casos de testes identificados na fase de Análise e executa todas as outras tarefas que pertencem a essa fase. Bem, tudo pronto para começar a execução dos testes.

Fase de Execução de Teste
Testadores A, B e C começam a execução sem ter uma visão geral de como funciona o sistema, e ai as dúvidas começam a surgir. Um problema atrás do outro, teste executado incorretamente, etc.

Bem, esse é um exemplo resumido e simplista de como as coisas acabam acontecendo quando fazemos um planejamento sem considerar o perfil do profissional.

Uma boa prática que ajuda a minimizar os problemas de rotatividade das equipes e transição de atividades é utilizar um Check List para cada fase. A idéia desse check list é passar o conhecimento adquirido em cada fase para os profissionais envolvidos no projeto.

No post CheckList de Transição de Fases – Análise, Design e Execução de Teste coloquei um exemplo de check list para a transição entre as fases de Análise, Design e Execução de Teste.

Agora me diz, na sua empresa acontece a dança das cadeiras ou samba do crioulo doido? Ou melhor, será que a dança das cadeiras acaba criando o samba do crioulo doido?

Até+,
Quezada

quarta-feira, 1 de julho de 2009

Papéis e Responsabilidades do Time de Teste

Muitos já estão “carecas” de saber quais são os papéis e responsabilidades do time de teste, mas vale a pena relembrar, afinal, pode ser que no projeto que você esteja trabalhando as coisas estejam um pouco confusas! :-)

Gerente de Teste
Pessoa responsável pelo êxito do esforço de teste. Seu papel envolve a defesa da qualidade e dos testes, planejamento e gerenciamento de recursos, pessoas e resolução de problemas que representam um obstáculo para o esforço de teste. Isso inclui:
  • Gerenciamento funcional e operacional da equipe de testes;
  • Planejamento e alocação de recursos e pessoas para novos projetos e produtos;
  • Definição da política de testes de software e acompanhamento a sua execução;
  • Participação em reuniões de projeto e acompanhamento;
  • Defender o nível apropriado de qualidade mediante a correção de defeitos importantes;
  • Avaliação do andamento e a eficácia do esforço de teste;
  • Acompanhamento de falhas em campo para refinar os processos de testes;
  • Geração de indicadores de desempenho de teste.
Líder de Testes
Pessoa responsável pela liderança de um projeto de teste específico, normalmente relacionado a um sistema de desenvolvimento, seja um projeto novo ou uma manutenção.

Arquiteto de Teste
É o técnico responsável pelo levantamento de necessidades relacionadas à montagem da infra-estrutura de teste, incluindo-se o ambiente de teste, a arquitetura de solução, as restrições tecnológicas, as ferramentas de teste. Também responsável pela liderança técnica do trabalho de teste e pela comunicação entre a equipe de teste e a equipe de projeto (ou equipe de desenvolvimento).

Analista de Teste
É o técnico responsável pela operacionalização do processo de teste. Deve seguir as orientações do gerente de teste e/ou do arquiteto de teste para detalhar a forma de execução dos testes e as condições de teste necessárias. Também deve focar seu trabalho nas técnicas de teste adequadas à fase de teste trabalhada.

Analista de Ambiente de Teste
É o técnico responsável pela configuração do ambiente de teste e pela aplicação das ferramentas necessárias para tal. Esse profissional deve ser especializado em arquiteturas de solução, nos sistemas operacionais e softwares de infra-estrutura que regem o ambiente. Ele será responsável por tornar disponível o ambiente de teste.

Testador
É o técnico responsável pela execução de teste. Ele deve observar as condições e respectivos passos de teste documentados pelo analista de teste e evidenciar os resultados de execução. Em casos de execuções de teste mal-sucedidas, esse profissional pode também registrar ocorrências (na maioria das vezes, defeitos), em canais através dos quais os desenvolvedores tomarão conhecimento e providências de correção ou esclarecimentos das mesmas.

Automatizador de Teste
É o técnico responsável pela automação de situações de teste em ferramentas. Ele deve observar as condições de teste e respectivos passos documentados pelo analista de teste e automatizar a execução desses testes na ferramenta utilizada. Normalmente são gerados scripts de teste que permitem a execução de ciclos de teste sempre que julgar necessário, desde que é claro, sejam garantidas as mesmas condições iniciais do ciclo de teste (valores de dados, estados dos dados, estados do ambiente, etc.).

Papéis e Pessoas
Uma pessoa pode acumular mais de um dos papéis citados acima, de acordo com características e restrições de projetos de desenvolvimento de software, nas quais estejam inseridas.

Vale lembrar que os papéis e responsabilidades citados acima não é uma regra! :-)

Até+,
Quezada