Indicadores de teste

O tema da 21ª Mesa Redonda DFTestes foi “Indicadores de Teste”, que teve apenas 3 respostas (até o momento) e 3 participantes, sendo eles: eu, Leandro Mancuso e Robson Agapito.

Mesmo com o baixo número de respostas a discussão foi interessante, no que se diz respeito, a apresentação de alguns indicadores aplicados pelos profissionais. Abaixo, faço um “resumo” (quase a discussão na íntegra rs) da mesa redonda, quem quiser conferir a discussão na íntegra é só acessar o DFTestes (é necessário se inscrever).

Indicadores utilizados na prática

O Leandro Mancuso compartilhou os seguintes indicadores:

Todo final de mês eu tenho uma query que eu fiz que contabiliza todos os bugs relatados na ferramenta de bug tracking, e desses bugs eu subtraio quantos foram encontrados no ambiente de produção, com isso sei aonde a equipe de testes esta falhando e fazemos uma análise crítica do porque nos testes tais bugs não foram detectados.

Também utilizo as seguintes:
ERD = (TDR / TDD) *100
TDR = Total de defeitos removidos
TDD = Total de defeitos no testes

TDR = Total de Defeitos Removidos  (Total de defeitos menos os encontrados pelo Cliente.
TDD = Total de Defeitos Detectados pelo teste (Total de defeitos menos os encontrados pelo cliente mais os retornados para o Desenvolvimento.

O Robson Agapito, que até fez um excelente artigo sobre alguns indicadores que ele utiliza, compartilhou algumas informações sobre a EDD:

EDD (Eficácia de Detecção de Defeitos)

Nesta métrica podemos demonstrar a eficácia do produto com relação aos testes realizado pela equipe de testes. Claro esta métrica pode alternar de empresa para empresa, pois existem muitas variáveis que se divergem de uma empresa para outra. Então não basta conhecer apenas o resultado final, deve-se saber avaliar o resultado com o processo de liberação pré-definido pelas empresas.

EDD = TDD / (TDD+TDC) * 100

TDD = Total de Defeitos Detectados pelo teste
TDC = Total de Defeitos encontrados pelo Cliente

Ex.:
A equipe de testes tem um sistema para realização de testes e encontrou 40 erros no produto durante este processo. Após a liberação do Sistema os clientes encontraram mais 10 erros que não foram identificados pela equipe de testes interna. Assim possuímos os valores abaixo:

TDD = 40
TDC = 10

EDD = TDD / (TDD+TDC) * 100
EDD = 40 / (40+10)*100
EDD = 80%

Então o índice de EDD é igual a 80%, isto é, a qualidade da equipe em relação à detecção de defeitos é 80% eficaz. Mas volto a afirmar que em alguns casos estas situações podem ser interpretadas de maneira errônea se somente vermos os números resultantes. Deve ser avaliado todo o processo de liberação do software e não apenas o resultado.

Não utilizamos muitos indicadores de teste aqui na empresa, acho que mais por um motivo cultural e nos projetos que atuei, por nem sempre necessitar de indicadores. Nas poucas vezes que buscamos utilizar algum indicador, além dos que são armazenados nas ferramentas (TestLink e Eventum), foram indicadores mostrando a relação entre falhas encontradas X tempo, durante o desenvolvimento de cada versão (figura abaixo). E foi o que melhor foi utilizado, pois ajudava tanto a equipe de teste quando de desenvolvimento.

Quais são as variáveis que podemos observar para obter indicadores de teste?

Quando estamos em busca de indicadores, é interessante primeiro, saber de quais variáveis podemos tirar indicadores, abaixo segue algumas das variáveis que podemos observar:

  • Defeitos/Falhas encontrados;
  • Casos de testes;
  • Testes automatizados;
  • Funcionalidades.

Quando e qual a melhor forma de divulgar esses indicadores?

Ao longo de todo projeto, mas com o cuidado de também indicar o contexto, números por si só, são só números. E como o Robson disse, os indicadores devem ser avaliados olhando o nosso contexto, pois caso contrário, interpretações errôneas poderão acontecer e como um professor que tive costuma dizer “coisas horríveis irão acontecer”.

Por que os temas relacionados a estimativas são frequentes na nossa mesa redonda?

Essa eu gostaria de saber (rs), na minha opinião, vejo que as pessoas às vezes se preocupam muito com métricas, acham que coletando métricas irão ter um processo mais maduro, estarão sendo mais profissionais, etc. Na minha visão, as métricas podem te ajudar a enxergar tendências, mas há muitas coisas mais importantes que métricas, um exemplo são as pessoas.

Não me lembro de ter visto uma discussão sobre como motivar a equipe de Teste de Software, como montar uma equipe de sucesso, como construir um bom ambiente, etc.

Só quero deixar claro que não sou contra estimativas, só acho que elas são muito supervalorizadas por algumas pessoas. Como disse na mesa redonda “Estimativa de Testes (APT)”: Medir é apenas uma das forma de controlar, adoramos números, tanto que há as mais variadas estatísticas hoje em dia. Porém, não é uma tarefa tão simples, e nem sempre a mais importante para uma determinada realidade.

Bem pessoal é isso. Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá, e poderão haver novas respostas nessa mesa redonda.

Fique por dentro das novidades, assine o feed do QualidadeBR.

O melhor da semana 18/04 a 24/04

Pessoal,

Segue abaixo, a lista com o melhor da semana, espero que gostem:

Você leu algo interessante, relacionado a área de Teste e Qualidade de Software, e quer compartilhar? Sinta-se à vontade em colocar nos comentários. 🙂

Abraços! E tenham uma ótima semana!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Como ser produtivo? Contando tomates

Ontem realizei uma apresentação com o título “Como ser produtivo? Contando tomates”. A palestra foi feita no 2º Desembucha Aí!, um evento que ocorre aqui na Voice Technology, no qual são realizadas palestras rápidas, de no máximo 25 minutos sobre determinado tema.

O objetivo dessa palestra foi apresentar em 1 pomodoro, o que é a técnica Pomodoro e como ela pode te ajudar a ser produtivo.

Abaixo, compartilho a apresentação utilizada no evento:

Muito obrigado a todos que estiveram no evento! 🙂

Fique por dentro das novidades, assine o feed do QualidadeBR.

Quem é o grande vilão do Teste de Software, o bug ou o tempo?

A 20ª Mesa Redonda DFTestes teve como tema “Quem é o grande vilão do Teste de Software, o bug ou o tempo?”. A discussão teve 9 respostas e participantes, sendo eles: eu, Sarah Pimentel, Luís Barros, Shmuel Gershon, Rodrigo Almeida, Felipe Silva, Elias Nogueira, Humberto Barboza e Talita de Oliveira.

Abaixo, faço um “resumo” de como foi a discussão, sempre lembrando que quem quiser ela na íntegra é só acessar esse link (é necessário se inscrever no DFTestes).

Quem é o grande vilão do Teste de Software, o bug ou o tempo?

Segundo a Sarah Pimentel:

Tanto o tempo quanto os bugs são vilões, quem está sendo pior depende do projeto, eu acho. Existe tanto aqueles sistemas onde nenhuma pratica de prevenção de defeitos foi aplicada e chegam com bugs críticos que bloqueiam e atrasam testes, quando os projetos nos quais a definição de requisitos atrasou, a arquitetura atrasou, o desenvolvimento atrasou mais ainda e o tempo do teste ficou reduzido a 25% do que era antes e claro que sempre esperam que a equipe de testes faça milagres porque só ela não pode atrasar.
Quanto aos bugs podemos atacá-los através de processos de prevenção de defeitos e quanto ao tempo, revisando o planejamento, implementando um processo de gerenciamento de mudanças e procurando alinhar a equipe de vendas (normalmente o tempo começa a ser um problema já na venda do projeto) o que realmente é possível entregar no tempo acordado.
Apesar do desejo intimo de ter a aplicação 100% testada, sabemos que isso é dito como impossível. Para isso, há algumas técnicas que nos ajudam a selecionar/priorizar testes para que possamos aproveitar nosso tempo da melhor maneira possível.

O Luís Barros deu a sua opinião dizendo:

Na minha opinião o TEMPO hoje é o grande vilão do teste de software.

O TEMPO compromete as verificações de documentação que, antes mesmo de ter uma aprovação formal já estão na mão dos desenvolvedores, pois o prazo já está apertado;
O TEMPO faz o desenvolvedor passar por cima dos testes unitários e de integração;
O TEMPO faz o prazo do time de teste ser reduzido. Aliás, a gente sofre muito com isso, pois o que é cortado primeiro de um projeto é sempre o teste;
O TEMPO faz um projeto ser “baseado em funcionalidade” (Funcionou tá bom!), onde só o “Caminho Feliz” importa.

E finalmente…
O TEMPO causa mais bugs pois, se tudo o que foi mencionado não acontecesse, certamente teríamos um software com muito menos bugs

Uma frase que já ouvi muito de caciques: “Não entregar tem um impacto muito maior do que entregar com erros!”

O Shmuel Gershon tem uma opinião diferente do pessoal:

Vilões? Ahn?

Primeiro, por que o bug seria um vilão? Se fosse um vilão, não ficaríamos tão feliz de achar um.
Acho que os bugs, longe de ser os vilões, são nossas bat-ferramentas, essenciais para sermos bons heróis. São eles que nos permitem aprender, e que nos permitem ensinar e transmitir informação adiante.

Segundo, por que o tempo? Tempo é o melhor amigo da qualidade de software. Se não tivessémos tempo suficiente, não ia dar pra fazer nada direito!
E a falta de tempo? Outro melhor amigo da qualidade, especialmente porque este fica do lado do cliente, defendendo seu valor — já pensou se ainda não tivéssemos recebido o Windows 97? não teria como avançar a tecnologia até chegar no Win7.

Bugs e Tempo, para ser vilões, só neste link e neste link. 🙂

O verdadeiro vilão dos testes, sou eu.
(não, não por que eu fico aqui contrariando todo mundo na DFTestes!)
Mas por que eu concordo com mas decisões, em vez de trabalhar com meus gerentes para tomar a decisão certa.
E porque eu não sou capaz de explicar toda a extensão do impacto de uma mudança no cronograma.
E porque as vezes uso métricas que em vez de ajudar, estão atrapalhando a operação.

É dura, esta vida de herói e vilão ao mesmo tempo…

Minha linha de pensamento sobre o assunto é bem parecida com a do Shmuel.

Todos são culpados! Até que se prove o contrário.

Em algumas organizações é muito fácil botar a culpa em fulano ou ciclano, principalmente, quando temos caciques (como lembrou o Luís), ou pessoas que gostam do poder, de tomar decisões sozinhas, etc.

Eu particularmente, vejo que o desenvolvimento de software é algo muito complexo, para um único ser humano levar a culpa. E por isso, sou a favor de quando algo de ruim acontece (“shit happens”), todos sentarem para buscar os fatores e a causa raiz para aquele problema ter ocorrido, deste modo todos evoluem e tem a oportunidade de discutir.

Nenhum dos dois são vilões, são apenas efeitos causados por seres humanos.

Porém, “o primeiro” bug, era sim um vilão, aquela traça maldita! rsrs

Hoje acredito que nenhuma falha acontece por causa de uma trasa, elas acontecem porque pessoas desenvolveram aquele sistema. E pessoas cometem erros, lembre-se errar é humano.

E como o Shmuel disse: “É dura, esta vida de herói e vilão ao mesmo tempo…”

O Rodrigo Almeida enfatizou a importância de termos um processo alinhado com a equipe de desenvolvimento, para podermos tornar o tempo o nosso amigo:

É preciso ter estratégia.

Estratégia para achar o bug nos testes críticos.

Tem que ter processo definido e alinhado com a equipe de desenvolvimento.

Desta forma o tempo vira aliado e não inimigo!

Segundo o Felipe Silva:

–  O tempo é um fator neutro, quem faz ele parecer mau ou bom é a “áurea espiritual da entidade responsável pela estimativa e cronograma”, se está estiver acima do “limite mortal humano” então o tempo leva a culpa mesmo sendo algo constante, caso contrário o tempo leva a culpa pelo desperdício de orçamento? Esta segunda resposta é única e exclusiva da “índole da(s) entidade(s) superior(es)”. Falando claramente tempo vilão = planejamento não reflete a realidade, isso também não quer dizer que o planejador é o culpado, a não ser que ele seja capaz de prever o futuro, mas ele é no mínimo cúmplice (rs).

– O bug pode ser um vilão, principalmente para nós responsáveis pela qualidade, mas é este também “paga meu salário todo mês”, estão se eu colocasse em uma balança ele é mais meu amigo do que meu inimigo, sobre o bug só posso dizer ele é mais previsível do que o tempo, embora não seja possível testar 100% do software é possível testar a parte mais usada e deixar o bug hibernando por tempo indeterminado, contanto que este não acorde ninguém vai reclamar.

Se for para pesar Tempo x Bug eu diria que o tempo tem maior peso, pois a falta deste primeiro ajuda o segundo ser um risco maior.

O Elias lembrou bem, que muitas vezes o grande vilão é a cultura da empresa:

O principal vilão do Teste de Software é a cultura!!!
Em um software de missão crítica ou relacionados (aviões, máquinas médicas, etc…) nem o tempo nem o bug serão um “vilão”, pois a cultura cultivada dentro de uma organização que desenvolve e testa um software dessa linha está preocupado com a qualidade.

O que nós enfrentamos no nosso dia-a-dia é prazos curtos e uma quantidade grande de bugs dado também a pressão colocada sobre a área de desenvolvimento para entregar ‘qualquer coisa’ de uma forma mais rápida.

Uma empresa que preza por uma cultura de qualidade dificilmente terá como o vilão o bug ou o tempo!

O Humberto Barboza deu a sua opinião dizendo:

Respondendo a pergunta e concordando com alguns, dentro do nosso paradigma de teste de software o tempo é o grande vilão.

Infelizmente para a nossa atividade nunca dispomos dele para realizar o trabalho ótimo. E na grande maioria das vezes somos obrigados a fazer o melhor trabalho que pode ser feito, priorizando as atividades, dentro do tempo que dispomos.

Claro que essa discussão como já pudemos perceber nessa mesa redonda envolve muitas variáveis: a cultura da organização passada hierarquicamente abaixo de que o teste pode ser cortado se não houver tempo, a pressão sobre a equipe de desenvolvimento que entrega o produto sem a qualidade esperada porque não realizou devidamente os testes unitários e de integração, a pouca importância dada a fase de planejamento dos testes e a adoção da estratégia “Sair fazendo” sem o devido planejamento, padrões engessados (inclusive estou sofrendo pra caramba com isso no momento, porque adotamos o Scrum, mas, com os padrões de documentos existentes hoje é inviável trabalhar e estou tendo que pensar no meio do sprint, por que não houve tempo antes rsrs, em como adaptar e gerar métricas no cenário atual visto que sequer utilizamos uma ferramenta de controle de defeitos).

Liderança desinteressada que deixa exclusivamente a cargo do QA todas decisões, por hora acho que é isso.

A Talita de Oliveira respondeu a pergunta dizendo:

Bom, pelos projetos que atuei, a maioria dos problemas em fase de teste foi o tempo, mas no meu ponto de vista uma coisa leva a outra, como disse o Humberto tem a ver com a cultura da empresa. Digo que uma coisa leva a outra pelo fato da pressa, como já diz o ditado que pressa é inimiga da perfeição, dificilmente um time de testes por mais competente que seja não conseguirá entregar um projeto com a % mínima de bugs se não houver tempo. E essa falta de tempo acontece porque a fase de testes na maioria dos projetos está no final, pelo menos é assim que tenho trabalhado…em fases finais.
E quanto a equipe de testes aceitar desafio, é normal, pois ao longo da minha experiência a pressão sempre foi alta porque ouvi sempre: “Vocês são a parte final do projeto” ou “Vocês que dirão se a aplicação está ok ou não”. Então..acho que não só a equipe de testes é culpada, mas todos os envolvidos tem sim sua parcela de culpa.

Por que gostamos tanto de terceirizar a culpa?

A Sarah Pimentel lembrou que é sempre mais fácil terceirizar a culpa:

Se eu assumo que a culpa é minha ou que eu tenho qualquer responsabilidade sobre o que está acontecendo, eu sou forçada fazer algo a respeito. Se eu jogo a culpa no outro, o problema é dele e ele que se vire pra resolver, não impacta no meu dia a dia. Fiz uma vez um treinamento de relações humanas e meu professor me disse algo óbvio: não podemos mudar os outros, a não ser que eles mesmos estejam procurando uma mudança. Então se há uma situação que você quer resolver, ao invés de esperar pelo outro, procure em você o que você pode fazer para mudar a situação e naturalmente (na maioria das vezes) o outro vai ser influenciado pela sua mudança de comportamento.

Na minha opinião é da natureza do ser humano culpar o próximo. A Dorothy Graham falou um pouco sobre isso no CInTeQ 2010, contando que irmãos mais velhos, gostam de colocar a culpa nos mais novos (eu mesmo fiz isso muitas vezes rsrs).

Quando crescemos aprendemos que podemos botar a culpa não são nas pessoas, mas também no processo, metodologia, ferramenta, bug, tempo, etc. E assim fazemos, quantas vezes você já ouviu falar que vários projetos falharam por causa que usavam o modelo Cascata. Mas quem escolheu usar o modelo Cascata? As pessoas não foi!?

Segundo o Humberto Barboza:

Infelizmente quase nunca fazemos um “Mea Culpa”. Concordando com o que foi dito já na lista, boa parte da culpa é nossa que por gostar de desafios ou situações desafiadoras, aceitamos irresponsavelmente trabalhar com tempo reduzido, padrões engessados, ausência de ferramentas adequadas e até liderança inoperante, infelizmente. Tecnicamente erramos por exemplo estimando mal nosso trabalho, priorizando atividades menos relevantes e cedendo às pressões do nosso meio. Precisamos defender o nosso trabalho e demonstrar a importância de ser bem planejado, projetado e executado e qual o impacto na qualidade do produto e as consequências que pode ter.

Bem pessoal é isso. Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá, e poderão haver novas respostas nessa mesa redonda.

Fique por dentro das novidades, assine o feed do QualidadeBR.

O melhor da semana 11/04 a 17/04

Pessoal,

Segue abaixo, a lista com o melhor da semana, espero que gostem:

Você leu algo interessante, relacionado a área de Teste e Qualidade de Software, e quer compartilhar? Sinta-se à vontade em colocar nos comentários. 🙂

Abraços! E tenham uma ótima semana!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Como contratar um profissional para a área de Teste?

O tema da 19ª Mesa Redonda DFTestes foi “Como contratar um profissional para a área de Teste?”. A discussão teve 18 respostas e 8 participantes, sendo eles: eu, Sarah Pimentel, Robson Agapito, Felipe Silva, Shmuel Gershon, Rodrigo Almeida de Oliveira, Milton Vopato e Aderson Bastos.

Segue abaixo, um “resumo” da discussão, quem quiser acessar a discussão na íntegra, basta clicar nesses links 1 e 2 (necessário se inscrever no DFTestes).

Qual o peso que uma certificação deve ter durante a seleção?

Para a Sarah Pimentel, ela terá um peso diferente dependendo da senioridade da vaga:

Pra mim, ela por si só não pode ser eliminadora. Quando falamos aqui em outra mesa redonda sobre certificações eu comentei que se assim fosse, receberíamos o currículo de James Bach em nossa mesa e jogaríamos fora.

Dependendo da senioridade procurada há mais uma maneira de encontrar a certificação. Para um cargo júnior que não pede muita experiência ou não pede experiência (ao menos deveria ser assim), uma certificação é muito importante porque dá certo conforto ao selecionador técnico de que aquele profissional poderá manter conversas com seus colegas sem dificuldade e já possui o entendimento ao menos dos conceitos básicos de teste. Outro indicador é que não é fácil passar em uma certificação de teste sem experiência na área. Pra mim esse candidato é pró-ativo (foi buscar qualificar-se para ter um diferencial), possui boa capacidade de aprendizado (com curso ou sem curso pra suportar a sua certificação, ainda assim ele não tinha o mais importante que era a experiência e conseguiu sacar as coisas), e é dedicado.

Já pra uma pessoa mais pleno/sênior, pra mim conta mais a qualidade das experiências que ele teve do que a certificação.

O Felipe Silva concorda com a forma utilizada pela Sarah:

Eu concordo com a Sarah que tem mais peso quando o cargo pretendido é para novos na área. Na minha opinião como recrutador eu consideraria uma certificação se está fosse obrigatória para o meu cliente.

concordo com a maneira que Sarah encarava as certificações no momento da seleção.

Ao entrevista um candidato que possui certificações é importante perguntar para eles questões do tipo:
  • Por que você buscou essa certificação?
  • O que você acha que foi importante para você ter obtido o certificado?
  • Quais conhecimentos adquiridos poderão ser colocados em prática no cargo que estamos te oferecendo?

O Shmuel Gershon deu a sua opinião dizendo:

Como a Sarah, acho que “ela por si só não pode ser eliminadora”. Mas com um ‘twist’, porque no meu caso prefiro candidatos sem ela. Mas imaginem se eu fosse descartar um candidato só por que ele mencionou ser certificado no currículo! Não seria justo, tem que conhecer a pessoa pessoalmente.
Claro, alguém com certificação provavelmente vai passar por um conjunto diferente de perguntas na entrevista, porque temos que entender o que ele procurou na certificação, e qual importância ele dá para o material. Se o candidato simplesmente fez a certificação por inércia (parte dos estudos na faculdade, ou o emprego passado mandou todo mundo fazer, etc) fica mais fácil, porque a certificação pode ser ignorada.
A Sarah comentou que a certificação da mais conforto aos selecionadores.
O problema começa então, com esses selecionadores, que em vez de procurar o melhor profissional para o cargo, estão procurando o próprio conforto… :). Quem foi que selecionou esses selecionadores? 🙂
E em relação a “conhecer a pessoa pessoalmente” — concordo de novo com a Sarah que entrevistas de empregos, mesmo se compridas e/ou numerosas, são um péssimo modo de conhecer as pessoas.
Fica sempre um risco, uma loteria — tanto para o contratante como para o contratado.
No processo da empresa do Rodrigo Almeida, as certificações tem um bom peso:
No nosso processo conta muito, pois atesta que o candidato conhece teoricamente o assunto, pelo menos. E aliado à experiência prática do candidato, conta pontos sim na fase decisória.

Quais as principais características que devem ser avaliadas no candidato?

A Sarah Pimentel respondeu dizendo:

Na entrevista, é preciso explorar o CHA do candidato. Calma, não é nada místico. 😛 CHA = Conhecimento, Habilidade e Atitude. Não adianta ter qualquer combinação de dois desses critérios, é preciso ter os 3 senão não funciona. Então as perguntas devem direcionar para respostas que indiquem situações vivenciadas pelo candidato em que ele demonstrou ter o conhecimento para resolver, a habilidade de resolver eficazmente e a atitude de resolver eficientemente. Ele também precisa ser crítico e saber avaliar se a mesma situação poderia ter sido resolvida de outra forma melhor.

Ele precisa ter:

– conhecimento técnico condizente com a senioridade esperada;

– habilidades pessoais (capacidade de resolver conflitos, boa comunicação escrita e verbal, boa capacidade analítica, vontade de aprender, valorizar o compartilhamento de conhecimento,…)

Segundo o Felipe Silva:

Comprometimento, boa comunicação, pró-atividade, facilidade de aprendizado, capacidade de resolução de conflitos (diversos) e ver se a pessoa tem CHA = Conhecimento, Habilidade e Atitude, como dito pela Sarah.

Na minha opinião tanto as características as pessoais e os conhecimentos específicos para o cargo oferecido. Ou seja, pode variar muito de acordo com o cargo fornecido e as necessidades do projeto.

É importante avaliar o quanto ele gosta e se interessa pela área, pois assim poderemos saber se o profissional realmente busca crescimento na área. Além é claro, que também avaliar a “sede” por conhecimento que o candidato possui, isso podemos ver até pelo currículo, vendo os cursos/certificações que ele fez, conhecimentos que possui, perguntar os últimos livros que leu, etc.

Eu vejo que uma das principais características que um profissional de TI precisar ter é buscar o aprendizado contínuo, afinal nunca sabemos tudo, e a cada dia surge novas tecnologias/ferramentas. E um profissional de TI se torna “obsoleto” muito rápido se não se manter atualizado.

O que vale mais na seleção, as características técnicas ou as pessoais?

Segundo a Sarah Pimentel:

Pergunta complicada, mas eu prefiro apostar nas características pessoais. Um problema comportamental é muito mais complexo de ser resolvido do que um déficit técnico.

O Felipe Silva disse que:

Para área de testes eu digo que as pessoais, talvez para as outras áreas também, mas para a de testes tenho certeza que pesa muito. Reforçando o que a Sarah disse, é mais fácil treinar uma pessoa para adquirir um conhecimento técnico do que mudar a pessoa.

As pessoais, e a razão, como já foi falada, é muito simples: é mais fácil a pessoa aprender algum conhecimento, do que mudar algum comportamento.
Sempre que possível, tente avaliar o que o candidato é, e não o que ele tem. Afinal, é melhor um profissional mediano, motivado e interessado, do que um expert que só reclama (essa frase é tradução de alguma que ouvi, mas não me lembro a fonte rs).
Para o Shmuel Gershon:
Pessoais.
A maior parte das características técnicas são fáceis de ser ensinadas.
Para o resto das características técnicas, uma pessoas com excelente características pessoais em geral da um jeito de resolver a lacuna.
O Milton Vopato comentou sobre a colocação feita pelo Shmuel, dizendo:
“Ao contratar um testador, temos que ver como ele complementa o time existente.” – Shmuel

Acho fundamental a colocação acima.

Outra coisa importante é analisar não somente a parte técnica e de idiomas. Hoje em dia, é muito importante fazer perguntas para avaliar a índole da pessoa a ser contratada.
O entrevistador também deve levar em consideração se a empresa vai treinar a pessoa para certa tarefa e se sim, é mais importante uma pessoa motivada e proativa do que uma pessoa que já fazia a tarefa de outra forma e tem resistência a mudança.

Quais conhecimentos são essências de acordo com o cargo fornecido?

A Sarah Pimentel disse:

Isso eu acho que varia de acordo com o contexto de cada contratação, mas falando do que eu considero o mínimo:

Testador: Conhecimentos básicos de sistemas computacionais, noções de engenharia de sw e de processo de teste.

Analista de teste: Conhecimentos maduros em engenharia de sw, processo de teste, boas noções de garantia da qualidade e habilidade de aplicação de algumas técnicas de analise de teste

Automatizador: Conhecimentos maduros em engenharia de sw, processo de teste, arquitetura de sistemas, técnicas de analise de teste e programação, boas noções de garantia da qualidade

Gerente de teste: Conhecimentos maduros em engenharia de sw, processo de teste, garantia da qualidade e gerenciamento de projetos.

Já o Felipe Silva elencou as seguintes características:

Testador: Perfil investigativo, excelente poder de observação e concentração, raciocínio lógico e conhecimentos em informática.

Analista de teste: Conhecimentos em criação e execução de casos de testes ou similares e aplicação de algumas técnicas de analise de teste.

Automatizador: Excelente raciocínio lógico e programação, interpretação de casos de testes, facilidade em encontrar soluções para novos problemas.

Os conhecimentos/características que acho essenciais para cada posição:

  • Testador: conhecer bem o processo e as atividades de Teste de Software, boa escrita, ter atenção e buscar o perfeccionismo em suas atividades, está sempre disposto a novos desafios e ser pró-ativo na busca do conhecimento.
  • Analista de Teste: dominar Teste de Software, utilizar os conhecimentos adquiridos e estar sempre buscando melhorar a área. Além de buscar a manter a melhor relação com desenvolvedores, DBAs, administradores de rede, etc.
  • Automatizador de Teste: dominar Teste de Software, estar antenado com as tecnologias e ferramentas que surgem e que podem auxiliar o seu dia-a-dia. Saber bem uma linguagem de programação, design patterns, refatoração, testes unitários e integrados, ferramentas de integração contínua, repositórios (ex.: svn, git, etc). E também dominar as ferramentas que utiliza no trabalho.
  • Arquiteto de Teste: expert em Teste de Software e ter uma boa visão do desenvolvimento de software como um todo. E interessante ele ter uma mistura dos conhecimentos de um Analista de Teste com um Automatizador de Teste.
  • Gerente de Teste: expert em Teste de Software, uma boa bagagem profissional, gerência de projetos, excelente relacionamento interpessoal, ter o “poder” de inspirar as pessoas e boa capacidade de negociação.
O Shmuel Gershon deu a sua resposta dizendo:
Parafraseando a pergunta, os conhecimentos essenciais são de acordo com o cargo fornecido.
Às vezes precisa saber idiomas. Às vezes não precisa saber usar computador.

Como foram as suas experiências na contratação de profissionais para a área de Teste de Software?

A Sarah Pimentel compartilhou uma pouca das suas experiências, dizendo:

Em uma empresa anterior eu fazia seleção técnica. Isso compreendia a elaboração de provas (inglês e técnica) e entrevistas que em parte eram realizadas em inglês também. O candidato fazia as provas, eu corrigia e depois tinha 30 minutos para entrevista-lo tecnicamente e tirar minhas dúvidas em relação ao currículo e ao teste do candidato. Isso quando por demanda muito alta a entrevista comportamental com a psicóloga não entrava nesses 30 minutos também. Passar mais tempo que isso era inviável, pois impactaria nas minhas atividades técnicas para o cliente. Eu era líder de equipe dentro da minha empresa, analista de testes para o cliente e fazia seleção de pessoal. É complicado. O que eu costumava pensar era “dado o nível de senioridade desse candidato, eu gostaria de tê-lo na minha equipe? Enquanto líder técnica, qual o trabalho que eu vou ter com esse profissional para adaptá-lo à realidade do nosso cliente?” Esse questionamento me ajudou várias vezes a tomar decisões de contratação ou não e me deixar mais tranqüila quanto às decisões que tomei.

O Felipe Silva fez um relato bem interessante sobre as suas experiências:

Falando de experiência em contratações gostaria de destacar que o melhor processo seletivo que já fiz (como recrutado) é o da empresa em que trabalho atualmente, o requisitos são mínimos, para um analista de testes por exemplo são: Criação e execução de casos de testes e inglês avançado (cliente americano).
Este foi o processo mais inteligente pelo qual já passei, lógico que a empresa não economiza entrevistas, eles fazem isso para que cheguem até eles o máximo de CVs que atendam aos requisitos mínimos obrigatórios, isso lhes assegura que não iram perder a chance de recrutar boas pessoas só porque não tem uma certificação e etc, –  James Bach não seria descartado nesta seleção – o processo seletivo de cada pessoa demora de 3 meses até mais de uma ano.
Isso porque são feitas várias entrevistas por telefone e presenciais durante o período, algumas até com participação do cliente e quando a pessoa não é aprovada em uma das fases finais ao invés da pessoas ser “descartada” eles iniciam o processo seletivo da pessoa em outro projeto e não desistem até que a pessoa seja contratada (isso porque nas fases iniciais é analisado o psicológico da pessoa).
O processo de seleção passa por várias pessoas: Especialista em línguas, RH, Gerente de pessoas, gerente de projeto, líder de teste, um futuro colega de trabalho e as vezes cliente, entre outros.
Eles dizem mais ou menos isto que a Sarah disse, não importa muito o que a pessoa tem, mas sim o que a pessoa é.
Os conhecimentos e habilidades requeridos para trabalhar na maioria dos projetos de lá só podem ser adquiridos lá dentro, desejável que a pessoa tenha experiência na área (maior peso) e se possível experiência no exterior, os detalhes serão descobertos através de entrevistas (O CV praticamente não é usado para nada, apenas para arquivar, pois eles não “acreditam” em CVs, eles acreditam nas entrevistas).

Posso destacar também o processo seletivo de outras duas empresas que passei que também gostei, que são Embraer e InMetrics, em ambas eu realizei uma prova online, na Embraer chamaram todos os classificados em uma sala para prova escrita e psicotécnico, depois entraram na sala a psicóloga e os 3 lideres que estavam precisando de pessoas, cada um iria escolher um, passaram várias dinâmicas individuais e em grupo e perguntas. Na InMetrics eu fiz as melhores provas de raciocino lógico e conhecimentos técnico que já fiz, excelentes exercícios, e passei por várias entrevistas também, no caso da InMetrics a vaga era para automatizador.

Conclusão: De acordo com a vaga (testador, analista de testes, automatizar, arquiteto, gerente, etc) é recomendável ou não uma prova técnica, e para todos os casos entrevistas valem x vezes mais do que um currículo, deve-se tomar cuidado para não pedir o que não precisa (requisitos obrigatórios), pedir o que se pode pagar (talvez contrate alguém, mas essa pessoa ficará pouco tempo na empresa) e não correr o risco de excluir da lista pessoas com ótimo potencial (já vi menores programando melhor do que outros com y certificados), certificados são apenas papel, se a certificação é importante então que seja avaliado novamente os conhecimentos da pessoa, não confie na prova aplicada pela instituição certificadora, mesmo porque é fácil esquecer aquilo que não se pratica no dia a dia.

Ainda não tive experiências. Mas algo que percebi das seleções (todas para estágio/testador na área) que o pessoal já fez aqui na empresa:

  • Não é fácil encontrar pessoas com perfil para a área de Teste de Software;
  • Como temos uma “política” de formação profissional, damos mais importância as características pessoais do que as técnicas, até porque, o conhecimento para exercer a função, geralmente, só pode ser obtido dentro da empresa;
  • Difícil encontrar profissionais com pelo menos uma base sobre Teste de Software.

O Shmuel compartilhou de forma bem geral as suas experiências:

Fica comprido para escrever aqui.
Mas já contratei desde Engenheiros de Software a pós-graduados em filosofia. “Tive” melhores testadores que eram engenheiros de programação, estudantes de eletrônica, e até um com formação em arqueologia.

O Rodrigo Almeida disse que um bom processo facilita o sucesso na seleção dos candidatos:

Por enquanto todas boas. O processo que temos nos auxilia muito a contratar a pessoa certa

O Aderson Bastos destacou a importância de saber o porquê que estamos contratando:

Quem contrata deve, no mínimo, saber o porquê da contratação… Há momentos onde se faz necessário contratar alguém para “dar um gás” em um projeto (ou seja, temporário!), neste caso o skill do candidato deverá ser direcionado pela necessidade do projeto. Em outros momentos, contratamos porque estamos crescendo e queremos aumentar o time, aí sim devemos exigir mais dos candidatos, mas sempre de acordo com o planejamento estratégico da empresa (se não pretendo investir em offshore, de nada adiantará um candidato com fluência em Inglês ou qualquer outro idioma…).

Não devemos, jamais, descartar de uma entrevista a parte ética, o caráter e a integração do candidato à equipe, pois basta uma maçã podre para perdermos todo o cesto!!!

Bem pessoal é isso. Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá, e poderão haver novas respostas nessa mesa redonda.

Fique por dentro das novidades, assine o feed do QualidadeBR.

O melhor da semana 04/04 a 10/04

Pessoal,

Segue abaixo, a lista com o melhor da semana, espero que gostem:

Você leu algo interessante, relacionado a área de Teste e Qualidade de Software, e quer compartilhar? Sinta-se à vontade em colocar nos comentários. 🙂

Abraços! E tenham uma ótima semana!

Fique por dentro das novidades, assine o feed do QualidadeBR.

Teste de Software: Desafios do Início

Há muitas dificuldades para quem está começando na área de Teste de Software, mas sempre precisamos encarar as dificuldades, como desafios que estão lá para serem superados.

Um pouco de história…

Lembro que quando comecei a atuar na área de Teste de Software, aliás, foi meu primeiro emprego na área de TI, mal sabia o que era Teste de Software. E o interessante que ninguém na empresa sabia muito bem o que era Teste de Software, pois eu e mais dois estagiários entramos na área, justamente para iniciá-la.

Após, quase três anos na área, percebi que a situação ocorrida comigo, não era tão incomum como eu pensava na época. Muitos profissionais entram ou mudam para a área de Teste de Software, justamente para iniciá-la, e alguns até formam uma “euquipe”.

Bem, já podemos levantar alguns desafios que podemos enfrentar:

  • Falta da cultura de testes na empresa;
  • Sobrecarga de papéis.

Formação acadêmica

Não faz tanto tempo assim que me formei, foi em dezembro de 2008, e hoje fazendo um levantamento do que eu aprendi na faculdade e que aplico no meu dia-a-dia, vejo que o papel da faculdade foi muito mais em pró de formar uma base de conhecimentos, do que me prover conhecimentos que poderiam ser diretamente aplicados no dia-a-dia.

Sei que formação acadêmica é um assunto polêmico na área de TI, mas no meu caso,  a faculdade foi fundamental para a minha formação profissional, principalmente, por não ter me dado o peixe, e sim ter me ensinado a pescar. E aproveitando para fazer uma metáfora: o mar da área de TI é abundante de informações, portanto, considero fundamental saber pescar (falarei mais sobre isso num post futuro). 😉

Agora voltando a temática do post, afinal tenho uma “extensa” lista de conhecimentos de Teste de Software que aprendi na faculdade:

  • O que é teste de Caixa-Preta e Caixa-Branca.

E aqui levanto mais um desafio:

  • Se sobressair mesmo com uma formação acadêmica fraca em Teste de Software.

Fontes de conhecimento sobre Teste de Software

Perto de quando comecei na área, hoje está MUITO mais fácil obter conhecimento sobre Teste de Software na Internet. Para ter uma ideia, hoje contei 78 feeds de blogs/sites sobre Teste de Software, que assino via Google Reader. Lembro que quando iniciei na área, as minhas duas fontes principais fontes eram: os artigos do Cristiano Caetano e  os do Alexandre Bartie (essa série sobre “Processo de Teste de Software” eu li várias vezes rs).

Já em matéria de artigos/dissertações/teses acadêmicos, hoje já conseguimos encontrar bons materiais sobre Teste de Software, mas ainda não são tantos assim, e esses você realmente tem que pesquisar nas bibliotecas digitais das universidades ou entrar em contato com  os autores.

Agora falando em livros, ainda estamos MUITO longe da qualidade e quantidade dos livros escritos lá fora. E não tem como, essa é a primeira comparação que fazemos ao pensar em livros para a área de TI. Mas para quem está começando há boas literaturas, como por exemplo, o Base de Conhecimento em Teste de Software.

Outra fonte de conhecimento muito boa para quem está começando são cursos, tanto de formação, como os específicos para certificações, conseguem dá uma boa base sobre Teste de Software para o profissional. Porém, muitos deles tem um custo bem elevado, se formos considerar que quem irá pagar será o próprio profissional que exerce um cargo de estágio ou junior.

Aqui levanto outro desafio, que está associado ao anterior:

  • Obter conhecimento sobre Teste de Software.

Visão das outras áreas em relação ao Teste de Software

No início, principalmente, quando a área é recente, uma grande mudança ocorre quando todos tem uma visão sensata e reconhecem a importância dos testes. Já quando, a área já é matura e nós que somos os completos novatos, precisamos de um certo tempo para realmente ligar todos os conhecimentos adquiridos e entender a real importância dos testes, e isso é algo que cada um tem que perceber sozinho, não adianta eu falar para você, pois você que precisa descobrir o quanto o seu trabalho é importante.

É muito difícil encontrar uma empresa que tenha a cultura de testes enraizada, hoje não tanto, devido ao boom das metodologias ágeis. Mas mesmo assim, muitos de nós precisamos estar sempre justificando as necessidades de testes para a funcionalidade X, porque precisamos de mais uma semana, explicar que teste de software não é desperdício é investimento, etc.

E aqui levanto um último desafio (há muitos outros!):

  • Entender e deixar claro a importância do Teste de Software.

Bem, o post foi mais para levantar alguns dos desafios que costumamos enfrentar no início da carreira na área de Teste de Software, em próximos irei falar mais sobre cada um dos cinco desafios levantados aqui. Até mais! 😀

Fique por dentro das novidades, assine o feed do QualidadeBR.

Fonte Imagens:

Multi-task (autor ryantron) – http://bit.ly/a2Mwz6

Cartoon Tester – Andy Glover  – http://bit.ly/aK7hpB

Software Testing for Dummies – http://bit.ly/bpgFQ0

Challenge (autor HawkeyePilot) – http://bit.ly/aNL1AB

Projetos de Testes

Na 18º Mesa Redonda DFTestes o tema discutido foi Projetos de Testes. A discussão rendeu, até o momento, 26 respostas e teve 12 participantes, sendo eles: eu, Shmuel Gershon, Rodrigo Almeida de Oliveira, Robson Agapito, Leonardo Molinari, Aderson Bastos, Lorena Lyra, Elias Nogueira, Sarah Pimentel, Ueslei da Silva, Felipe Silva e Eduardo Gomes.

Abaixo, faço um “resumo” de como foi essa mesa redonda, e quem quiser acessar a discussão na íntegra, basta acessar esse link (necessário se inscrever no DFTestes).

Quais são os maiores desafios do gerenciamento de projetos de testes?

De acordo com o Felipe Silva:

Inicialmente os mesmo desafios de qualquer projeto, estimar corretamente, não ultrapassar a estimativa, entregar no prazo, encontrar “todos” os defeitos, não ultrapassar o orçamento planejado, satisfazer todos os stakeholders, manter as pessoas motivadas, aprender com o projeto corrente lições para o próximo projeto, não cair novamente no mesmo erro de um projeto passado, inovar, aumentar os skills do time, gerar e interpretar corretamente as métricas, etc

Como o Felipe disse, os mesmos de qualquer outro projeto. E alguns extras:

  • Saber quando parar de testar;
  • Lidar com os retestes e negociar eles com a gerência do projeto;
  • Contratação de profissionais, o mercado carece de bons profissionais;
  • Estabelecer uma boa relação e comunicação com a equipe de desenvolvimento.

Por que podemos encarar os testes como projetos?

O Leonardo Molinari compartilhou a sua visão dizendo:

Na minha visão, “testes são projetos dentro de projetos”. Depende do nível que desejamos analisar e depende de como a organização encara o nivel de célula de um projeto.

Em teste, temos todas as etapas típicas de projeto (não estou me prendendo ao PMI ou a outra definição) que compõe o velho PDCA: plan do check act. Em desenvolvimento apenas abrimos uma outra etapa, mas está lá o velho PDCA. Planejar: até para planejar é preciso inputs (no caso de testes poderiam ser os requisitos ou um conjunto de bugs) p/ poder definir o cronograma e criar os casos de testes. Em “do” poderíamos ter o criacao dos testes. Em check, teríamos a verificão do que foi planejado. Em act teríamos a validacão ou criação de bugs.

Quando as empresas alocam equipes de testes (ex: terceirização), podemos ver mais claramente um projeto de teste.

Quando num projeto típico de desenvolvimento que considera testes como uma fase, teremos que no mínimo fazer o velho PDCA nem que seja para nós mesmos…

O Felipe Silva deu a sua opinião falando:

Porque ajuda na organização e planejamentos de custos e esforços, faz com que se tenha orçamento direcionado “obrigatoriamente” aos testes, cria-se uma vertical que se interligada as horizontais e bem gerenciada facilita na administração, olhar direcionado e valorização da alta gerência a equipe de testes.

Na minha opinião, porque ele pode ser “um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo”. 🙂

Lembrando que também somos responsáveis pelo desenvolvimento do software, não codificando o sistema, mas auxiliando o processo de desenvolvimento.

Quais outras opções existem? No que elas são melhores que “projetos”?

Uma boa questão levantada pelo Shmuel Gershon.

O Rodrigo Almeida respondeu dizendo:

Existe a operação contínua, que faz parte da manutenção corretiva de um software/produto.  Não é melhor ou pior do que projetos, mas é diferente.

Eu de bate pronto eu responderia processo e projeto. Cuja definição podemos pegar do PMBOK e do CMM:

Um projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. (PMBOK)

Um conjunto de atividades, métodos, práticas e tecnologias que as pessoas utilizam para desenvolver e manter software e produtos relacionados. (CMM)

Lembrando que um projeto pode ter vários processos, dentre os quais podemos ter o processo de Teste de Software.

Agora tentando pensar mais sobre a questão levantada, me lembrei de um tal de modelo cascata, que é pouco conhecido e criticado (rs). Nele os testes são encarados como uma fase.

E os testes também podem ser só mais uma atividade dentro do desenvolvimento, principalmente, quando não temos um processo definido, e os testes são feitos de forma informal, muitas vezes pelo próprio desenvolvedor ou por um estagiário (nada contra estagiários)

O “melhor” irá depender do contexto, exemplos:

  • Desenvolvimento de um web site com dois desenvolvedores sêniores e um designer
    • Os testes são encarados como uma atividade comum no desenvolvimento do software, os desenvolvedores utilizam BDD, testes unitários e integrados.
  • O ERP sofre manutenções frequentes
    • Aqui você pode encarar cada manutenção como um projeto, mas também pode encarar tudo como um processo de manutenção do software, principalmente, quando há já um contrato de manutenção acordado com o cliente, agora se houver um contrato de uma nova versão com novas versões e correções de bugs, já podemos encarar os testes como projeto já é melhor, afinal a entrega da versão tem um término, não é algo contínuo, como as manutenções.
  • Customização de um web site, exemplo loja virtual
    • Neste caso podemos trabalhar de forma incremental ou até cascata, de tivermos tudo bem especificado ou a customização for bem simples e a equipe experiente, e teríamos os testes dentro da fase de teste.

Um ponto interessante que o Eduardo tocou foi que ao lidar com os testes como um projeto, eles passam a não ser deixados como segundo plano, e assim muitas vezes ganhamos com um maior profissionalismo, atenção, disciplina e eficiência nas atividades do Teste de Software.

O Elias Nogueira compartilhou a sua opinião, relacionada a pergunta dizendo:

Quando estamos dentro de uma Fábrica de Testes, temos a necessidade de ter o controle sobre tudo o que acontece. Isso envolve uma série de itens de Gerencia de Projeto ‘tradicional’ (PMI) como controlar o custo do projeto, recursos, cronogramas, etc…

Mesmo em métodos ágeis, estes item são executados e controlados, porém muitos deles sem a visão tradicional (trabalhar sobre um scrumboad é criar em partes o cronograma do projeto).

Agora, na realizada de alguns aqui que testam software COTS, não necessariamente tratamos os testes como um projeto, pois ele já está dentro do projeto do desenvolvimento do produto.

O que vale na minha opinião, é aprender um pouco sobre as metodologias de gerenciamento de projetos e ver qual delas se encaixa melhor a nossa realidade.

Quais dicas você daria para obter sucesso no projeto de teste?

O Felipe Silva acredita que o melhor é investir nas pessoas:

Buscar vencer todos os desafios citados na primeira pergunta, ter uma equipe ou papel de pessoas buscando sempre por novas tecnologias ou soluções, um trabalho FORTE em cima das PESSOAS, incentivando (participar do DFTestes por exemplo), tirando o melhor de cada pessoa (ao invés, de ficar tratando “gaps”), projetos são feitos por pessoas, o sucesso do projeto tem tudo a ver se o recurso trabalha motivo e feliz ou não, aqui na empresa existe até um papel de gerente direcionado somente a manter a “saúde” dos recursos, investir em treinamentos, apoiar realmente, acreditar as pessoas, tratá-las como profissionais dando liberdade (até o nível que máximo que for possível), acho besteira ficar controlando que sites o recurso está acessando, por exemplo, tratar as tarefas como metas, cumpriu a meta é pronto e ponto final, lógica que se destacará quem aproveitar os gaps de tempo para o bem do projeto. Invista nas PESSOAS!

Segue algumas:

  • A número 1 é contratar pessoas insubstituíveis. 🙂
  • Já como a primeira dica não é nenhum pouco fácil de realizar, foque a contratação nas características pessoais, lembre-se que para atuar na área de Teste de Software a pessoa precisa ter características específicas;
  • Capacite as pessoas, principalmente no domínio do sistema que será testado;
  • Utilize um processo incremental;
  • Tenha ciência das ferramentas que podem auxiliar no seu projeto, e porque utilizar elas;
  • Não enxergue apenas o seu próprio umbigo (projeto de teste), considere sempre o projeto como um tudo, tenha uma visão do todo e da importância do seu projeto de teste para o todo;
  • Busque a melhoria contínua, distribua e peça feedbacks constantemente.

Até que ponto o gerente do projeto deve influenciar o projeto de teste?

Para o Felipe Silva a resposta dessa pergunta depende muito do cenário de cada projeto:

Até que ponto ele não deve? Difícil responder essas perguntas, primeiro porque cada gerente de projeto tem um poder de influencia e cada gerente tem suas atividades, cada gerente tem um angulo de visão diferenciado, o que estou dizendo é em relação as empresas, já difícil eu responder até que ponto o gerente do “MEU” projeto deve influenciar o projeto de testes, quem dirá responder de modo geral.

Como o Felipe Silva disse, a pergunta é difícil de ser respondida. Eu nunca tive problemas com os gerentes dos projetos, que participei. E acredito que a influência deles deve ser positiva para os testes, e para isso é fundamental eles enxergarem a importância dos testes e terem ciência da dependência existente entre os testes e o sistema sob teste.

Experiências com projetos de testes

O Robson Agapito compartilhou um pouco da sua experiência com projetos de testes, mostrando que lidar com os testes como sendo um projeto pode dá ótimos resultados:

Creio que eu posso ajudar neste quesito, pois levei a sério esta situação de teste como projeto e está dando certo, pelo menos para a minha equipe.

O controle sobre cada atividade está sendo muito bom… nós sabemos o que temos que testar, quanto já testamos, se estamos atrasados ou adiantados, o que entrou no meio do projeto, entre outras coisas.

Hoje temos algumas gerências trabalhadas, seguindo o padrão informado pelo MPS-Br, e que agora está no MPT-Br:

-> Gerência de Escopo
-> Gerência de Custo
-> Gerência de Tempo
-> Gerência de Qualidade
-> Gerência de Recursos Humanos
-> Gerência de Problemas

Estava trabalhando com Gerência de Risco em um excel, mas estava se tornando muito trabalhoso, então parei e assim que automatizar esta situação voltarei a trabalhar.

O que facilita esse trabalho é que a equipe é boa e madura nos processos de testes pré definidos pela célula de testes.

Além de ter um líder especifico e focado na liderança e não um líder que está trabalhando na base, o que faz toda a diferença, pois o planejamento do projeto, o controle e acompanhamento tomam muito tempo, o que se o líder estiver na base testando não conseguirá fazer as duas coisas bem feitas, nem testar e nem coordenar todo o projeto.

Futuramente colocaremos as seguintes gerências:

Gerência de Treinamento
Gerência de Riscos (como já falado)

Além do gráfico BurnDown que já estou trabalhando no mesmo.

Bem, o que posso lhes dizer na prática é que está funcionando, mas porque a empresa segue a metodologia do MPS-Br (o CMMI Nacional).

Claro, os projetos somente valem a pena para nós quando tem a carga horária maior que 50 horas, pois senão vai se levar mais tempo para planejar e acompanhar do que para testar.

O Eduardo Gomes também compartilhou um pouco da sua experiência com projetos de testes e os resultados que podemos obter ao lidar com os testes como sendo um projeto:

Tratar as atividades de teste como um projeto é uma das melhores abordagens para apoiar na internalização da cultura de testes na organização.
Em 2008, exploramos em um TCC do curso de Gestão de Projetos de Software exatamente o tema “Gerência de Projetos de Teste de Software”. Naquela época estávamos ainda estruturando as primeiras equipes independentes de teste no banco e a maturidade e a vivência em testes estava ainda bem no início dentro dessas equipes.
Mas já percebía-se uma grande similaridade entre o gerenciamento das atividades nos projetos de desenvolvimento e das atividades de teste que apoiavam estes projetos.

A resistência ao termo Projeto de Teste, desde o início, sempre foi muito grande, principalmente porque as atividades de testes fazem parte do processo de desenvolvimento. Outro argumento contrário à utilização do termo é que as atividades de teste podem ser continuadas ao longo do ciclo de vida do software, através de testes regressivos e já fora do contexto de um projeto.
Mas quando falamos de um projeto de desenvolvimento, não temos dúvidas de que o teste pode ser tratado como um projeto, que podemos classificar como um “projeto de apoio”, apenas para diminuir as resistências à utilização do termo.

No TCC mencionado, analisamos todas as áreas de conhecimento em gerenciamento de projetos preconizadas pelo PMI, avaliando a aplicabilidade das atividades de gerenciamento propostas ao gerenciamento das atividades de teste. Apoiando essa avaliação, procuramos aplicar no dia-a-dia da equipe alguns dos conceitos de gerenciamento de projetos, o que gerou excelentes resultados. Isso nos permitiu concluir pela viabilidade do tratamento dos testes sob a forma de um projeto específico.
Tanto nos projetos de desenvolvimento como nos projetos de teste, existe a necessidade de efetivo gerenciamento do escopo, dos prazos, custos e qualidade do projeto. Ou seja, as restrições são comuns aos dois tipos de projetos. Além disso, nos dois casos são utilizados
planos adicionais ou complementares ao plano global de projeto, como os planos de gerenciamento de recursos humanos, comunicações, riscos e aquisições.

A principal vantagem dessa abordagem, na minha opinião, é a independência e o maior patrocínio que os testes recebem dentro da organização. Isso é importante para que os testes não sejam deixados em segundo plano, o que infelizmente, ainda é muito comum na maioria dos projetos que tratam os testes apenas como uma fase do processo de desenvolvimento.

Vocês acham que temos condições (maturidade, apoio da alta diretoria…) de encararmos o teste como projeto?

Pergunta bem pertinente realizada pelo Aderson Bastos.

O Ueslei Silva respondeu a pergunta contando um pouco de uma experiência que teve:

Quando a alta Gerência de uma empresa cria resistência, acho que a solução é implantar aos poucos, pois desta forma os resultados aparecem de forma efetiva, o que, por fim, acaba mudando a visão da empresa e fazendo-a dar apoio.

Foi dessa forma que conduzi o trabalho em uma empresa que trabalhei, cujo software era um ERP com 23 módulos. O ambiente de desenvolvimento e teste um verdadeiro caos. Separei a equipe de testes em 2 partes. Uma parte mantive na demanda de teste diário para atender manutenção corretiva, e a outra elaborar casos de testes, pois não se tinha nenhuma documentação de desenvolvimento e nem de teste.
Como o ERP, tem 23 módulos interligados, Acontecia muito o fato de uma manutenção corretiva  em determinado módulo propagar bugs a outros módulos. Criamos um mapa de interdependências, aumentando assim a cobertura dos testes para reduzir os erros propagados. Em seguida, inseri num projeto de manutenção evolutiva de, cerca de 400hs, o uso de Projeto de Teste, tendo o Plano de Testes, casos de teste, estratégias, automatização, etc… Aos poucos fomos evoluindo. Até onde sei, a empresa agora está com 3 divisões na equipe. Uma mantendo as demandas diárias de correção, outra com projetos evolutivos e a terceira com automatização.
Mesmo com toda a propagação de trabalho baseado em projeto, ainda vivemos a realidade de que o cliente quer tudo para ontem, a empresa não que perder a oportunidade nem o cliente mas, para atender, alguma coisa tem que morrer. Nessa hora, morre documentação, planejamento, gerencia de riscos, de RH, etc, etc… (existem casos que só não morrem os bugs…)
Na própria pergunta já tem a direção da resposta (rs).Maturidade eu vejo que ainda falta em muitas área de Teste de Software, não que isso seja um ponto tão negativo, uma vez que muitas áreas são bem recentes e há uma boa rotatividade de profissionais (na minha opinião, as pessoas ainda são o pilar principal para termos maturidade). Além disso, acredito que ainda há muitos profissionais que estão em um contexto, onde os testes estão no fim do processo de desenvolvimento, o que dificulta a eficiência dos testes;Apoio da alta diretoria vem sendo conquistada aos poucos, e esse apoio é muito importante, principalmente quando tratamos os testes como projeto.

Agora outro ponto importante são as pessoas, eu vejo que se for comparar o mercado de profissionais de hoje, do que quando eu entrei na área (em 2007) houve um bom progresso na maturidade e qualificação dos profissionais, prova disso são os níveis de discussões que temos aqui no DFTestes, entidades de ensino especializadas em cursos de Teste de Software, livros, eventos, blogs, etc.

Mas como eu disse antes, tudo depende da sua realidade, em certos projetos o melhor pode ser tratar os testes como uma atividade comum no desenvolvimento do sistema (e ao menos testes unitários e integrados deveriam ser!), e isso ocorre bastante, em empresas que utilizam metodologias ágeis. E mesmo, nesse contexto o profissional de Teste de Software tem um papel importante no projeto.

Bem pessoal é isso. Continuem de olho na lista do DFTestes, pois sempre há assuntos bem interessantes lá, e poderão haver novas respostas nessa mesa redonda.

Fique por dentro das novidades, assine o feed do QualidadeBR.

Nunca tive problemas com os gerentes dos projetos, que participei. A influência deles deve ser positiva para os testes, e para isso é fundamental eles enxergarem a importância dos testes e terem ciência da dependência existente entre os testes e o sistema sob teste.

O melhor da semana 28/03 a 03/04

Pessoal,

Segue abaixo, a lista com o melhor da semana, espero que gostem:

Você leu algo interessante, relacionado a área de Teste e Qualidade de Software, e quer compartilhar? Sinta-se à vontade em colocar nos comentários. 🙂

Abraços! E tenham uma ótima semana!

Fique por dentro das novidades, assine o feed do QualidadeBR.