quinta-feira, 18 de fevereiro de 2010

Gerenciamento do Tempo em Projetos de Teste

Quando falamos sobre o gerenciamento do tempo em nosso último post, destacamos que algumas atividades podem nos ajudar a obter um maior controle sobre o tempo. Sob a visão de gerenciamento de projetos, essas atividades estão relacionadas principalmente à área de conhecimento de Gerenciamento do Tempo. Mas podemos perceber uma forte relação também com outras áreas, como  Gerenciamento de Custos, Riscos, Escopo, Qualidade e Integração.

Um dos primeiros e principais insumos para o gerenciamento do tempo dos projetos é o seu escopo,  que pode ser representado pela  Declaração de Escopo do Projeto, pela Estrutura Analítica do Projeto (EAP) e pelo Dicionário da EAP. Além do escopo, o Plano de Gerenciamento do Projeto também é um importante insumo para que o líder do projeto possa identificar as atividades que devem ser executadas.

Notem que quando falamos do projeto de teste, temos um escopo que é definido principalmente pelos requisitos do software, os quais serão validados através dos testes. Esses requisitos normalmente são entregues em pacotes, o que nos permite organizar as atividades de teste seguindo essa previsão de entregas. Mas atividades adicionais podem ser necessárias para cumprirmos os objetivos dos testes,  mesmo não sendo atividades de teste propriamente ditas e devem ser consideradas para um efetivo gerenciamento do tempo. Um bom exemplo disso, seriam atividades relacionadas à capacitação da equipe ou à aquisição e implantação de alguma ferramenta necessária à realização dos testes.

Definidas as atividades necessárias ao cumprimento dos objetivos do projeto de testes, precisamos organizá-las no tempo, estabelecendo uma sequência lógica de execução. Para esta organização, além das técnicas de sequenciamento previstas na literatura para todos os tipos de projetos, nos projetos de teste devemos observar também a relevância e os riscos associados aos requisitos, para estabelecermos aquilo que merece maior atenção. Isso pode afetar as relações de precedência entre as atividades. Em seguida, deve ser identificado o que será necessário prover para que cada atividade possa ser realizada, incluindo pessoas, equipamentos e ferramentas. O quanto de cada recurso, quando será utilizado e por quanto tempo, são também definições que ocorrem nesse momento e impactam fortemente os custos do projeto.

Todas essas definições são pré-requisitos para o desenvolvimento do cronograma de testes, que é um processo iterativo. Mas elas podem também ser afetadas pelo cronograma, o que pode exigir revisões sobre as estimativas de recursos e prazos já estabelecidos. É importante observarmos que o cronograma evolui  ao longo do projeto de teste, sensibilizado por mudanças no plano do projeto e em seu cronograma ou por ações decorrentes do gerenciamento de riscos associados ao projeto e seu escopo.

Gerenciar o tempo de projetos e principalmente de um projeto de testes, exige um acompanhamento cuidadoso do andamento das atividades, das mudanças ocorridas e da evolução dos riscos e do escopo do projeto. Em muitas ocasiões pode ser necessário sacrificar determinadas atividades para que os prazos do projeto sejam cumpridos. Nestas situações, é importante termos total controle sobre o cronograma e sobre o escopo dos testes. Isso nos permitirá reportar com propriedade aos intervenientes do projeto, o que está sendo sacrificado e quais os prejuízos à qualidade dos testes, informações preciosas para a tomada de decisão.

sábado, 13 de fevereiro de 2010

Gerenciando o Tempo

Há alguns dias eu estava discutindo a importância de se gerenciar adequadamente o tempo dos nossos projetos de teste. E apesar disso parecer tão óbvio, cheguei a conclusão que quase nunca conseguimos fazer isso muito bem, nem nos projetos, nem em nossa vida profissional ou mesmo na pessoal.

Geralmente gastamos grande parte do nosso tempo em atividades que agregam pouco valor e nem percebemos isso. É um tempo enorme lendo um caminhão de e-mails, navegando na web sem muita direção, ou simplesmente sentados à frente de uma TV, ao final de um dia pesado de trabalho.

