SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
Como utilizar indicadores de qualidade no desenvolvimento de
software
Vanessa Campos
Publicado na iMasters em 11/09/2012
Teste e qualidade são duas máximas apresentadas com frequência em artigos, sala de aula,
planejamento de projeto e ao longo do desenvolvimento de um software. E sempre levam a
perguntas do tipo: quais os custos, as dificuldades de implementação e benefícios dos
testes? Desenvolvimento ágil com qualidade e custo factível é possível?
A experiência de desenvolvimento ágil fortemente baseado em SCRUM tem ajudado a
transpor várias barreiras e a quebrar muitos dos diversos mitos referentes às métricas de
qualidade. Os pontos de avaliação do processo e da equipe e a melhoria contínua que a
metodologia ágil proporciona são pontos essenciais do processo utilizado para desenvolver
software. Apresentaremos neste artigo algumas das soluções e mitos sobre a adoção dessa
prática.
Testar software é caro! Sim, testar é caro. Mas não testar é muito mais caro! E não, teste não
é custo adicional do desenvolvimento. E de maneira alguma teste é algo que possa ser
cortado ou reduzido. Quando todos entendem que teste faz parte do desenvolvimento, a
própria equipe se reorganiza e garante que o teste não será negligenciado. É possível fazer
isso usando-se um mix de TDD (Test-driven Design) e BDD (Behavior-driven Design) e vários
níveis de testes ao longo do projeto (de teste unitário a teste de aceitação).
O primeiro mito que pode ser vencido é o de que a taxa de cobertura de testes não é um
número significativo. Realmente, se analisarmos somente a taxa de cobertura, isoladamente,
ela não significa muito. Porém, quando são usados vários mecanismos de teste e se define
muito bem o escopo da taxa de cobertura usando-se os plugins maven-cobertura-plugin e
maven-surefire-plugin, é possível ter tranquilidade em afirmar que a cobertura de testes está
alta ou baixa. Isso quando se considera na taxa de cobertura somente o código que trata do
negócio do sistema.
À primeira vista, o número pode não parecer muito significativo. Porém, ao longo do projeto,
refatoramentos do código são necessários. Nesse ponto é que a equipe percebe a
importância da taxa de cobertura estar alta e bem medida, pois o a essa altura o software já
estará bem testado, e é possível garantir que todo o impacto causado pela mudança foi
tratado.Passada a primeira barreira, é importante decidir ir um pouco além e adicionar mais
métricas de qualidade. Dessa vez, pode-se optar por usar o CCN (Cyclomatic Complexity
Number) e o número de bugs de código, usando-se a ferramenta Findbugs.O CCN é uma
métrica de código desenvolvida por Thomas J. McCabe para indicar a complexidade do
código. Segundo McCabe, um trecho de código deve ser avaliado sempre que o CCN
exceder 10. Todo método cujo CCN excede 10 é candidato a refatoramento. E, com isso,
pode-se quebrar outro mito do projeto: durante o desenvolvimento, não há tempo para
melhorar o código. Lembre-se: é importante testar muito bem, medir a cobertura de testes
constantemente e reavaliar esses números o tempo todo. Mas somente a lista de métodos
candidatos não é suficiente. Por isso, deve-se criar um indicador para medir a qualidade do
software.
Isso pode ser feito comparando-se o número de métodos com CCN maior que dez com o
número total de métodos do projeto. Após coletar e avaliar esse indicador duas ou três
vezes, é possível chegar a um valor médio que faz sentido para o projeto e trabalhar para
que o indicador fique dentro da meta estabelecida.
Seguindo nessa linha de melhoria contínua, é interessante adotar também o Findbugs e criar
um indicador para ele, comparando o número de bugs com o número de linhas de código. O
Findbugs proporciona uma análise diferente, pois encontra falhas, e não defeitos no sistema.
Ou seja, nos indica potenciais futuros bugs da aplicação, além de mostrar à equipe melhores
maneiras de desenvolver software, criando uma oportunidade de aprendizado dentro do
projeto.Com esse mix de ferramentas e indicadores sendo avaliados constantemente, pode-
se focar nos pontos críticos do sistema, introduzir uma cultura de avaliação e melhoria
contínua do software, além de proporcionar a toda a equipe momentos de avaliação do
código e uso de boas práticas de desenvolvimento.
Usando essas métricas, fica mais seguro produzir o software de qualidade. A cobertura de
testes traz essa segurança, aliada ao número de bugs do Findbugs sempre baixo, próximo
de zero.
O número de métodos refatorados devido ao CCN alto diminui ao longo do projeto e se
começa a criar novos métodos já observando sua complexidade. O código se torna mais
simples de ler, pois os métodos se tornam menos complexos. O Findbugs traz novo
conhecimento, principalmente referente a boas práticas de desenvolvimento, movimentando
o conhecimento dentro da equipe e motivando ao estudo mais saprofundado das ferramentas
utilizadas no desenvolvimento.
Para o cliente, todo esse movimento representa um número extremamente reduzido de
defeitos nos testes de aceitação e a garantia de que a implementação de novos requisitos
não trará impacto nos requisitos já entregues. Quem trabalha com entrega contínua de
software sabe muito bem o quanto isso é importante.
Leia o artigo na iMasters e deixe seu comentário:
http://imasters.com.br/desenvolvimento/como-utilizar-indicadores-de-qualidade-no-desenvolvimento-de-software/
Entre em contato com a autora do artigo:
Vanessa Campos
fb.com/camposvoc
@vanessaocampos

