Documente Academic
Documente Profesional
Documente Cultură
Ian Sommerville
O que faz?
Mostra que um programa faz e o que é proposto a fazer.
Descobrir defeitos do programa antes do uso.
Tem 2 objetivos
Para...
Software customizados: É feito pelo menos um teste para cada requisito
Softwares genéricos: Testes são feitos para todas as características do sistemas e as
combinações incorporadas aos releases.
“Os testes podem mostrar apenas a presença de erros e não sua ausência”
Expectativas de usuários – Por causa de softwares defeituosos e não confiáveis usuárias tem
baixas expectativas acerca de qualidade.
São mais eficazes na descoberta de defeitos do que testes de programas. Mas não podem
substituir os testes porque não consegue-se descobrir defeitos que surgem em interações
inesperadas em diferentes partes do programa, problemas de timing e desempenho do
sistema.
Testes de release:
Uma equipe de teste independente testa uma versão completa do sistema antes de ser
liberado aos usuários.
Testes de usuário:
Potenciais usuários testam um sistema em seu próprio ambiente. Usado em produtos de
software e para testes de aceitação.
Teste manual:
o Executa o programa com alguns dados de teste.
o Compara resultados com as expectativas.
o Anota e reporta discrepâncias aos desenvolvedores do programa.
Teste automatizado:
São codificados em um programa que é executado cada vez que o sistema é testado.
Existe:
Casos de teste – Que são especificações das entradas para o teste e a saída esperada do
sistema (resultados do teste), além de uma declaração do que está sendo testado.
Dados de teste – São entradas criadas para testar um sistema.
Testes de desenvolvimento
Incluem todas as atividades de teste que são realizadas pela equipe de desenvolvimento
do sistema.
Para sistemas críticos, um processo mais forma é usado por um grupo de testes
independente dentro da equipe de desenvolvedores.
Testes de componentes – Várias unidades individuais são integradas para criar componentes
compostos. Centra-se em testar interfaces dos componentes.
Testes unitários
Para fazer precisa-se:
Testar todas as operações associadas ao objeto.
Definir e verificar o valor de todos os atributos associados ao objeto.
Colocar o objeto em todos os estados possíveis, o que significa simular todos os
eventos que causam mudanças de estado.
Testes baseados em diretrizes: Você usa as diretrizes de testes para escolher casos de testes.
Refletem experiência anterior dos tipos de erros ocorridos no desenvolvimento de
componentes.
Testes de componente
Componentes são compostos de vários objetos que se interagem.
Casos de testes normalmente não são aplicados a componentes individuais, mas sim a
interface de componente criada pela combinação de todos eles.
Os tipos de interfaces existentes são:
Interfaces de parâmetro: São interfaces nas quais as referências de dados ou, às vezes,
funções são passadas de um componente para outro. Normalmente métodos de objetos.
Teste de sistema
Durante o desenvolvimento, envolve integração de componentes para criação de uma
versão do sistema, em seguida, o teste do sistema integrado. Verifica se os componentes são
compatíveis, se interagem corretamente e transferem dados certos no momento certo.
Teste de sistema centra-se em testar interações entre os componentes e objetos que
compõem o sistema.
E por causa desse foco de interação, teste baseado em caso de uso é uma abordagem
eficaz.
Teste de release
É o processo de testar uma release em particular de um sistema que se destina para uso
fora da equipe de desenvolvimento.
Centra-se em teste de defeitos – Descobrir bugs no sistema
E teste de validação – Verificar se sistema atende aos requisitos e é bom suficiente para
uso externo.
Testes de cenários
É uma abordagem de teste de release que você imagina cenários típicos de uso e os
usa para desenvolver casos de teste para o sistema. Um cenário é uma história que
descreve uma maneira de usar o sistema. Deve ser realista e usuários devem se relacionar
com eles.
Testes de desempenho
Uma vez que o sistema tenha sido integrado, é possível testá-lo para propriedades
emergentes, como desempenho e confiabilidade. Precisam ser projetado para assegurar que
sistema possa processar a carga a que se destina.
Suas funções são feitas da seguinte forma:
Testando o comportamento da falha do sistema. Importante que a falha não cause
corrupção de dados ou perda inesperada de serviços de usuários.
Estressar o sistema e trazer à luz defeitos que normalmente não são descobertos.
Testes de usuário