Introdução


A tarefa de efetuar testes em software foi considerada secundária por muito tempo. Era vista como um castigo para o programador, um trabalho tedioso e cansativo, uma tarefa onde não se deveria gastar muito tempo e investimentos. O tema esteve em segundo plano e até alguns anos atrás não se encontrava muitos documentos sobre o assunto. Agora mudou um pouco, com a globalização e o acirramento da competição entre as empresas de software esta havendo uma grande preocupação em aprimorar e aperfeiçoar os processos de testes em desenvolvimento de software com metas a reduzir custos com manutenção e em produzir um produto de melhor qualidade.

Mas a necessidade de garantir a qualidade dos produtos eletrônicos deflagrou a mais recente onda de contratações no setor de terceirização, que movimenta US$ 16 bilhões por ano e já emprega cerca de 500 mil pessoas na capital tecnológica indiana. Por muito tempo, empresas grandes como a Microsoft realizavam seus testes por conta própria. Mas os analistas dizem que especialistas independentes vêm sendo cada vez mais procurados para garantir a neutralidade do processo e manter os custos sob controle. E hoje em dia existem cursos para pessoas q queiram saber como fazer testes.

É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa, espera-se eliminar todos, um por um, mas nunca consegue se livrar deles.

Importante diferenciar Teste e depuração: Teste: mostrar que o software tem erros. Depuração: encontrar a causa do erro detectado no teste, e projetar e implementar as modificações no programa para correção do erro.


  • Vantagens do uso de ferramentas CASE
    • Qualidade no produto final;
    • Produtividade;
    • Agilizar o tempo para tomada de decisão;
    • Menor quantidade de códigos de programação;
    • Melhoria e redução de custos na manutenção;

Teste Estrutural (Caixa Branca): são testados os caminhos lógicos através do software, fornecendo casos de teste que põem a prova conjuntos específicos de condições e/ou garante que todos os caminhos independentes dentro de um módulo tenham sido exercitados pelo menos uma vez.

  • Executa todas as decisões lógicas para valores falsos ou verdadeiros.
  • Executa todos os laços em suas fronteiras.
  • Exercita as estruturas de dados internas.

Teste funcional (caixa preta): são usados para demonstrar que as funções dos softwares são operacionais, que a entrada é adequadamente aceita e a saída é corretamente produzida; que a integridade das informações externas é mantida. Atividade complementar aos testes de caixa branca, com a finalidade de descobrir tipos/classes de erros. Procura descobrir erro em: Funções incorretas ou ausentes;

  • Erros de interface
  • Erros nas estruturas de dados
  • Acesso a bancos de dados externos
  • Erros de desempenho
  • Erro de inicialização e término

Teste de Unidade:

  • Deve ser escrito pelo mesmo programador que desenvolveu o código a ser testado
  • Serve como documentação do sistema
  • Essencial para análise de desempenho

Teste de Sistema:

  • Comparar o sistema com seus objetivos originais
  • Enfatizar a análise do comportamento da estrutura hierárquica de chamadas de módulos
  • Fase mais complexa, devido à quantidade de informações envolvidas

Teste de Regressão:

  • Teste necessário para assegurar que modificações no programa não causaram novos erros
  • Baseado em arquivo de 'log'

Teste de Aceitação:

  • A validação é bem sucedida quando o software funciona de uma maneira razoavelmente esperada pelo cliente . Pressman , 1995
  • Expectativas dos clientes documentadas
  • Uso da documentação do usuário.


ref:

http://www.macoratti.net/tst_sw1.htm

http://informatica.terra.com.br/interna/0,,OI501471-EI553,00.html



Funcionalidades

Descrever as funções do software, ou seja, detalhes do que ele faz.

Exemplo:

  • Funcionalidades do Word:
    • Edição de documentos
    • Formatação de parágrafos
    • Contagem de palavras
    • Verificação gramatical
    • Numeração de páginas
    • Divisão em colunas
    • Exportação para PDF
    • Procura e alteração de palavras
    • Etc


Benefícios

  • Para quem usa, quais as vantagens que terá em usar
  • O que a pessoa/profissional pode ganhar usando esta ferramenta


Interface gráfica

  • Inserir uma imagem da interface gráfica do software.


Custos

  • Se software pago: tentar descobrir valor de aquisição
  • Se free: em que condições é fornecido [licença GPL, BSD, ...]


Fornecedor

  • Que empresa desenvolveu o software?


Sistema Operacional

  • Roda em quais sistemas operacionais?