Teste de Software
Autor: Éttore Franco | Publicado: 2010-09-19T21:32:00-07:00

Teste de SoftwareDiferente do que as maiorias das pessoas pensam que o teste de software serve para demonstrar o correto funcionamento de um programa, quando na verdade ele é utilizado como um processo da engenharia de software para encontrar defeitos (erros). Existem várias definições para o conceito de Teste de software. De uma forma simples, testar um software significa verificar através de uma execução controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa é encontrar o número máximo de erros dispondo do mínimo de esforço, ou seja, mostrar aos que desenvolvem se os resultados estão ou não de acordo com os padrões estabelecidos.• Verificação:A verificação tem o objetivo de avaliar se o que foi planejado realmente foi realizado. Ou seja, se os requisitos, funcionalidades e performances documentados foram implementados. Também pode ser realizada para especificação de sistemas, para avaliar se os requisitos estão sendo documentados como deveriam e ainda prever falhas ou inconsistências entre requisitos. Uma pergunta que devemos fazer para executar este teste é“Estamos construindo certo o produto?”• Validação:A validação tem o objetivo de avaliar se o que foi entregue atende as expectativas. Ou seja, se os requisitos, independente do que foi planejado, estão implementados para atender ao negócio (cliente).Uma pergunta que devemos fazer para executar este teste é:“Estamos construindo o produto certo?”Técnicas de Teste:Para que possamos executar esses tipos de teste, e encontrar o maior numero possível de bug (erro).Devemos dividir em categorias de teste, mais conhecido como técnicas de teste.Existem duas técnicas de teste, Teste Funcional e Teste Estrutural.Teste Funcional: Mais conhecido como Caixa Preta, está técnica de teste, tem como foco o comportamento externo do sistema, é bem parecido como uma caixa preta do avião, aonde não é importante o que acontece dentro da mesma. Apenas insere os dados de entrada e espera uma resposta, sem saber o como chegou naquela resposta.Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:•Teste de Requisitos:Responsável: Por testar se as funcionalidades do sistema, de acordo com os requisitos imposto pelo cliente.Recomendação: Planejar este teste diretamente dos requisitos, deixando de lado as documentações elaboradas para o desenvolvimento, pois ele também será testado.•Teste de Regressão:Responsável:  Por testar as funcionalidades do sistema, após alguma alteração de grande risco, e isso inclui os segmentos já testados.Recomendação:  Executar este teste apenas quando houver alguma alteração de risco, pois este teste leva muito tempo e acaba tendo o custo meio alto. •Teste de Tratamento de Erros:Responsável:  Por testar se todos os erros possíveis no sistema foram identificados e corrigidos.Recomendação:  Executar este teste em todo ciclo de vida do desenvolvimento.•Teste de Suporte Manual:Responsável:  Por testar se o suporte manual, como guias, manuais. Estão sendo elaborados corretamente.Recomendação:  Executar este teste junto a homologação.  •Teste de Interconexão:Responsável:   Por  testar se a conexão dos software integrados com o seu sistema ,está sendo desenhado corretamente, se existe alguma falha.Recomendação:  Executar este teste sempre que houver alguma mudança nos parâmetros entre os softwares, independente se o sistema está em produção •Teste de Controle:Responsável:   Por testar se está sendo usado corretamente as técnicas dentro do software.Recomendação:  Deve ser como um software dentro do outro.•Teste de Paralelo:Responsável:  Por testar se está mantida o status operacional , qualidade, da aplicação nova ou da nova versão.Recomendação:  Usar sempre que houver incertezas sobre a correção do processo da nova aplicação.Teste Estrutural: Mais conhecido como Caixa Branca, está técnica de teste, ao contrario do Teste Funcional, tem como foco o funcionamento interno do sistema, aonde ele se preocupa como o sistema chegou a resposta final. Nesta técnica é necessário ter um bom conhecimento de programação, pois é no código será feito este Teste.Usando está técnica de teste, podemos elaborar vários tipos de teste, que são:•Teste de Estresse:Responsável: Por testar qual a capacidade que o sistema suporta, fazendo com que o mesmo “quebre”, para saber se o sistema vai suporte em produção.Recomendação:  Levantar qual é a necessidade do sistema, antes de executar o teste , pois é um teste demorado e pode não ser necessários em alguns sistemas.•Teste de Execução (Eficácia):Responsável:  Por testar o comportamento do sistema, se está sendo atendidas as premissas de desempenho estabelecidas, resumindo a usabilidade do sistema.Recomendação: Executar o teste no começo do ciclo de vida de desenvolvimento, para que seja possível fazer mudanças na estrutura do sistema.•Teste de Recuperação (Contingência):Responsável: Por garantir a continuidade das operações após algum desastre (Backup).Recomendação: Estimar a perda associadas com a incapacidade de recuperar as operações nos diversos intervalos de tempo (5 min, 1 hora, 8 horas, 1 semana ...).•Teste de Operação:Responsável: Por verificar os operadores foram adequadamente orientados pelos documentos no processo e na execução.Recomendação: Executar o teste no inicio da operação real.•Teste de Conformidade:Responsável: Por testar se o sistema e documentos, estão conforme as especificação do cliente.Recomendação:  Executar o teste no inicio do ciclo de vida do desenvolvimento.•Teste de Segurança:Responsável:  Por testar a confiabilidade de segurança tanto física , quanto lógica.Recomendação:  Executar o teste antes de produção e principalmente antes de ir pra produção.  Duvidas e sugestões > ettorefrancobr@gmail.com