Saiba quais são as fases dos testes de software
Creio que ainda a atividade de teste sofre com problemas de vocabulário, pois quando se está em reuniões de trabalho discutindo-se teste de software, é uma festa! Cada um tem seu próprio termo para ser usado dado um determinado conceito de teste. Para contribuir com a melhoria do vocabulário utilizado na área de testes, segue abaixo as quatro fases dos testes de software:
Teste Unitário
É também conhecido como teste de unidade, e tem o objetivo de testar as menores unidades de software desenvolvidas ( pequenas partes, unidades do sistema ou uma classe).
Em sistemas orientados a objetos o foco desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código, visando encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo.
É considerada uma das fases mais importante dos testes, já que se procura identificar bugs na menor unidade de software possível, o mais cedo possível, se traduzindo em uma excelente estratégia para se obter um software de melhor qualidade
Teste de Integração
Nesta fase o objetivo é encontrar falhas provenientes da integração interna dos componentes de um sistema. 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. Entretanto 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
Teste de Sistema
Tem o objetivo de executar o sistema sob ponto de vista de seu usuário final, buscando identificar falhas nas funcionalidades do sistema. 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.
Teste de Aceitação
É um teste conduzido por usuários finais do sistema. São realizados, geralmente, por um grupo pequeno de usuários do sistema, que simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com os requisitos do sistema. para permitir ao cliente determinar se aceita ou não o sistema. Pode incluir testes funcionais, de configuração, de recuperação de falhas, de segurança e de desempenho.
Related posts:
Excelente artigo Galeote.
Trabalhei em uma fábrica de software que utilizava todas essas fases fazendo a seguinte divisão:
- Testes Unitários: Teste de unidade executada pelos desenvolvedores.
- Testes de Integração: Teste executado no final de cada iteração pelo responsável técnico do projeto.
- Testes de Unitários/Regressão: Testes executados pela área de QA sobre o planejamento de testes.
- Testes de Sistemas: Geralmente o Analistas de Sistema/Negócio, juntamente com o Arquiteto de Sistemas.
- Testes de Aceitação: Testes executados pelo usuário final.
Utilizando todas essas fases de teste a média de erro por 1k linhas de código era de 25.
Sidney,
Realmente, o Teste de Software tem vários dialetos, e como você disse, até numa reunião entre membros da mesma equipe é comum encontrar diferenças.
E continuando no assunto, achei até engraçado a minha expectativa ao ler o título do seu post e depois perceber que o conteúdo dele, era diferente do que eu esperava. Isso ocorreu justamente devido a esse problema de vocabulário (rs).
No meu entendimento, teste unitário, de integração, sistema e aceitação são níveis de teste e não fases. Fases são: planejamento, análise, modelagem, implementação, execução, avaliação e reporte dos resultados e encerramento.
E essas fases formam o ciclo de vida, neste ciclo de vida podemos realizar testes tanto de nível unitário, integração, sistema e até aceitação.
Bem essa é a minha opinião, sei que há bastante material (até a Wikipédia) que aborda as fases de Teste de Software da mesma forma que você explicou.
Abraços! E parabéns pelo post e por ter levantado esse problema de comunicação existente na nossa área.