Introdução

O exercício de efetuar testes em softwares durante muitos anos foi considerada secundaria, pois era um trabalho tedioso e os programadores não há viam com muito interesse, pois o mercado não exigia. O tema de efetuar testes em programas surgiu graças a globalização e há necessidade de o mercado produzir softwares melhores e sem erros. Essa necessidade levou a produzir melhores produtos e abriu novos mercados, tal como o mercado Indiano, que graças a terceirização feita por empresas do primeiro mundo, como a Microsoft, propiciou a cidade de Bangolore a tornar-se o principal polo de programadores responsáveis por testes, gerando uma movimentação de 16 milhões por ano e gerando 500 mil empregos. Há muitas vantagens no uso de ferramentas CASE de testes, tais como uma melhor qualidade final do programa, melhor produtividade, aumento do poder de tomada de decisão do programa, diminuição da quantidade de linhas de código e redução dos custos de manutenção do mesmo. É importante também diferenciarmos, teste de depuração, pois o teste tem o intuito de mostrar os erros do software enquanto a depuração pega os resultados do teste afim de corrigi-los.

ref:

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

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

http://pt.wikipedia.org/wiki/Teste_de_software

http://imasters.com.br/artigo/9572/des_de_software/teste_de_software/



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





TESTES

Os softwares de testes trabalham afim de realizar teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos, exercitar as estruturas de dados, entre outros. Os aspectos avaliados dependerão da complexidade e da tecnologia que determinarem à construção do componente de software. Um exemplo de ferramenta livre de teste é o JUnit que testa classes ou métodos desenvolvidos em Java.

Teste Estrutural (Caixa Branca): A técnica de teste de Caixa-Branca é recomendada para as fases de Teste da Unidade e Teste da Integração e é realizada pelos desenvolvedores do software, que conhecem bem o código-fonte produzido.

Teste funcional (caixa preta): O software a ser testado é abordado como uma “caixa-preta”, ou seja, as linhas de código não são analisadas. São fornecidos dados de entrada e então o teste é executado e a resposta obtida é comparada ao resultado esperado.

Teste de Unidade: É a fase de teste em que se testam as menores partes do software. O alvo desse tipo de teste são os pequenos objetos e/ou pequenos trechos de código. Com o objetivo de encontrar falhas de funcionamento dentro dessas partes. Normalmente é escrito pelo mesmo programador que desenvolveu o código a ser testado e serve como documentação do sistema, fazendo-se essencial para análise do desempenho do sistema.



Teste de Integração: Na fase de teste de integração o objetivo é encontrar falhas provenientes da integração interna dos componentes de um sistema. Geralmente os tipos de falhas encontradas são de envio e recebimento de dados. Por exemplo, um objeto A pode estar aguardando o retorno de um valor X ao executar um método do objeto B, porém este objeto B pode retornar um valor Y, desta forma gerando uma falha. Não faz parte do escopo dessa fase de teste o tratamento de interfaces com outros sistemas (integração entre sistemas). Essas interfaces são testadas na fase de teste de sistema, apesar de, a critério do gerente de projeto, estas interfaces podem ser testadas mesmo antes de o sistema estar plenamente construído..

Teste de Sistema: Na fase de Teste de Sistema o objetivo é executar o sistema sob ponto de vista de seu usuário final, varrendo as funcionalidades em busca de falhas. Os testes são executados em condições similares - de ambiente, interfaces sistêmicas e massas de dados - àquelas que um usuário utilizará no seu dia-a-dia de manipulação do sistema. De acordo com a política de uma organização podem ser utilizadas condições reais de ambiente, interfaces sistêmicas e massas de dados.

  • 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 Aceitação: Fase de Teste em que o teste é conduzido por usuários finais do sistema. Os testes são realizados, geralmente, por um grupo restrito de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado. Teste formal conduzido para determinar se um sistema satisfaz ou não seus critérios de aceitação e para permitir ao cliente determinar se aceita ou não o sistema. Validação de um software pelo comprador, pelo usuário ou por terceira parte, com o uso de dados ou cenários especificados ou reais. Pode incluir testes funcionais, de configuração, de recuperação de falhas, de segurança e de desempenho.

  • 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

Teste de Operação: Fase de Teste em que o teste é conduzido pelos administradores do ambiente final onde o sistema ou software entrará em ambiente produtivo. Vale ressaltar que essa fase é aplicável somente a sistemas de informação próprios de uma organização, cujo acesso pode ser feito interna e/ou externamente a essa organização. Nessa fase de teste devem ser feitas simulações para garantir que a entrada em produção do sistema será bem sucedida. Envolve testes de instalação, simulações com backup e restore das bases de dados, etc. Em alguns casos um sistema entrará em produção para substituir outro e é necessário garantir que o novo sistema continuará garantindo o suporte ao negócio.

Teste de Regressão: É uma fase de teste aplicável a uma nova versão de software ou à necessidade de se executar um novo ciclo de teste durante o processo de desenvolvimento. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Inclui-se nesse contexto a observação de fases e técnicas de teste de acordo com o impacto de alterações provocado pela nova versão ou ciclo de teste. Para efeito de aumento de produtividade e de viabilidade dos testes, é recomendada a utilização de ferramentas de automação de testes, de forma que, sobre a nova versão ou ciclo de teste, todos os testes anteriores possam ser reexecutados com maior agilidade.

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

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?