A disciplina de Teste age como um fornecedor de serviços para as outras disciplinas de diversas maneiras. Os testes são
direcionados principalmente na avaliação da Qualidade do
Produto, que é realizada através destas práticas principais:
-
Localizar e documentar defeitos na qualidade do software.
-
Sugestões sobre a qualidade do software.
-
Validar e provar as suposições feitas nas especificações de projeto e requisitos através de demonstração concreta.
-
Validar se o software funciona conforme o projeto.
-
Validar se os requisitos são implementados adequadamente.
Há uma diferença interessante entre a disciplina Teste e as outras do RUP - em essência, a disciplina Teste possui as
tarefas de localizar e expor fraquezas no software. É interessante, porque, para obter o maior benefício, é necessário
uma filosofia geral diferente da que é utilizada nas disciplinas Requisitos, Análise e Projeto e Implementação. Uma
diferença sutil é a de que estas três disciplinas são orientadas para a compleção, sendo que a disciplina Teste é
orientada para a incompleção.
Um bom esforço de teste é feito por questões como:
-
Como este software pode travar?
-
Em quais situações possíveis este software pode falhar em funcionar como previsto?
A disciplina Teste desafia as suposições, riscos e incertezas inerentes no trabalho das outras disciplinas e trata das
preocupações utilizando demonstrações concretas e avaliação imparcial. É desejável evitar dois extremos em potencial:
-
uma abordagem que não desafia adequada ou efetivamente o software e expões seus problemas e fraquezas inerentes
-
uma abordagem que é inadequadamente negativa ou destrutiva - se adotar tal abordagem negativa, você poderá
considerar impossível de considerar que o software tenha qualidade aceitável e pode alienar o esforço de Teste das
outras disciplinas
As informações apresentadas em diversas pesquisas e artigos demonstram que o teste de software responde por 30 a 50 por
cento dos custos totais do desenvolvimento de software. É, portanto, surpreendente notar que a maioria das pessoas
acredita que os softwares de computador não são bem testados antes da distribuição. Esta contradição tem sua raiz em
alguns problemas-chave.
-
Testar softwares é muito difícil. Como se quantifica as maneiras diferentes nas quais um determinado programa pode
se comportar?
-
Geralmente, os testes são feitos sem uma metodologia clara, criando resultados que variam de um projeto para outro
e de uma organização para outra. O êxito é, principalmente, um fator da qualidade e habilidades dos indivíduos.
-
As ferramentas de produtividade são utilizadas insuficientemente. o que torna os aspectos cansativos dos testes
intratáveis. Além da falta da execução de testes automatizados, diversos esforços de teste são conduzidos sem
ferramentas que permitem gerenciar efetivamente Dados de Teste e Resultados de Teste extensivos. A flexibilidade de
utilização e complexidade do software fazem de um teste completo um objetivo impossível. Utilizar uma metodologia
bem concebida e ferramentas de última geração pode melhorar a produtividade e eficácia dos testes de software.
Software de alta qualidade é essencial para o sucesso de sistemas de segurança crítica - como de controle de
tráfego aéreo, guia de mísseis ou sistemas de distribuição médica - nos quais uma falha pode afetar pessoas. O estado
crítico de um sistema MIS típico pode não ser tão óbvio de imediato, mas é provável que o impacto de um defeito pode
fazer com que o negócio que utiliza o software tenha gastos consideráveis em receita perdida e possíveis custos legais.
Nesta era da informação, com demanda crescente pela oferta de serviços distribuídos eletronicamente pela Internet,
diversos sistemas MIS agora são considerados missão crítica; ou seja, as empresas não podem executar suas
funções e têm prejuízos massivos quando há a ocorrência de falhas.
Uma abordagem contínua à qualidade, iniciada no início do ciclo de vida do software pode diminuir os custos de concluir
e manter seu software significativamente. Isso reduz imensamente o risco associado com a implementação de softwares de
baixa qualidade.
A disciplina Teste está relacionada com outras disciplinas, da seguinte forma:
-
A disciplina Requisitos, captura os requisitos para o software, que é uma das entradas
principais para identificar quais testes devem ser desempenhados.
-
A disciplina Análise
e Projeto determina o projeto adequado para o software, que é outra entrada importante para identificar
quais testes devem ser desempenhados.
-
A disciplina Implementação produz builds do software que são validadas pela disciplina
Teste. Dentro de uma iteração, múltiplos builds serão testados - gerenlmente um por ciclo de teste.
-
A disciplina Implementação fornece o software completo ao usuário final. Enquanto o
software é validado pela disciplina Teste antes disso ocorrer, testes beta e teste de aceitação geralmente são
conduzidos como parte da Implementação.
-
A disciplina Ambiente desenvolve e mantém artefatos de suporte que são utilizados
durante o Teste, como as Diretrizes de Teste e Ambiente de Teste.
-
A disciplina Gerenciamento de Projeto planeja o projeto e o trabalho necessário em cada
iteração. Descrito em um Plano de Iteração, este artefato é uma entrada importante, utilizada quando você define a
missão de avaliação correta para o esforço de teste.
-
A disciplina Gerenciamento de Mudança e Configuração controla as mudanças dentro da
equipe de projeto. O esforço de teste verifica se cada mudança foi concluída adequadamente.
Nós recomendamos a leitura de Lessons Learned in Software Testing [KAN01], de Kaner,
Bach e Pettichord, que contém uma excelente coleção de preocupações importantes para equipes de teste.
|