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 e utilizado como um processo da engenharia de software para encontrar defeitos (erros). Existem varias definicoes para o conceito de Teste de software. De uma forma simples, testar um software significa verificar atraves de uma execucao controlada se o seu comportamento corre de acordo com o especificado. O objetivo principal desta tarefa e encontrar o numero maximo de erros dispondo do minimo de esforco, ou seja, mostrar aos que desenvolvem se os resultados estao ou nao de acordo com os padroes estabelecidos. Verificacao:A verificacao tem o objetivo de avaliar se o que foi planejado realmente foi realizado. Ou seja, se os requisitos, funcionalidades e performances documentados foram implementados. Tambem pode ser realizada para especificacao de sistemas, para avaliar se os requisitos estao sendo documentados como deveriam e ainda prever falhas ou inconsistencias entre requisitos. Uma pergunta que devemos fazer para executar este teste eEstamos construindo certo o produto? Validacao:A validacao tem o objetivo de avaliar se o que foi entregue atende as expectativas. Ou seja, se os requisitos, independente do que foi planejado, estao implementados para atender ao negocio (cliente).Uma pergunta que devemos fazer para executar este teste e:Estamos construindo o produto certo?Tecnicas de Teste:Para que possamos executar esses tipos de teste, e encontrar o maior numero possivel de bug (erro).Devemos dividir em categorias de teste, mais conhecido como tecnicas de teste.Existem duas tecnicas de teste, Teste Funcional e Teste Estrutural.Teste Funcional: Mais conhecido como Caixa Preta, esta tecnica de teste, tem como foco o comportamento externo do sistema, e bem parecido como uma caixa preta do aviao, aonde nao e 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 esta tecnica de teste, podemos elaborar varios tipos de teste, que sao:Teste de Requisitos:Responsavel: Por testar se as funcionalidades do sistema, de acordo com os requisitos imposto pelo cliente.Recomendacao: Planejar este teste diretamente dos requisitos, deixando de lado as documentacoes elaboradas para o desenvolvimento, pois ele tambem sera testado.Teste de Regressao:Responsavel: Por testar as funcionalidades do sistema, apos alguma alteracao de grande risco, e isso inclui os segmentos ja testados.Recomendacao: Executar este teste apenas quando houver alguma alteracao de risco, pois este teste leva muito tempo e acaba tendo o custo meio alto. Teste de Tratamento de Erros:Responsavel: Por testar se todos os erros possiveis no sistema foram identificados e corrigidos.Recomendacao: Executar este teste em todo ciclo de vida do desenvolvimento.Teste de Suporte Manual:Responsavel: Por testar se o suporte manual, como guias, manuais. Estao sendo elaborados corretamente.Recomendacao: Executar este teste junto a homologacao. Teste de Interconexao:Responsavel: Por testar se a conexao dos software integrados com o seu sistema ,esta sendo desenhado corretamente, se existe alguma falha.Recomendacao: Executar este teste sempre que houver alguma mudanca nos parametros entre os softwares, independente se o sistema esta em producao Teste de Controle:Responsavel: Por testar se esta sendo usado corretamente as tecnicas dentro