Gerência - Qualidade e Testes

Proporção média de esforço de testes em relação ao esforço total do projeto

Quanto mais informações obtemos sobre o sistema que será desenvolvido ou testado, maior será a precisão das estimativas...

por Cristiano Caetano



Introdução

A estimativa é, na sua essência, o julgamento de alguma espécie, como custo, dimensão, tempo etc., em relação a algum ponto de referência. A elaboração das estimativas de um projeto de teste de software normalmente é composta por um pouco de arte e ciência em virtude de que o software não é um objeto tangível do mundo real onde essas diretrizes possam ser aplicadas com precisão. A elaboração das estimativas normalmente é um tiro no escuro ou a aplicação pura e simples do "achismo". A fim de minimizar o grau de incerteza é necessário utilizar alguma técnica ou abordagem formal durante a realização de estimativas.

Quanto mais informações obtemos sobre o sistema que será desenvolvido ou testado, maior será a precisão das estimativas. Se a estimativa de esforço requerido for de x horas de esforço, essa variação pode ser de 0,25x a 4x, quando o sistema é concebido. A exatidão dessa estimativa se estreita à medida que as fases do ciclo de vida do sistema progridem em virtude de conhecimento adquirido e das informações disponíveis [SOM03], como pode ser observado na Figura 1.

Figura 1: Incerteza das estimativas.

Sob o ponto da engenharia de software, Pressman recomenda um esforço de testes de 30 a 40% do esforço total do projeto, como pode ser observado na Figura 2.

Figura 2: Distribuição do esforço segundo Pressman.

Abordagens de estimativa de esforço de testes

Uma das atividades fundamentais do processo de gerenciamento de projetos de software é o planejamento. Quando o projeto de software é planejado, estimativas do esforço, duração e custo do projeto devem ser derivadas [PRE00]. Estimar o esforço de testes é uma tarefa árdua e imprecisa em virtude de que existem muitos fatores externos e internos que podem afetar e influenciar o resultado da estimativa. Freqüentemente esta estimativa é realizada de maneira informal. No entanto, é possível estimar com um maior grau de precisão por meio da utilização de abordagens formais de estimativas. Na listagem abaixo serão apresentadas as principais técnicas de estimativas (mas essas não são as únicas existentes) que podem ser aplicadas ou adaptadas para a estimativa de esforço de testes. É importante ressaltar que cada abordagem ou modelo de estimativa não pode ser aplicado em qualquer tipo de software. Trocando em miúdos: não existe uma solução que sirva para todos os casos, cada abordagem deve ser avaliada criteriosamente, antes de ser utilizada.

Intuição e julgamento de um especialista

Intuição e julgamento de um especialista baseados na experiência em planejar e testar sistemas semelhantes. Dessa forma, a precisão da estimativa depende da experiência, competência, objetividade e percepção de quem realiza a estimativa.

Test Case Points

Nesta técnica de estimativa formal, o esforço de teste é estimado com base nas características dos casos de uso, tais como a complexidade dos casos de uso, a complexidade dos atores, entre outros.

Regra 40-20-40

A regra 40-20-40 é uma diretriz da engenharia de software para a distribuição de esforço de um projeto de desenvolvimento de software. Nesta diretriz, recomenda-se um esforço de testes de 30 a 40% do esforço total do projeto [PRE00].

Pontos de função (Estimativas de Capers Jones)

Existe uma relação entre o número de pontos de função e o número de casos de testes. Caper Jones [JONES96] afirma que o número de casos de teste é aproximadamente igual ao número de Pontos de Função elevado a 1,2 (PF¹/²). Em outras palavras, os casos de teste crescem a uma taxa maior que os pontos de função. Este é um fato intuitivo, porque conforme um aplicativo cresce, os inter-relacionamentos tornam-se mais complexos. Por exemplo, se um software em tiver 10 pontos de função, serão necessários aproximadamente 40 casos de teste para testá-lo.

Análise de ponto de testes

Nesta técnica de estimativa formal, o esforço de teste é estimado com base nas funções do sistema e em outras características tais como: a maturidade do processo de testes, o grau de envolvimento do usuário com os testes, a experiência do time de testes, entre outros. No entanto, a análise de ponto de testes utiliza como base dos seus cálculos a partir dos dados estimados por meio da técnica chamada Análise de Ponto de Função, usada para determinar o esforço de desenvolvimento.

Modelo empírico

Modelo empírico para estimativa de esforço usando qualquer técnica de decomposição simples e empírica. Esta técnica normalmente utiliza dados históricos de projetos anteriores.

Enquete

Para delinear a proporção média de esforço de testes, foi realizada uma enquete no portal gratuito de testes e qualidade de software TestExpert (www.testexpert.com.br). Esta enquete foi realizada no período de 12 de dezembro de 2007 a 30 de março de 2008 e contou com a participação de 181 respondentes. O resultado da enquete pode ser observado na Figura 3. Curiosamente, o resultado da enquete é compatível com a recomendação da engenharia de software onde o esforço de teste deve corresponder de 30 a 40% do esforço total do projeto.

Figura 3: Resultado da Enquete (Qual a proporção média de esforço estimado para testes em relação ao esforço total do projeto?).

Para saber mais

Qual a proporção média de esforço estimado para testes em relação ao esforço total do projeto?. Disponível em: http://www.testexpert.com.br/?q=node/427

Qual é a proporção de testadores em relação aos desenvolvedores nos seus projetos (Testador:Desenvolvedor)?. Disponível em: http://www.testexpert.com.br/?q=node/263

[SOM03] SOMMERVILLE, I. Engenharia de Software, Addison Wesley, 6a edição, 2003.

[PRE00] PRESSMAN, R. S. Engenharia de Software. São Paulo: Makron Books, 2000.

[JONES96] JONES, Capers, Programming Language Table, Software Productivity Reserach, 1996.

Cristiano Caetano

Cristiano Caetano - É certificado CBTS pela ALATS. Consultor de teste de software sênior com mais de 10 anos de experiência, já trabalhou na área de qualidade e teste de software para grandes empresas como Zero G, DELL e HP Invent. É colunista na área de Teste e Qualidade de software do site linhadecodigo.com.br e da revista Engenharia de Software Magazine. Autor dos livros "CVS: Controle de Versões e Desenvolvimento Colaborativo de Software" e "Automação e Gerenciamento de Testes: Aumentando a Produtividade com as Principais Soluções Open Source e Gratuitas". O autor também é criador e mantenedor do portal TestExpert, maior comunidade brasileira sobre teste e qualidade de software, confira no seguinte endereço: http://www.testexpert.com.br.