Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROCESSOS DE DESENV. DE SOFTWARE CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Professor: David Falcão, M.Sc. davidfalcaoprof@gmail.com Aula 8 – Teste de software Processos de Desenvolvimento de Software – Prof. David Falcão Atividades básicas de um PDS Definição / Especificação: (o quê?) • Análise econômica • Análise de requisitos • Especificação de software Desenvolvimento : (como?) • Arquitetura do sistema • Implementação (codificação) Manutenção: • Teste do produto • Documentação, Suporte e Melhoria Contínua Engenharia de Software – Prof. David Falcão Certificação Brasileira de Testes de Software A Associação Latino-Americana de Teste de Software (ALATS) criou a Certificação Brasileira de Teste de Software (CBTS) para atender a uma exigência do mercado brasileiro que sempre demandou um processo de certificação e qualificação de profissionais em teste de software. www.alats.org.br Processos de Desenvolvimento de Software – Prof. David Falcão O que é teste de software? Teste é uma atividade realizada para avaliar a qualidade do produto e para melhorá-lo, identificando defeitos e problemas; É uma verificação dinâmica do comportamento de um programa num conjunto finito de casos de teste, apropriadamente selecionados de um domínio infinito de execuções, contra um comportamento esperado. - Após várias atividades e fases do desenvolvimento, o software finalmente parece estar pronto. - Mesmo tendo sido aplicado atividades para a garantia de qualidade, não se pode assumir que o software está livre de erros. - Na verdade, não se pode ter 100% de certeza. - Para garantir a qualidade do software, ele deve ser avaliado antes, durante e após o seu término. Processos de Desenvolvimento de Software – Prof. David Falcão O que é teste de software? Concepção Antiga de Teste: testar o software após o término de seu desenvolvimento. Concepção Atual: testar o software durante todo o ciclo de vida.testar o software durante todo o ciclo de vida. Além do simples teste, objetivando descobrir erros de implementação, existem duas atividades de teste consideradas importantes: Verificação - Assegurar que o software (uma função ou parte do mesmo) seja implementado de acordo com os requisitos e o planejamento. Validação - Assegurar que o software desenvolvido tem utilidade prática para o usuário, auxiliando a resolver seu problema. Processos de Desenvolvimento de Software – Prof. David Falcão O que é teste de software? Engano Defeito introduz Erro produz Erro propaga Saída FALHA Um Engano introduz um defeito no software que, quando ativado, pode produzir um erro que, se propagado até a saída do software, constitui uma falha. Processos de Desenvolvimento de Software – Prof. David Falcão Estrutura de um caso de teste Processos de Desenvolvimento de Software – Prof. David Falcão Técnica Estrutural – Estamos construindo certo o produto? Casos de Testes centrados na estrutura de controle, a nível de módulo do programa Caixa BrancaCaixa Branca Técnica Funcional – Estamos construindo o produto certo? Casos de Testes centrados nos requisitos Caixa PretaCaixa Preta Técnicas de Teste Os casos de teste objetivam analisar somente o comportamento de entradas/saídas. Os testes estão apoiados em informações sobre como o software foi projetado ou codificado Processos de Desenvolvimento de Software – Prof. David Falcão Níveis de teste O Teste de Software é realizado em diferentes níveis no processo de desenvolvimento e manutenção de software. O alvo do teste pode variar: um módulo, um grupo de módulos ou todo o sistema. Quatro estágios podem ser distinguidos: Unidade, Integração, Sistema e Validação. Teste de Unidade – Verifica o funcionamento de um pedaço do software isoladamente. Ocorre com acesso ao código que está sendo testado com o suporte de ferramentas de depuração e pode envolver o programador que escreveu o código. Teste de Integração – Processo de verificação da interação entre componentes Teste de Sistema – Testa o comportamento do sistema como um todo. A maioria das falhas funcionais já devem ter sido identificadas. São apropriados para comparar os requisitos não funcionais (segurança, velocidade e confiabilidade) e a interface com outras aplicações, utilitários, dispositivos ou ambientes operacionais. Teste de Aceitação: Testa os requisitos na visão das necessidades do usuário. Processos de Desenvolvimento de Software – Prof. David Falcão Níveis de teste Processos de Desenvolvimento de Software – Prof. David Falcão Teste de unidade A interface com o módulo é testada para ter a garantia de que as informações fluem para dentro e para fora da unidade de programa que se encontra sob teste. A estrutura de dados local é examinada para ter a garantia de que dados armazenados temporariamente mantêm sua integridade durante todos os passos de execução. As condições de limite são testadas para ter a garantia de que o módulo opera adequadamente nos limites estabelecidos para demarcarem ou restringirem o processamento. Todos os caminhos de tratamento de erros são testados. Processos de Desenvolvimento de Software – Prof. David Falcão Teste de integração Fase do teste de software em que módulos são combinados e testados em grupo. Ela sucede o teste de unidade e antecede o teste de sistema, em que o sistema completo (integrado) é testado num ambiente de produção. Integração Top-Down Os módulos são integrados movimentando-se de cima para baixo, através da hierarquia de controle, iniciando-se do módulo de controle principal. Os módulos subordinados ao módulo de controle principal são incorporados à estrutura de uma maneira depth-first (primeiro pela profundidade) ou breadth- first (primeiramente pela largura). Processos de Desenvolvimento de Software – Prof. David Falcão Teste de sistema Fase do processo de teste de software e de hardware em que o sistema já completamente integrado é verificado quanto a seus requisitos num ambiente de produção. Está no escopo da técnica de teste de caixa-preta, e dessa forma não requer conhecimento da estrutura (lógica) interna do sistema. É um teste mais limitado em relação aos testes de unidade e de integração, fases anteriores do processo de teste, pois se preocupa somente com aspectos gerais do sistema. Não se limita a testar somente requisitos funcionais, mas também requisitos não funcionais como a expectativa do cliente. Engenharia de Software – Prof. David Falcão Testes de Aceitação Realizados por um grupo restrito de usuários finais do sistema, que simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado. Teste formal conduzido para determinar se um sistema satisfaz ou não seus critérios de aceitação e para permitir ao cliente determinar se aceita ou não o sistema. Validação de um software pelo comprador, pelo usuário ou por terceira parte, com o uso de dados ou cenários especificados ou reais. Engenharia de Software – Prof. David Falcão Testes de Aceitação Testes Alfa O período entre o término do desenvolvimento e a entrega é conhecido como fase alfa e os testes alfa são executados nesse período. Conduzido pelo cliente no ambiente do desenvolvedor, com este "olhando sobre o ombro" do usuário e registrando erros e problemas de uso. Testes Beta Geralmente o desenvolvedor não está presente. Teste beta é uma aplicação real do software, sem que haja controle por parte do desenvolvedor. Os problemas são registrados pelo usuário e repassados regularmente ao desenvolvedor, que corrige o software antes de lançar o produto para venda. Candidato a lançamento Indica uma versão que é candidata a ser a versão final, em função da quantidade de erros encontradas. Tais versões são um passo além do teste beta, sendo divulgadas para toda a comunidade. Engenharia de Software – Prof. David FalcãoTestes de Operação Operação Conduzido pelos administradores do ambiente final em que o sistema ou software entrará em ambiente produtivo. Simulações para garantir que a entrada em produção do sistema será bem sucedida. Envolve testes de instalação, simulações com cópia de segurança dos bancos de dados etc. Em alguns casos um sistema entrará em produção para substituir outro e é necessário garantir que o novo sistema continuará garantindo o suporte ao negócio. Engenharia de Software – Prof. David Falcão Testes de Segurança Testes Não-Funcionais Segurança Tenta verificar se todos os mecanismos de proteção embutidos em um sistema o protegerão de acessos indevidos. Todas as formas de ataque devem ser simuladas. A finalidade é dificultar o acesso indevido de forma que seja mais interessante e barato obter a informação de forma correta e legal. Engenharia de Software – Prof. David Falcão Testes de Estresse / Desempenho Testes Não-Funcionais Estresse Feito para confrontar o sistema com situações anormais. O teste de estresse executa o sistema de forma que exige recursos em quantidade, frequência ou volume anormais. Desempenho Idealizado para testar o desempenho do software quando executado dentro do contexto de um sistema integrado. Algumas vezes os testes de desempenho são combinados com os de estresse e podem ser executados durante todo o processo de desenvolvimento. Processos de Desenvolvimento de Software – Prof. David Falcão Teste de Recuperação Muitos sistemas baseados em computador precisam recuperar- se de falhas e retomar o processamento dentro de um tempo previamente especificado. O teste de recuperação é um teste de sistema que força o software a falhar de diversas maneiras e verifica se a recuperação é adequadamente executada. Engenharia de Software – Prof. David Falcão Testes de Usabilidade Testes Não-Funcionais Usabilidade Tem por objetivo verificar a facilidade que o software ou site possui de ser claramente compreendido e manipulado pelo usuário. Processos de Desenvolvimento de Software – Prof. David Falcão Tipos de Teste x Critérios de Qualidade CategoriaCategoria Tipos de TesteTipos de Teste RequisitosRequisitos Funcionalidade Teste Funcional Teste de Volume Teste de Segurança Teste de Acessibilidade Conjunto de características Capacidade Segurança Usabilidade Teste de Usabilidade Fator humano e Estética Consistência da Interface do usuário Auxílio online e assistentes Confiabilidade Teste de Estresse Teste de Regressão Teste de Integridade Teste de Estrutura Frequência e severidade de falhas Confiança nos resultados Recuperação de falhas Tempo entre falhas (MTBF) Desempenho Teste de Desempenho Teste de Carga Teste de Contenção Teste de Perfil de Desempenho Vazão Eficiência Tempo de Resposta Consumo de recursos Suportabilidade Teste de Instalação Teste de Configuração Facilidade de instalação Requisitos de configuração Requisitos de adaptabilidade Requisitos de Compatibilidade Processos de Desenvolvimento de Software – Prof. David Falcão Tirinha Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22
Compartilhar