Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Aula 6 – Testes do Software Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FASE: TESTES DO SISTEMA Concepção Análise Desenho Implementação Testes Implantação Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE MÁXIMA O PIOR ERRO E O MAIS CARO É AQUELE QUE CHEGA AO CLIENTE E É DESCOBERTO POR ELE. CUSTA CARO: IMAGEM DA EMPRESA / DEPTO SOLUÇÃO DO ERRO FASE: TESTES Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FASE: POR QUE TESTAR ? Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FASE: TESTES - CONCEITOS Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Encontrar o maior número possível de defeitos no software O mais cedo possível QUAL A FINALIDADE DOS TESTES DE SOFTWARE Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Testar é verificar se o software está fazendo o que deveria fazer, de acordo com os seus requisitos e, se não está fazendo o que não deveria fazer (Rios e Moreira, 2003) Testar é o processo de executar um programa ou sistema com a intenção de encontrar defeitos (Myers, 1979) Testar é qualquer atividade que, a partir da avaliação de uma atributo ou de uma capacidade, permita determinar se o programa o sistema obtém resultados desejados (Hetzel, 1988) QUAL A FINALIDADE DOS TESTES DE SOFTWARE? Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE [1] – TESTES ESTÁTICOS OU VERIFICAÇÕES Durante a fase de modelagem (análise e projeto) Antes da implementação Inspeções, revisões, auditorias, verificações Modelos x Requisitos Visa a qualidade no processo e produto [2] – TESTES DINÁMICOS OU VALIDAÇÕES Durante e após a fase de implementação Precisa do código implementado Visa qualidade no produto FASE: TESTES – AO LONGO EM NÃO UMA FASE Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 5ª Fase do processo de desenvolvimento - FUNDAMENTAL Condição: Programas ou parte deles (Sistemas é um conjunto de programas ou unidades implementáveis) desenvolvidos e com mínimo de verificação/teste Finalidade: Garantir que o sistema é livre de erros (bugs) Garantir que o sistema faz o que o usuário precisa Características Geralmente “deixada para trás”, na correria do desenvolvimento É um dos pilares de um processo de desenvolvimento com qualidade. Teste Qualidade (processo e produto) FASE: TESTES - CONCEITOS Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FASE: TESTES DO SOFTWARE O testador deve ter a capacidade de Entender o objetivo do programa ou unidade Aplicar o teste adequado Explicitar com clareza as falhas identificadas, associando-as ao ponto específico do procedimento (tela, e etc) e aos dados usados. CÓDIGO FONTE CÓDIGO FONTE COM QUALIDADE TESTADOR OK Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Um sub-processo dentro do processo de desenvolvimento Requer Planejamento Requer Especificação Requer Execução Descoberta dos Erros Análise dos Resultados Requer Entrega Apresentação do relatório final Equipe de desenvolvimento Depura o erro Corrige o Erro Sobre O TESTE – veremos ***** Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Uma etapa dentro do processo de desenvolvimento Em geral, executado pelos próprios desenvolvedores e pelos usuários (lamentável) Servem, basicamente, para garantir que as especificações e os requisitos foram efetivamente implementados. O processo cria produtos com defeitos – os testes descobrem esses defeitos. Prazos exíguos dos projetos Cortam os testes. Quem acaba testando? R: Usuário !! HÁ QUALIDADE NO ACIMA DESCRITO? QUAL A EFETIVAMENTE DOS PRÓPRIOS DESENVOLVEDORES TESTAREM? PROPOSTA: Processo de Testes, claramente definido. Executado por especialistas treinados. FASE: TESTES – O QUE OCORRE NA PRÁTICA Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O TESTADOS É INIMIGO DO DESENVOLVEDOR A EQUIPE DE TESTES DEVE SER CRIADA COM OS DESENVOLVEDORES MENOS CAPACITADOS DA EQUIPE DE DESENVOLVIMENTO, AFINAL, QUAQUER UM PODE TESTAR. QUANDO TODO O SOFTWARE ESTIVER PRONTO (O QUE TALVEZ NUNCA ACONTEÇA), ELE SEGUIRÁ PARA O PESSOAL FAZER O TESTE. FASE: TESTES – MITOS Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE O processo de testes começa em paralelo com o processo de desenvolvimento e integra-se a ele, ao longo. Inserção de técnicas de revisões e inspeções nos documentos e modelos produzidos descobre erros antes, mais baratos de serem sanados. Os testes em si devem priorizar as funcionalidades mais críticas, que podem por em risco o negócio QUANTO MAIS CEDO O ERRO FOR ENCONTRADO, MAIS BARATA A SUA SOLUÇÕES (10 REGRAS DE MYERS). LEMBRE-SE : Um software desenvolvido HOJE pode estar rodando e gerando erros daqui há 10, 15, 20 anos. (assim espera o investidor !!!) FASE: TESTES – PREMISSAS DO MODELO PROPOSTO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PLANEJAMENTO Objetivo: minimizar os principais riscos do negócio Elaborar a estratégia de teste Elaborar o plano de teste Etapa acontece com o levantamento de requisitos e planejamento do processo de desenvolvimento FASE: TESTES – PROCESSO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PREPARAÇÃO Preparar o ambiente (equipamentos, pessoas, ferramentas de automação, hardware, software..) para boa execução dos testes. Disponibilizar infra e ferramentas Avaliar as necessidades de treinamento da equipe FASE: TESTES – PROCESSO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE ESPECIFICAÇÃO Elaborar e revisar casos de testes Elaborar e revisar Roteiros de testes. E preciso que a equipe de desenvolvimento já tenha avançado na modelagem e as vezes é preciso até que seja liberada parte da aplicação FASE: TESTES – PROCESSO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE EXECUÇÃO Executar os testes planejados Conforme casos e roteiros de testes Usar Script – caso use ferramenta de automação de testes Registrar os resultados obtidos E preciso que a equipe de desenvolvimento já tenha avançado na modelagem e as vezes é preciso até que seja liberada parte da aplicação FASE: TESTES – PROCESSO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE ENTREGA Finalização do teste Concluída/arquiva a documentação Relatar as ocorrências relevantes para a melhoria do processo. FASE: TESTES – PROCESSO Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE As estratégias de SW usadas nos projetos são: Testes Unitários – testes de unidades isoladas, geralmente realizadas na fase de Implementação Testes de integração – testes integrando as unidades já testados, verificando o conjunto que vai se formando, geralmente realizado na fase de implementação. Testes de Sistema – teste do conjunto formado por todas as unidades, devidamente programadas, testadas isoladamente e testadas de forma integrada. Testes de Aceitação ou homologação Homologação interna Homologação pelo cliente NÍVEIS DE TESTES DURANTE A EXECUÇÃO. Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE TÉCNICAS DE TESTES MAIS USADAS Os testes pelos quais passam o sistema devem ter 2 perspectivas Testes Funcionais: garantem o atendimento aos requisitos Caixa Preta Testes Estruturais: garantem que o software tenha estrutura sólida: robustez Caixa Branca As tecnologias foram aplicadas adequadamente? Os componentes funcionam como uma unidade coesas? Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE TESTES FUNCIONAIS OU CAIXA PRETA Não considera a forma como o código está implementado (detalhes internos) Objetivo: O SW produz os resultados esperados? Os requisitos estão sendo atendidos. Não requer conhecimento prévio da tecnologia empregada e da implementação do código Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE TIPOS DE TESTES POR TECNICA: FUNCIONAL Requisitos verificar se o sistema executa corretamente as funções e sustenta isso por período de tempo contínuo. Regressão verificar se o sistema executa tem mesmo comportamento após ser alterado Em geral realizar os mesmos testes de antes da alteração. Tratamento de erro capacidade em tratar as situações incorretas Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE TESTES ESTRUTURAL OU CAIXA BRANCA Verifica a arquitetura interna do software Objetivo: Identificar os defeitos nas estruturas internas do software teste de cada detalhe da estrutura do código Requer conhecimento técnico da tecnologia e do projeto de software. Deve ser bem planejado Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE TIPOS DE TESTES POR TECNICA: ESTRUTURAL Estresse operar em condições além da normal Avaliar o comportamento do software sob condições críticas (pouca memória, disco....) Avaliar o comportamento sob elevado volume de dados Execução Avaliar o desempenho do sistema do sistema em ambiente de produção: Estão compatíveis com as premissas? Tempo de resposta, processamento Segurança Garantir a confidencialidade das informações e proteção dos dados contra acesso indevido. Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE FASE: TESTES : UM TESTE GERA NOVA NECESSIDADE DE TESTE Testes e Implantação do Software – Aula 6 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PRINCIPAIS CONCEITOS APRESENTADOS NA AULA. Conceito de Teste Encontrar erros nos programas, mais cedo possível. Importância do Testes Evitar erros estratégicos. Geralmente, relegado ou realizado dentro de processo, sem um objetivo claramente definido. Realidade dos testes Proposta: modelo paralelo e integrado ao desenvolvimento Testes Funcionais Testes Estruturais Testes de funcionalidades alteradas complexidade