Escolar Documentos
Profissional Documentos
Cultura Documentos
Emerson Rios
Diretor do Instituto de Teste de Software - iTeste Presidente da Associao Latino Americana de Teste de Software - ALATS emersonrios@alats.org.br
Abstract. This article describes a proposal to deal with risks in projects of software tests. We consider tests as a parallel project to the project of development of software. This way its treated in the same manner the PMI stipulates in its PMBOK, with life cycle as well as a plan for managing risks. In the tradicional models, tests continue to be treated as an activity or one step in the project of development of software.The article also shows that the tests of software can be one process with its own process of management of risks as the CMMI defines in its methodology. Resumo. Este artigo descreve uma proposta de tratamento de riscos em projetos de testes de software. Consideram-se os testes como um projeto paralelo e aderente a um projeto de desenvolvimento de software, sendo desta forma tratado da mesma forma que o PMI apregoa no seu PMBOK, com ciclo de vida e um plano de gerencia de riscos. Nos modelos tradicionais o teste continua ainda a ser tratado como uma atividade, ou seja, uma etapa dentro do projeto de desenvolvimento de software. O artigo mostra tambm que o teste de software pode tambm ser um processo com uma rea de processo de gerncia de riscos, conforme define a metodologia do CMMI.
1. O que risco
Para entendermos corretamente o conceito de risco teremos que levar em considerao alguns elementos envolvidos na sua definio. A primeira preocupao que devemos ter ao definir um risco o seguinte: Se alguma coisa com certeza vai acontecer, ento isso deixa de ser um risco. Um risco nunca uma certeza de ocorrncia. Se alguma coisa vai realmente ocorrer, com probabilidade de 100%, ento isso um problema e no um risco. Um risco pode ser tratado preventivamente, o que no ocorre com um problema. Se um risco uma coisa que no temos certeza que vai ocorrer ento podermos usar a seguinte definio para risco: Risco algum evento no futuro cuja ocorrncia poder causar algum tipo de problema, no caso, ao projeto de teste de software.
Podemos tambm afirmar que um risco um acidente de percurso que pode causar um desvio anormal num projeto ou num processo. Um projeto tem um ciclo de vida que pode ser mudado pela ocorrncia de um evento, que no incio do projeto foi caracterizado como risco, impedindo o seu prosseguimento normal. Se voc est preparando uma viagem para So Paulo de avio, um atraso no vo um risco. Um risco pode se tornar um problema, caso no venha a ser gerenciado. Um risco pode ser dividido da seguinte forma: Sintoma Fonte Conseqncia. 1.1. Sintoma Chamamos de sintoma aquilo que pode indicar um problema. Se usarmos como exemplo o uso de uma ferramenta de automao para a executar testes de carga o sintoma seria: Execuo inadequada dos testes de carga.
1.2. Fonte
Podemos dizer que a fonte do risco o processo de aquisio da ferramenta que precisa estar concludo num prazo hbil que permita a equipe de teste ser treinada no seu uso, alm de precisar de tempo suficiente para us-la em projetos pilotos.
1.3. Conseqncia
A conseqncia da ocorrncia do risco, virando um problema, podem ser testes de carga mal executados ou at a sua falta de execuo em tempo hbil, por falta de disponibilidade da ferramenta a ser usada.
1.4. Resumo
Podemos resumir esta definio de risco da seguinte forma: Devido a uma <fonte>, o <sintoma> est ocorrendo, podendo causar <conseqncias>. Voltando ao nosso exemplo podemos afirmar o seguinte: Devido a um <atraso no processo de aquisio do software de teste de carga>, a <execuo inadequada dos testes de carga> est ocorrendo podendo causar <a liberao do software sem a adequada performance exigida nos seus requisitos>. Para fixar este conceito vamos dar um outro exemplo. Vamos supor que a equipe de testes no consegue preparar adequadamente os seus casos de teste porque a equipe de desenvolvimento do software tambm no documenta adequadamente os seus casos de uso. Isso com certeza poder fazer com que alguns defeitos no sejam detectados, resultando em possveis problemas no negcio. Usando a nomenclatura definida anteriormente podemos afirmar o seguinte: 2
Devido a <falta de documentao dos casos de uso>, os <casos de teste foram preparados inadequadamente ou incompletos> o que poder <produzir testes mal feitos causando o surgimento, posteriormente, de defeitos no ambiente de produo>.
Regra 10 de Myers
12000 10000 Custo em US$ 8000 6000 4000 2000 0
D es en ho Te st e
Evitar ou transferir
Caso consigamos evitar o risco ou transferir a sua responsabilidade para outro, ele deixa de ser um risco do projeto. Para isso preciso analis-lo e conhece-lo.
Aceitao
O risco foi identificado e definido como de responsabilidade da equipe de testes, e, neste caso, precisamos elaborar um plano para que possamos evitar que o risco venha a se tornar um problema no futuro.
Mitigao
Atravs da mitigao vamos preparar um caminho para reduzir o impacto do risco dentro do projeto de testes. Desta forma procuraremos evitar que o risco se transforme num problema, embora possa vir a causar prejuzos limitados.
Monitorao
Os riscos identificados precisam ser monitorados para que possamos saber se a probabilidade de ocorrncia est se tornando maior ou menor. Caso caminhemos para a certeza da sua ocorrncia o plano de contingncia dever ser acionado.
5. Gerencia de riscos O diagrama mostrado na Figura 3 mostra o modelo para o processo de gerncia de risco de testes. Este modelo identifica seis etapas, quais sejam: Identificao Anlise Classificao Planejamento Monitoramento/Rastreamento Controle Identificao de riscos O primeiro passo no processo de gerenciamento de riscos identificar os riscos..
Para identificar esses riscos podemos adotar o seguinte critrio:
Gerencia de Riscos
Incio Controle
Rastreamento
Identificao
Planejamento
Anlise
Classificao
Fazer sesses de troca de informaes (brain storm) entre os principais tcnicos envolvidos nos projetos de teste e de desenvolvimento. Rever a documentao do software buscando conflitos, ambigidades e plausibilidade (viabilidade de uso e aplicao). Muitas vezes um requisito ambguo, por exemplo, pode gerar defeitos no produto entregue e causar prejuzos srios ao negcio. Neste caso, no ser possvel escrever um requisito de teste adequado. Utilizar um lista de verificao com riscos conhecidos para identificar aqueles que podem ocorrer no projeto de testes, como, por exemplo, uma base de riscos da organizao.
Entrevistas
Nem sempre a base de documentos dos projetos de teste est suficientemente atualizada e nem sempre todos os problemas ficam registrados. Todos ns sabemos que pela prpria natureza humana alguns gerentes procuram esconder as suas falhas. Outros nem sempre so to cuidadosos. Desta forma, para buscar problemas passados ou outros que podem ocorrer, e, que muitas vezes j esto na cabea dos tcnicos experientes, uma outra maneira de identificar os riscos atravs da entrevistas com tcnicos e gerentes chaves no processo de testes, ou que possam vir a ter influncia neste processo.
O processo para identificao dos erros, neste caso, deve iniciar incentivando todos os participantes a identificarem os potenciais riscos do projeto que sero registrados numa lista. Cada um tem liberdade para incluir o risco que achar importante e que possa prejudicar o bom andamento do projeto de testes. Esse processo deve continuar, com toda a liberdade, sem restries ou censuras, at que uma lista completa esteja pronta. O passo seguinte deve ser a classificao dos riscos listados como sintoma, fonte e conseqncia. Lembre-se do quadro que repetimos adiante. Devido a uma <fonte>, o <sintoma> est ocorrendo, podendo causar <conseqncias>. Muitas vezes fcil confundir sintoma com fonte, logo devemos tomar cuidados nesta classificao. Identificados todos os riscos possveis devemos ento classific-los como riscos do projeto, processo ou produto, ou outra forma de classificao adatada pela organizao. Com esta lista organizada da forma descrita, devemos discutir o mximo possvel sobre os impactos de cada um dos riscos. Esta uma das formas de identificarmos de forma ordenada e estruturada alguns dos riscos dos projetos de teste. Lembre-se que existem outros mtodos que podem ser usados para identificar os riscos, como a reviso da documentao e a lista de verificao que descreveremos adiante.
Reviso da documentao
Existem diversas tcnicas de inspeo e de reviso de documentao que fazem parte da atividade de verificao. O usual fazer atravs de reunies envolvendo os tcnicos chaves para o projeto de testes. Um dos documentos mais importantes e que faz parte do incio do processo de testes so os requisitos do projeto de desenvolvimento e que iro originar os requisitos do projeto de testes. Lembre-se que falamos anteriormente que a anlise dos requisitos do sistema, e, conseqentemente, a preparao dos requisitos de teste, a primeira etapa do ciclo de vida do processo de testes. A reviso da documentao tem por objetivo encontrar o seguinte: Conflitos Ambigidades Plausibilidade Detalhando um pouco mais temos as seguintes definies: Conflitos Os requisitos esto consistentes entre si? No existem conflitos entre os requisitos e outros itens? Os requisitos esto pertinentes com as necessidades de negcio do usurio? 8
Ambigidade Existe apenas uma interpretao do requisito? Os significados esto claramente entendidos? A terminologia usada est consistente? Plausibilidade Os requisitos so passveis de serem cumpridos? Os requisitos podem ser implementados com as tcnicas, ferramentas, recursos e pessoas disponveis, e tambm dentro do oramento, custo e cronograma?
Este mesmo mtodo pode tambm ser usado quando fazemos a reviso ou inspeo de outros documentos do projeto de desenvolvimento e do projeto de testes. Por exemplo, o Plano de Testes fonte para outros documentos como os Casos de Testes. Da mesma forma que os requisitos, o plano de testes deve estar sem ambigidades, sem conflitos e deve ser plausvel de ser implementado.
Lista de verificao
Existem listas de riscos j prontas para projetos de testes, cujo contedo no vamos detalhar, que classificam os riscos da seguinte forma: Processo de teste Tamanho do produto Usurio Gerencia do projeto Processo de software Pessoas Tecnologia.
Certamente outras listas podero ser acrescentadas s mostradas anteriormente pois os riscos podem acontecer devido a diversos outros aspectos inerentes, especificamente, ao ambiente onde o projeto est sendo desenvolvido.
O risco no est sendo tratado pelo plano de gerncia do projeto de software? Os riscos devem ser identificados e listados numa tabela com o seguinte contedo bsico: Risco Tipo de risco Probabilidade Impacto ou criticidade Classificao ou pontuao probabilidade x impacto Data de reviso do risco Responsabilidade Plano de mitigao Plano de monitoramento Plano de contingncia
Probabilidade
A sugesto que sejam utilizados valores entre 10% e 90% e que os incrementos sejam em mltiplos de 10. Lembre-se que 0% no precisa ser tratado, visto que o risco no vai ocorrer, e que 100% uma certeza de ocorrncia, logo no um risco e sim um problema.
Criticidade
A sugesto que seja utilizada uma escala de 1 a 5, onde poderamos identificar os valores da seguinte forma: 1 impacto baixo no sucesso do projeto; 2 impacto mdio no sucesso do projeto; 3 impacto alto no sucesso do projeto; 4 impacto muito alto no sucesso do projeto; 5 impacto que pode afetar seriamente o sucesso do projeto.
Pontuao
Multiplicando-se os valores da probabilidade pela criticidade teremos nmeros entre 0,1 e 4,5. A tabela deve ento ser ordenada pelos valores da pontuao. O gerente do projeto de testes deve ento reservar pelo menos os dez maiores riscos para que sejam tratados. Pode ser que em projetos muito grandes existam muitos riscos com pontuao alta e que no devem ser descartados. Na verdade, o bom senso aconselha a que os riscos considerados altos, 4 a 4,5, por exemplo, devem ser sempre monitorados.
10
Uma vez selecionados os riscos, para cada um deles dever ser feito o seguinte: Preparar um plano de mitigao Preparar um plano de monitorao ou rastreamento Preparar um plano de contingncia.
Plano de mitigao
O plano de mitigao serve para que o gerente possa tentar diminuir o impacto do risco ou at mesmo evitar a sua ocorrncia. Atravs da mitigao vamos preparar um caminho para reduzir o impacto do risco dentro do projeto de testes. Desta forma procuraremos evitar que o risco se transforme num problema, embora possa vir a causar prejuzos limitados. A definio anterior foi apresentada anteriormente neste artigo. Devido a <falta de documentao dos casos de uso>, os <casos de teste foram preparados inadequadamente ou incompletos> o que poder <produzir testes mal feitos causando o surgimento d defeitos posteriores no ambiente de produo>. O risco que repetimos anteriormente tambm j foi apresentado como exemplo neste artigo. Neste caso qual seria o plano para mitigao desse risco? Certamente este ser um risco de alta criticidade e pelo visto a sua probabilidade de ocorrncia tambm alta (suposio). O plano de mitigao deve ser a promoo de reunies de reviso e inspeo na documentao dos casos de uso de forma a melhorar a sua qualidade e tambm permitir que os casos de teste sejam mais bem feitos. Caso existam resistncias, o gerente do projeto de testes dever procurar apoio nas gerncias superiores, com forma de conseguir prioridade para este tipo de trabalho. Deve tambm ser levado em conta o custo e o benefcio do plano de mitigao para ver se vale a pena lev-lo adiante ou se sai mais barato correr o risco.
11
Lembre-se que o monitoramento verificar se o plano de mitigao est produzindo resultados satisfatrios.
Plano de contingncia
O Plano de Contingncia ser sempre acionado quando o risco se transformar num problema. Neste caso no existe mais a chance de evitarmos o risco e estamos frente a um problema. No caso do nosso exemplo, os casos de teste esto sendo elaborados insatisfatoriamente porque os casos de uso no esto suficientemente documentados. Possivelmente um plano de contingncia seria a contratao de um tcnico para em carter de urgncia fazer este trabalho, pois pode ser que os desenvolvedores no tenham tempo disponvel para fazer isso, ou at mesmo, no tenham o perfil adequado para este trabalho.
6 Concluso
A atividade de Anlise de Riscos existe para que os gerentes de projetos possam se precaver quanto a futuros problemas. Um risco um sinal de que poderemos ter um problema no futuro, caso nenhuma medida de precauo seja tomada. Os riscos podem prejudicar o sucesso de um projeto, caso no tenham planos de mitigao e de contingncia, e, conseqentemente, precisam ser monitorados. Gerenciar riscos significa, identific-los, analis-los, planej-los e monitor-los. Uma outra questo importante lembrar que o risco pode ser gerenciado dentro de um projeto, como estabelecido pelo PMI, ou num processo, conforme definido pelo CMMI ou mps BR.
7. Bibliografia 1. Ren, Marc. Risk Management for Testers. Quality Assurance Institute Testing Conference, maio de 2005. 2. Rios, Emerson e Moreira, Trayahu. Teste de Software. Editora Altabooks, 2003. 3. Vargas, Ricardo Viana. Gerenciamento de Projetos. Editora Brasport.2002. 4. PMBOK 2000 V.1.0. 5. Vargas, Ricardo. Manual Prtico do Plano de Projeto. Editora Brasport. 2003. 6. Verzuh, Eric. Gesto de Projetos. Editora Campus.2000.
12