1) O teste de software segue um roteiro de passos para verificar se o software funciona conforme especificado e identificar bugs.
2) Existem diferentes tipos de testes como teste de unidade, integração e sistema para verificar componentes, integração e desempenho geral.
3) A verificação e validação garantem a qualidade do software através de vários tipos de testes e revisões técnicas realizados durante o desenvolvimento.
2. Basicamente podemos dizer que o teste de software segue um roteiro de
passos a serem executados, porém antigamente quando não eram realizados
testes confiávamos somente em um bom projeto e na inteligência do
programador.
De modo geral o teste de software é individualista, pois é traçado uma rotina
de testes conforme a descrição do software que está sendo criado.
Desta maneira temos testes que ocorrem já durante a construção do projeto,
seguindo a complexidade e crescimento do sistema, iniciando pelo menor
contexto.
Teste de software
O que é?
3. Teste de software
Verificação e validação
Podemos dividir o teste de software em duas situações:
Verificação - Refere-se ao conjunto de tarefas que garantem que o software
implementa corretamente a função específica.
Estamos criando o produto corretamente?
Validação - Refere-se a um conjunto de tarefas que asseguram que o
software foi criado e pode ser rastreado segundo os requisitos do cliente
Estamos criando o produto certo?
4. Resumidamente a V&V garantem a qualidade do software, revisões
técnicas, auditorias de qualidade e configuração, monitoramento de desempenho,
simulação, estudo de viabilidade, revisão de documentação, revisão de base de
dados, análise de algoritmo, teste de desenvolvimento, teste de usabilidade, teste
de qualificação, teste de aceitação e teste de instalação, além de outras
atividades desenvolvidas são para garantir a qualidade do software.
Teste de software
Verificação e validação
5. Primeiramente os testes de software são organizados em etapas e pessoas,
temos logo em mente que o criador da arte não quer demonstrar os fracassos
dela, mas é necessário que eles apareçam caso contrário o cliente descobrirá.
Desta forma o programador realiza os testes das unidades individuais
(componentes) do programa, e em alguns casos o de integração.
Logo temos a participação do ITG (independent test group), responsável pela
realização de testes do software juntamente com seus criadores, desta forma
temos o ITG trabalhando lado a lado com os desenvolvedores, que por sua vez
realizam a manutenção imediata de códigos.
Teste de software
Organizando o teste
6. Teste de Unidade: focaliza o esforço de verificação na menor unidade de projeto do
software, o componente ou módulo de software. Usando como guia a descrição de projeto no nível de
componente, caminhos de controle importantes são testados para descobrir erros dentro dos limites do
módulo. Esse teste enfoca a lógica interna de processamento e as estruturas de dados dentro dos
limites de um componente.
A interface do módulo é testada para assegurar que as informações fluam corretamente para
dentro e para fora da unidade que está sendo testada. A estrutura de dado local é examinada para
garantir que os dados armazenados mantenham sua integridade durante todos os passos na execução
de um algoritmo. Todos os caminhos independentes da estrutura de controle são usados para assegurar
que todas as instruções em um módulo tenham sido executadas pelo menos uma vez. As condições
limite são testadas para garantir que o módulo opere adequadamente nas fronteiras estabelecidas para
limitar ou restringir o processamento.
Teste de software
Tipos de testes
7. Teste de software
Tipos de testes
Teste de Integração: é uma técnica sistemática para construir a arquitetura
de software ao mesmo tempo que conduz testes para descobrir erros associados
com as interfaces. O objetivo é construir uma estrutura de programa determinada
pelo projeto a partir de componentes testados em unidade.
8. Teste de software
Tipos de testes
Integração não-incremental (big bang): todos os componentes são
combinados com antecedência. O programa inteiro é testado como um todo. Mas
neste caso são encontrados muitos erros, a correção fica difícil porque o
isolamento das causas é complicado, e uma vez corrigidos novos erros
aparecem.
Integração incremental: o programa é construído e testado em pequenos
incrementos, em que os erros são mais fáceis de isolar e corrigir. As interfaces
têm maior probabilidade de ser testadas completamente, e uma abordagem
sistemática pode ser aplicada.
9. Aqui citamos outros tipos de testes ainda relacionados a teste do tipo
integração:
● Integração descendente
● Integração ascendente
● Teste de regressão
● Teste de fumaça
Teste de software
Tipos de testes
10. Teste de software
Tipos de testes
Teste de Sistema: teste de sistema é uma série de diferentes testes cuja
finalidade é exercitar totalmente o sistema.
Embora cada um dos testes tenha uma finalidade diferente, todos
funcionam no sentido de verificar se os elementos do sistema foram integrados
adequadamente e executam as funções a eles alocadas.
11. Teste de software
Tipos de testes
Alguns testes que são vantajosos para o sistema de software:
Teste de recuperação: é um teste do sistema que força o software a falhar de
várias formas e verifica se a recuperação é executada corretamente.
Teste de segurança: tenta verificar se os mecanismos de proteção
incorporados ao sistema vão de fato protegê-lo contra acesso indevido.
Teste por esforço: usa o sistema de maneira que demande recurso em
quantidade, frequência ou volumes anormais.
12. Teste de software
Tipos de testes
Teste de desempenho: é projetado para testar o desempenho em tempo de
execução do software dentro do contexto de um sistema integrado.
Teste de disponibilização: exercita o software em cada ambiente no qual ele
deve operar. Além disso, examina todos os procedimentos de instalação e
software especializado de instalação que serão usados pelos clientes e toda a
documentação que será usada para fornecer o software para os usuários finais.
13. Presman, Roger S. Engenharia de Software, Uma Abordagem Profissional, 7ª
edição, 2011
Teste de software
Referências