Melhores práticas para avaliar software e garantir qualidade

Melhores práticas para avaliar software e garantir qualidade

A lista a seguir, com melhores práticas para avaliar software e administrar uma organização de testes, foi compilada de entrevistas com empresas que têm demandas e padrões de teste rigorosos. Estas dicas vão além do mantra “testar no início e com freqüência”, aprimorando não só a capacidade de teste da organização de TI, mas também a qualidade do software que é liberado

  1. Respeite seus testadores. Em muitas empresas, o teste é visto como um serviço elementar e, como resultado, nem sempre bem feito. Recrute profissionais detalhistas, metódicos e pacientes. Procure pessoas que também saibam codificar. Seus desenvolvedores vão respeitá-las mais e elas podem codificar algumas de suas próprias ferramentas de teste. “Se a organização de desenvolvimento e a de garantia de qualidade não se respeitarem, não poderemos atingir nossas metas de alto nível de qualidade”, diz David Pride, vice-presidente da eBay encarregado de QA.
  2. Reúna no mesmo local testadores e desenvolvedores. Juntar desenvolvedores e testadores é um grande passo para aprimorar a comunicação entre dois grupos que, com freqüência, batem cabeça (afinal, testadores são pagos para descobrir falhas no trabalho dos desenvolvedores). A proximidade física “facilita as nuances do teste”, que são mais bem transmitidas através da interação pessoal do que por e-mail ou uma ferramenta de workflow de desenvolvimento de aplicação, acredita Pride.
  3. Monte uma estrutura de hierarquia independente. A função de teste não deve reportar a nenhum grupo que é avaliado por cumprir prazos ou manter baixos os custos de um projeto, segundo John Novak, vice-presidente sênior da cadeia de hotéis La Quinta. Fazer os testadores reportarem ao grupo de desenvolvimento é a pior opção de todas, alerta. Se os desenvolvedores estiverem atrasados ou tiverem dificuldade com código, ficarão tentados a deixar os testadores de lado. Novak tem testadores que reportam diretamente a ele. No Station Casinos, o time de teste reporta ao grupo de analistas de negócio de Andrew, para fomentar a comunicação e envolver testadores no ciclo de desenvolvimento desde o início.
  4. Dedique testadores a sistemas específicos. Na Barnes & Noble, um grupo de testadores enfoca sistemas de armazenamento, enquanto outros abordam sistemas financeiros e a base de dados que controla o estoque. Chris Troia, CIO da rede de livrarias, acredita que dedicar os testadores a um conjunto de sistemas aumenta seu entendimento de como estes devem funcionar e lhes dá expertise para identificar problemas que talvez não apareçam em um documento de teste formal. A eBay adota a mesma abordagem, mas vai além. A empresa conta com três grupos de teste distintos: um para funcionalidades do site, um para pagamentos e um para aplicações de data warehousing.
  5. Proporcione treinamento em negócio. Andrew, do Station Casinos, faz membros de seu departamento de teste trabalhar na recepção, no salão do cassino e em diferentes departamentos corporativos para aprender o jargão e entender melhor o sistema que estão testando. (A maior parte de sua equipe de TI de 125 pessoas nunca havia feito uma aposta em um cassino antes de entrar para a empresa.)
  6. Permita que usuários da área de negócio também testem. A maior parte do teste envolve exercitar sistemas e mexer com código, ou seja, trabalho técnico, e TI pode ficar tentada a deixar de fora usuários de negócio. É um erro. “Na La Quinta há sempre testadores vindo da comunidade de negócio”, observa Novak, para assegurar que os sistemas que TI está desenvolvendo sigam as especificações.Para algumas aplicações, em especial as utilizadas em hospitais, fazer usuários testá-las é uma questão de vida ou morte. “O pessoal de tecnologia só vai até certo ponto”, diz Patricia Skarulis, vice-presidente de sistemas de informação e CIO do Memorial Sloan-Kettering Cancer Center. “Precisamos que os usuários se envolvam na avaliação das aplicações.”
  7. Envolva operações de rede. Nate Hayward, vice-presidente e diretor de gestão de qualidade da HomeBanc Mortgage, conta que, durante o teste, o grupo de operações de rede da empresa utiliza software (ServerVantage, da Compuware) para monitorar problemas de performance de servidores que poderiam advir do modo como o hardware ou o software são configurados. Envolver os especialistas de operações de rede nos testes também lhes dá a chance de ensaiar uma implementação antes que um sistema entre em produção, garantindo que a implementação real transcorrerá sem sobressaltos.
  8. Crie um laboratório que reproduza seu ambiente de negócio. Quatro anos atrás, o Station Casinos montou um laboratório de testes caro, semelhante a um mini-cassino, com máquinas caça-níqueis, terminais de ponto de venda e quiosques baseados na Web simulando os ambientes de computação das 13 propriedades da organização. Noventa por cento das aplicações que a empresa utiliza, incluindo aquelas baseadas em tecnologia sem fio, estão reproduzidas no laboratório. Para as 10% restantes – grandes ou complexas demais para terem uma réplica exata – Andrew criou um subconjunto mais enxuto com o objetivo de prever como vão se sair quando estiverem plenamente implementadas. Se necessário, Andrew pede ajuda. Na implementação de sistema mais recente, ele recorreu aos laboratórios de teste da Microsoft para rodar modelos de simulação.
  9. Desenvolva testes durante a fase de requisitos. As empresas, normalmente, esperavam para fazer testes após a definição de requisitos e o início ou o fim da codificação. Uma escola de pensamento cada vez mais difundida diz que é possível testar com eficácia mesmo que os requisitos não tenham sido desenvolvidos totalmente. Fãs da “programação ágil” acreditam que se deve testar continuamente, do início ao fim do projeto.
  10. Teste o velho com o novo. A eBay usa uma ferramenta de análise estatística desenvolvida internamente para comparar defeitos descobertos por testadores no código que foi testado durante um ciclo de teste específico. A meta é garantir que software avaliado antes continue funcionando adequadamente quando novos recursos são acrescentados. Pride, o vice-presidente encarregado de QA, conta que a ferramenta de análise estatística detecta onde os testadores precisam acrescentar casos de teste ao projeto corrente e também ajuda a determinar a eficácia geral de testes de regressão atuais para futuros projetos de software. A eBay tem de refinar os testes continuamente porque alguns projetos novos podem conter a mesma funcionalidade de iniciativas anteriores.
  11. Aplique particionamento de classe de equivalência. “Trata-se de uma técnica matemática que os testadores podem usar para identificar requisitos funcionais adicionais que analistas e usuários da área de negócio talvez não tenham observado ou comunicado”, explica Magdy Hanna, chairman e CEO do International Institute for Software Testing. De acordo com a executiva, o particionamento de classe de equivalência dá aos testadores uma visão clara do número de casos de teste que precisam executar para exercitar adequadamente todos os requisitos funcionais de um sistema. A técnica permite, por exemplo, que o grupo de Pride determine todas as maneiras com que os 157 milhões de usuários da eBay podem usar sua plataforma de leilão online. O que é um belo cartão de visitas.

Artigos relacionados

  • 4 de abril de 2011 -- O gargalo de conhecimento
    No desenvolvimento de software há muitas maneiras de se transferir conhecimento sobre um produto para as pessoas que efetivamente o constroem. A produção pode ser severamente prejudicada, entretanto, ...
  • 25 de março de 2011 -- Começando pelo final
    Nos dias anteriores ao Google Maps, costumava-se perguntar a outras pessoas como chegar a determinado lugar e, muitas vezes, um voluntário se dispunha a desenhar um mapa em uma folha de papel. A maior...
  • 13 de janeiro de 2010 -- Gerenciando seu código-fonte
    Um código fonte ‘sadio’ é uma das chaves para o sucesso de um projeto, e um CVS (control version system) é uma ferramenta fundamental para manter a saúde do seu código fonte. No entanto, somente uma b...

Submit a Comment