É interessante sempre repensarmos a priorização que fazemos em nossas vidas, para que seja possível encontrar o equilíbrio entre as atividades que temos no dia-a-dia, conseguindo conciliar a vida profissional e pessoal, mantendo o prazer e a motivação nessas duas frentes.

Quando conseguimos identificar com clareza as atividades que são mais importantes e as colocamos numa sequência adequada, temos mais chances de executar a maior parte delas, o que pode nos trazer grande satisfação e sentimento de realização. Sem esse cuidado em identificar claramente o que precisamos ou queremos fazer e sem uma priorização adequada, dificilmente realizamos muita coisa.

Esse raciocínio é totalmente válido para as atividades de teste em nossos projetos, pois normalmente temos um escopo de teste muito maior que o tempo disponível para testá-lo adequadamente. Assim, se conseguirmos priorizar os nossos requisitos de teste, poderemos direcionar nossos esforços para aquilo que tem maior relevância. Não esqueçamos do Princípio de Pareto ao priorizarmos os nossos esforços.

É importante lembrarmos sempre de estabelecer prioridades e não querermos fazer tudo ao mesmo tempo. Dê importância ao que é importante.

domingo, 7 de fevereiro de 2010

Falando sobre Automação de Testes

Recebemos em Brasília no dia 05/02, em um evento direcionado aos profissionais de teste do Banco do Brasil, o consultor e instrutor na área de testes e qualidade, José Correia da Iterasys, que nos apresentou sua visão sobre o processo de testes e estratégias de automação.

A palestra tratou dos desafios da automação de testes, dos aspectos positivos e das possíveis frustrações. Foi ressaltada a importância de um bom planejamento, por parte da organização, nessa fase de automação do seu processo de  testes, abordando muito além da simples execução automatizada de atividades com maior velocidade. É necessário também que os processos sejam efetivamente melhorados.

Alguns aspectos abordados:

"Testar mais é possível" - Um forte argumento utilizado em defesa da automação é o ganho de produtividade decorrente. Mas para que isso realmente aconteça, não basta apenas automatizar o processo atual. É necessário pensar na melhor forma de se implementar a automação. "Mais, não necessariamente é melhor". "Se um processo produz um produto com defeito, automatizar esse processo só servirá para produzir uma grande quantidade de produtos defeituosos em menos tempo".

"Vai ficar pior antes de melhorar"- Ao automatizar os testes, possivelmente o processo ficará mais caro e lento, pois existe uma curva de aprendizagem. Somente depois de algum tempo é que os ganhos da automação serão percebidos.

"Vocabulário de Testes" - É um grande desafio no mercado de testes brasileiro, pois cada empresa tem um vocabulário diferente. As certificações têm um grande papel na unificação desse vocabulário.

"Testar melhor" -  Importante a utilização de uma metodologia de testes. Foi descrito o  Modelo V em sua representação mais conhecida e também como uma sequência de 8 peneiras (Requisitos, Análise, Arquitetura, Codificação, Testes Unitários, de Integração, Sistema e Aceitação), sendo que o profissional de testes pode participar em todas as fases do processo, pois qualidade deve ser uma preocupação em todas elas. Ao passar por todas essas peneiras, o produto possivelmente terá mais qualidade.

"Ferramentas de Automação" - Foram citados os principais tipos de ferramentas que apóiam o processo de testes: Planejamento de Testes, Gerência de Configuração, Virtualização, Registro de Defeitos, Padrões e Práticas, Cobertura de Código, Testes Unitários, Performance, Segurança e Robôs.

"ISO 9126 " - Características de Qualidade - Necessidade de se ampliar o escopo dos testes, utilizando o conjunto de características e sub-características de qualidade para direcionar os esforços da equipe.

"Testar mais rápido" - Para que isso seja possível é preciso antecipar os testes, acompanhando o processo de desenvolvimento desde suas fases iniciais. É preciso também saber quando interromper os testes. O tempo das áreas de negócio pode ser diferente do tempo da qualidade. 