Mais conteúdo relacionado

Destaque

Self determined learning: Creating personal learning environments for lifelon...
Self determined learning: Creating personal learning environments for lifelon...Self determined learning: Creating personal learning environments for lifelon...
Self determined learning: Creating personal learning environments for lifelon...Lisa Blaschke
 
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...Akio
 
Finding Success as an Entrepreneur
Finding Success as an EntrepreneurFinding Success as an Entrepreneur
Finding Success as an EntrepreneurAmber Tuller
 
Software livre: do ambiente domestico ao empresarial
Software livre: do ambiente domestico ao empresarialSoftware livre: do ambiente domestico ao empresarial
Software livre: do ambiente domestico ao empresarialVanessa Campos
 
La nueva economía: democracia y producción
La nueva economía: democracia y producciónLa nueva economía: democracia y producción
La nueva economía: democracia y producciónDaniela Ramos
 
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy People
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy PeoplePlenary: Imagining Our Equitable Streets for Healthy, Active, Happy People
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy PeopleTheOpenStreetsProject
 

Destaque (10)

Self determined learning: Creating personal learning environments for lifelon...
Self determined learning: Creating personal learning environments for lifelon...Self determined learning: Creating personal learning environments for lifelon...
Self determined learning: Creating personal learning environments for lifelon...
 
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...
[En] How State of the Art Media Monitoring and Analysis Work As Part of Commu...
 
Minarals1
Minarals1Minarals1
Minarals1
 
Finding Success as an Entrepreneur
Finding Success as an EntrepreneurFinding Success as an Entrepreneur
Finding Success as an Entrepreneur
 
Software livre: do ambiente domestico ao empresarial
Software livre: do ambiente domestico ao empresarialSoftware livre: do ambiente domestico ao empresarial
Software livre: do ambiente domestico ao empresarial
 
proyecto
proyectoproyecto
proyecto
 
La nueva economía: democracia y producción
La nueva economía: democracia y producciónLa nueva economía: democracia y producción
La nueva economía: democracia y producción
 
161117
161117161117
161117
 
Javascript
JavascriptJavascript
Javascript
 
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy People
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy PeoplePlenary: Imagining Our Equitable Streets for Healthy, Active, Happy People
Plenary: Imagining Our Equitable Streets for Healthy, Active, Happy People
 

