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 CaetanoIntroduçã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.
- Entendendo o conceito por trás dos processos de Qualidade de SoftwareQualidade e Testes
- Entendendo Indicadores de Prazo e Custo de ProjetosQualidade e Testes
- Aplicação de QUALIDADE de processo de SoftwareQualidade e Testes
- Segurança: Item primordialQualidade e Testes
- Qualidade de Software: Oculte seu códigoQualidade e Testes