CONTEDO Unidade 1 Importncia do teste de software O teste nas fases de desenvolvimento de um software. O teste na engenharia de sistemas e de programas
Unidade 2 - Teste no projeto de sistema Revises Tcnicas Formais Validao pelo usurio 2 Unidade 3 Teste no programa Depurao Teste de caixa branca Teste de caixa preta Teste de ambiente Web 3 CONTEDO Unidade 4 Teste na implantao do sistema Teste de Unidade Teste de Integrao Teste de Validao Teste de Sistema Teste na Migrao 4 CONTEDO Unidade 5 Teste de software em sistema em produo Teste de software nos diversos tipos de manuteno Confiabilidade Disponibilidade Unidade 6 Ferramentas de teste de software Ferramentas de teste no desenvolvimento de sistema Ferramentas de teste para o programa Ferramentas de teste para o ambiente Web Ferramentas de teste para sistemas em produo 5 CONTEDO O desenvolvimento de sistemas envolve uma srie de atividades em que as oportunidades de injeo de falhas so muito grandes. Estes erros podem comear a aparecer logo no incio do processo, onde os objetivos podem estar erroneamente especificados, alm de erros que venham a ocorrer em fases de projeto e desenvolvimento posteriores. 6 A IMPORTNCIA DO TESTE Por causa da inabilidade humana de realizar e de se comunicar com perfeio, o desenvolvimento acompanhado de garantia de qualidade.
A atividade de teste de software um elemento crtico da garantia de qualidade de software e representa a ltima reviso de especificao, projeto e codificao. 7 A IMPORTNCIA DO TESTE CUSTO DO REPARO 8 Custo Estgio de desenvolvimento Requisitos Codificao Entrega A IMPORTNCIA DO TESTE No raro gastarmos entre 30 e 40% do esforo total do projeto no Teste de Software.
O Teste de Software para ambientes crticos (ex.: controle de voo, monitoramento de reatores nucleares e etc.) pode custar de trs a cinco vezes mais do que todos os outros passos de engenharia de software combinados. 9 10 ndice de falhas curva real curva idealizada tempo mudana DEFININDO O TESTE DE SOFTWARE Avaliar se o software est fazendo o que deveria fazer, de acordo com os seu requisitos, e no est fazendo o que no deveria fazer; Qualquer atividade que, a partir da avaliao de um atributo ou capacidade de um programa ou sistema, seja possvel determinar se ele alcana os resultados desejados. (Bill Hetzel 1988). Processo de executar um programa ou sistema com a inteno de encontrar defeitos (Glen Myers 1979); 11 Segundo Pressman, o teste de software um conjunto de atividades que podem ser planejadas com antecedncia e executadas sistematicamente.
Uma estratgia de teste de software deve acomodar testes de baixo nvel, necessrios para verificar se um pequeno segmento de cdigo fonte foi implementado corretamente, bem como testes de alto nvel, que validam as funes principais do sistema de acordo com os requisitos do cliente. 12 DEFININDO O TESTE DE SOFTWARE A atividade de teste um passo do processo de Engenharia de Software que visa encontrar/corrigir erros ao longo do software que foi construdo. Testes podem ser usados para descobrir a presena de erros, mas no para mostrar a sua ausncia. Testes de software o processo de executar o software de uma maneira controlada com o objetivo de descobrir dife- renas entre o comportamento previsto e o comportamento observado.
13 DEFININDO O TESTE DE SOFTWARE Todas estratgias fornecem um modelo para o teste e tm basicamente as seguintes caractersticas: Para executar um teste eficaz, proceder a revises tcnicas eficazes. Fazendo isso, muitos erros sero eliminados antes do comeo do teste. O teste comea no nvel do componente e progride em direo integrao do sistema computacional como um todo. 14 ESTRATGIAS DE TESTE Todas estratgias fornecem um modelo para o teste e tm basicamente as seguintes caractersticas: Diferentes tcnicas de teste so apropriadas para diferentes abordagens de engenharia de software e em diferentes momentos O teste feito pelo desenvolvedor do software e (para grandes projetos) por um grupo independente de teste. O teste e a depurao so atividades diferentes, mas a depurao ocorre em consequncia de um teste. 15 ESTRATGIAS DE TESTE A atividade de teste o processo de executar um programa com a inteno de descobrir um erro.
Um bom caso de teste aquele que possui uma elevada probabilidade de revelar um erro ainda no descoberto.
Um teste bem-sucedido aquele que revela um erro ainda no descoberto. 16 ESTRATGIAS DE TESTE DIRETRIZES PARA O TESTE Determinar quando o teste deve ser interrompido. Atribuir a responsabilidade do teste a um testador. Descrever os resultados esperados para cada caso de teste. Escrever casos de teste para condies de entrada vlidas e invlidas. Inspecionar o resultado de cada teste por completo. Alocar os programadores mais criativos para teste. 17 O PROCESSO DE TESTE O processo de teste de software deve basear-se em uma metodologia aderente ao processo de desenvolvimento, com pessoal tcnico qualificado, ambiente e ferramentas adequadas. Esta metodologia de teste deve ser o documento bsico para organizar a atividade de testar aplicaes no contexto da empresa. Assim como o processo de desenvolvimento de software, teste de software tambm possui um ciclo de vida: 18 O PROCESSO DE TESTE 19 Procedimentos Iniciais Especificao Execuo Entrega Planejamento Preparao O PROCESSO DE TESTE Planejamento: Elaborao e reviso da Estratgia de teste e do plano de teste;
Preparao: Preparao do ambiente de teste, incluindo equipamentos, rede, pessoal, software e ferramentas.
20 O PROCESSO DE TESTE Procedimentos iniciais: Consiste na elaborao de documento com o estabelecimento de um acordo entre as partes envolvidas no projeto de teste (usurios e tcnicos): Objetivo do projeto de teste, Pessoal a ser envolvido, As responsabilidades de cada um; O plano preliminar de trabalho; Avaliao dos riscos; Os nveis de servios acordados e etc. 21 O PROCESSO DE TESTE Especificao: Elaborao e reviso dos casos de teste , scripts ( no caso de ferramentas de automao de testes) e dos roteiros de Teste e execuo dos testes de verificao da documentao do sistema (testes estticos). Execuo: Execuo dos testes planejados conforme os Casos de Teste, scripts e dos roteiros de Teste com os correspondentes registros dos resultados obtidos. Entrega: concluso do processo de testes com a entrega do sistema para o ambiente de produo. 22 INTERAO ENTRE OS CICLOS DE VIDA 23 O PROCESSO DE TESTE H muitas estratgias que podem ser utilizadas para testar um software. Uma das estratgias de teste que preferida pela maioria das equipes a viso incremental do teste, comeando com o teste das unidades individuais de programa, passando para os testes destinados a facilitar a integrao de unidades e culminando com testes que usam o sistema concludo.
Verificao: Nesta etapa so realizadas inspees/revises sobre os produtos gerados. 24 O PROCESSO DE TESTE Testes Unitrios: So realizados no estgio mais baixo da escala de testes e so aplicados nas menores componentes de cdigos criados, visando garantir que estes atendem as especificaes, em termos de garantia e de funcionalidade. Verificam o funcionamento de um pedao do sistema ou software isoladamente ou que possam ser testado separadamente.
Normalmente feito pelos desenvolvedores. 25 O PROCESSO DE TESTE Testes de integrao: So executados em uma combinao de componentes para verificar se ele funcionam corretamente juntos, conforme as especificaes. Componentes podem ser pedaos de cdigo, mdulos, aplicaes distintas, clientes servidores. Normalmente feito pelos desenvolvedores. 26 O PROCESSO DE TESTE Teste de sistema: So realizados pela equipe de testes, visando a execuo do sistema como um todo ou um subsistema (parte de um sistema), dentro de um ambiente operacional controlado, para validar a exatido e perfeio na execuo de suas funes. Neste estgio de teste deve ser simulada a operao normal do sistema, sendo testadas todas as suas funes de forma mais prxima possvel do que ir ocorrer no ambiente de produo. Esses testes so feitos pela equipe de teste de software. 27 O PROCESSO DE TESTE Teste de aceitao: So os testes finais de execuo do sistema, realizados pelos usurios, visando verificar se a soluo atende aos objetivos do negcio e aos seus requisitos, no que diz respeito funcionalidade e usabilidade, antes da sua utilizao no ambinete de produo. 28 O PROCESSO DE TESTE Ao tratar os testes como um processo organizado e muitas vezes paralelo e integrado ao processo de desenvolvimento, os custos de manuteno sero reduzidos. Segundo Myers, o custo de correo de defeitos tende a aumentar quanto mais tarde o defeito detectado. Defeitos encontrados durante a produo tendem a custar muito mais que defeitos encontrados em modelos de dados e em outros documentos do projeto do software. 29 O PROCESSO DE TESTE Os testes unitrios podem remover entre 30% e 50 % dos defeitos dos programas; Os testes de sistemas podem remover entre 30% e 50% dos defeitos remanescentes. Desse modo, os sistemas podem ir para produo ainda com aproximadamente 49% de defeitos. Por ltimos, as revises de cdigos podem reduzir entre 20% e 30% desses defeitos. 30