Como utilizar indicadores de qualidade no desenvolvimento de software

  • 1. Como utilizar indicadores de qualidade no desenvolvimento de software Vanessa Campos Publicado na iMasters em 11/09/2012 Teste e qualidade são duas máximas apresentadas com frequência em artigos, sala de aula, planejamento de projeto e ao longo do desenvolvimento de um software. E sempre levam a perguntas do tipo: quais os custos, as dificuldades de implementação e benefícios dos testes? Desenvolvimento ágil com qualidade e custo factível é possível? A experiência de desenvolvimento ágil fortemente baseado em SCRUM tem ajudado a transpor várias barreiras e a quebrar muitos dos diversos mitos referentes às métricas de qualidade. Os pontos de avaliação do processo e da equipe e a melhoria contínua que a metodologia ágil proporciona são pontos essenciais do processo utilizado para desenvolver software. Apresentaremos neste artigo algumas das soluções e mitos sobre a adoção dessa prática. Testar software é caro! Sim, testar é caro. Mas não testar é muito mais caro! E não, teste não é custo adicional do desenvolvimento. E de maneira alguma teste é algo que possa ser cortado ou reduzido. Quando todos entendem que teste faz parte do desenvolvimento, a própria equipe se reorganiza e garante que o teste não será negligenciado. É possível fazer isso usando-se um mix de TDD (Test-driven Design) e BDD (Behavior-driven Design) e vários níveis de testes ao longo do projeto (de teste unitário a teste de aceitação). O primeiro mito que pode ser vencido é o de que a taxa de cobertura de testes não é um número significativo. Realmente, se analisarmos somente a taxa de cobertura, isoladamente, ela não significa muito. Porém, quando são usados vários mecanismos de teste e se define muito bem o escopo da taxa de cobertura usando-se os plugins maven-cobertura-plugin e maven-surefire-plugin, é possível ter tranquilidade em afirmar que a cobertura de testes está alta ou baixa. Isso quando se considera na taxa de cobertura somente o código que trata do negócio do sistema. À primeira vista, o número pode não parecer muito significativo. Porém, ao longo do projeto, refatoramentos do código são necessários. Nesse ponto é que a equipe percebe a importância da taxa de cobertura estar alta e bem medida, pois o a essa altura o software já estará bem testado, e é possível garantir que todo o impacto causado pela mudança foi tratado.Passada a primeira barreira, é importante decidir ir um pouco além e adicionar mais métricas de qualidade. Dessa vez, pode-se optar por usar o CCN (Cyclomatic Complexity Number) e o número de bugs de código, usando-se a ferramenta Findbugs.O CCN é uma métrica de código desenvolvida por Thomas J. McCabe para indicar a complexidade do código. Segundo McCabe, um trecho de código deve ser avaliado sempre que o CCN exceder 10. Todo método cujo CCN excede 10 é candidato a refatoramento. E, com isso, pode-se quebrar outro mito do projeto: durante o desenvolvimento, não há tempo para melhorar o código. Lembre-se: é importante testar muito bem, medir a cobertura de testes constantemente e reavaliar esses números o tempo todo. Mas somente a lista de métodos candidatos não é suficiente. Por isso, deve-se criar um indicador para medir a qualidade do software. Isso pode ser feito comparando-se o número de métodos com CCN maior que dez com o
  • 2. número total de métodos do projeto. Após coletar e avaliar esse indicador duas ou três vezes, é possível chegar a um valor médio que faz sentido para o projeto e trabalhar para que o indicador fique dentro da meta estabelecida. Seguindo nessa linha de melhoria contínua, é interessante adotar também o Findbugs e criar um indicador para ele, comparando o número de bugs com o número de linhas de código. O Findbugs proporciona uma análise diferente, pois encontra falhas, e não defeitos no sistema. Ou seja, nos indica potenciais futuros bugs da aplicação, além de mostrar à equipe melhores maneiras de desenvolver software, criando uma oportunidade de aprendizado dentro do projeto.Com esse mix de ferramentas e indicadores sendo avaliados constantemente, pode- se focar nos pontos críticos do sistema, introduzir uma cultura de avaliação e melhoria contínua do software, além de proporcionar a toda a equipe momentos de avaliação do código e uso de boas práticas de desenvolvimento. Usando essas métricas, fica mais seguro produzir o software de qualidade. A cobertura de testes traz essa segurança, aliada ao número de bugs do Findbugs sempre baixo, próximo de zero. O número de métodos refatorados devido ao CCN alto diminui ao longo do projeto e se começa a criar novos métodos já observando sua complexidade. O código se torna mais simples de ler, pois os métodos se tornam menos complexos. O Findbugs traz novo conhecimento, principalmente referente a boas práticas de desenvolvimento, movimentando o conhecimento dentro da equipe e motivando ao estudo mais saprofundado das ferramentas utilizadas no desenvolvimento. Para o cliente, todo esse movimento representa um número extremamente reduzido de defeitos nos testes de aceitação e a garantia de que a implementação de novos requisitos não trará impacto nos requisitos já entregues. Quem trabalha com entrega contínua de software sabe muito bem o quanto isso é importante. Leia o artigo na iMasters e deixe seu comentário: http://imasters.com.br/desenvolvimento/como-utilizar-indicadores-de-qualidade-no-desenvolvimento-de-software/ Entre em contato com a autora do artigo: Vanessa Campos fb.com/camposvoc @vanessaocampos