Baixe o app para aproveitar ainda mais
Prévia do material em texto
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
Compartilhar