"Testar a coisa certa" - Para se ter segurança do que se está testando, são necessárias ferramentas para Gerenciamento de Testes, Gerenciamento de Defeitos e Gerência de Configuração.

"Testar no ambiente certo" - O ambiente de testes foi descrito como um conjunto de fatores , não apenas de hardware. Fazem parte do ambiente, por exemplo, as pessoas envolvidas nas atividades de teste, softwares como ferramentas de teste, documentações do sistema, além do próprio hardware e ambiente físico.

"Virtualização" - Foi abordada a reprodução de ambientes de teste. No futuro os ambientes de produção também serão virtualizados, permitindo que os testes de uma aplicação sejam realizados compartilhando as mesmas condições de hardware e software disponíveis no ambiente produtivo.

"Testar mais barato" - Quando os testes se iniciam mais cedo dentro do ciclo de desenvolvimento, tem-se menos retrabalho e menor tempo para a liberação das soluções.

"Testar o que realmente importa" - Utilizar o gerenciamento de riscos para priorizar o que é mais importante, auxiliando no direcionamento dos esforços de teste. Uma estratégia de teste bem elaborada, considerando prioridades, é o que diferencia um teste produtivo de um teste improdutivo. Foram abordados também o Princípio de Pareto e o Diagrama de Causa e Efeito,ou Ishikawa, como ferramentas importantes para se priorizar o escopo de teste.

Concluindo sua palestra, José Correia ressaltou que o grande desafio na introdução da automação de testes numa organização não é aprender a utilizar as ferramentas ou se escolher a melhor ferramenta do mercado. O maior desafio é ter um processo robusto, que dê o embasamento necessário às atividades de teste.

Na sequência da palestra, foram abordadas as características das principais certificações em teste, especificamente a CSTE, a CBTS e a CTFL. Nessa exposição, foi ressaltada a grande oportunidade existente na área de testes e qualidade, onde temos uma carência enorme de profissionais e mesmo de conhecimentos sobre os temas da área. Os profissionais pioneiros certamente terão destaque nesse contexto.

Ao José Correia, o nosso agradecimento por compartilhar sua experiência profissional e vasto conhecimento. Esperamos tê-lo novamente conosco em outros eventos, contribuindo para a disseminação da cultura de testes e para o fortalecimento da área de testes e qualidade.

sábado, 6 de fevereiro de 2010

O futuro do Teste de Software

Aconteceu recentemente no DFTestes, uma boa discussão sobre o futuro do Teste de Software e gostaria de compartilhar com os leitores do Base de Teste a minha visão sobre esse tema.

Vejo o mercado de testes de software crescendo com muita velocidade nos últimos anos.
Há 3 ou 4 anos atrás, poucas empresas tinham equipes de teste independentes bem estruturadas. Hoje vemos essa estrutura se multiplicar, tanto em empresas que trabalham com desenvolvimento, como naquelas que utilizam os serviços de fábricas de teste para validar as aplicações desenvolvidas por terceiros.

A terceirização de serviços de teste é uma forte tendência, complementando a capacidade de teste interna das organizações. A especialização conseguida com as estruturas de fábrica trazem muitos benefícios para o contratante, principalmente na escalabilidade no atendimento de suas demandas e na independência dos testes em relação ao desenvolvimento.

Com esse mercado aquecido, as empresas investirão maior esforço na seleção de seus times, pois aquelas que estiverem melhor estruturadas, vencerão a corrida pelos melhores contratos. Por outro lado, os profissionais de teste também deverão investir mais em sua empregabilidade. Nesse aspecto, as certificações serão um grande diferencial, principalmente aquelas que conseguirem distinguir profissionais com maior conhecimento e experiência.

Venho comentando há tempos com alguns colegas, que o teste é o carro chefe para a melhoria de muitos processos. É um processo que catalisa uma mudança cultural nas organizações, na direção de uma busca contínua pela qualidade.

É bonito ver isso acontecendo com a nossa área e saber que fazemos parte desse movimento!