O GoConqr está de visual novo! Conte para nós o que você achou.

Slides

Testes de software

Felipe penna Informática concursando Português 16 slides

Testes de software

Slides do conjunto (16)

  1. Qualidade de software - 1º parte

    • Panorama:
    • * Criar um conjunto de atividades para garantir alta qualidade e controle;
    • * Aplicar o que foi criado a todos os projetos.
    • * Usar métricas para refinar essas atividades
    • *Como garantir que o trabalho foi realizado corretamente?
    • Encontrando erros antes de se tornarem defeitos! Ou seja, trabalhando para melhorar a eficiência da remoção dos defeitos
    • *A garantia da qualidade de software, é uma atividade aplicada em todo processo do software.
    • O que é Garantia de Qualidade de Software?
    • O Software Quality Assurance (SQA) consiste nos meios para garantir a qualidade do software a ser lançado, monitorando os métodos e processos de engenharia de software.
  2. Qualidade de software - 2º parte

    • Atuantes pela qualidade de software – engenheiros de software, gerentes de projeto, clientes,
    • vendedores e os indivíduos que trabalham em um grupo de SQA.
    • Alguns atributos:
    • Funcionalidade
    • O software deve fornecer funções apropriadas conforme os requisitos e essas funções devem ser implementadas corretamente.
    • O software deve ter interoperabilidade, o que significa a eficácia com que o software interage com outros componentes do sistema.
    • Deve estar em conformidade com as leis e diretrizes e deve tratar as transações relacionadas a dados com a máxima segurança.
    • Confiabilidade
    • A confiabilidade do software é sua capacidade de executar sob condições específicas por um período de tempo definido. Implica também a capacidade do software em suportar as falhas de seus componentes.
    • O software é confiável com base em sua maturidade que é a frequência das falhas e capacidade de recuperação, que é a capacidade do software para ficar totalmente operacional após uma falha.
    • Usabilidade
    • A usabilidade do software é sua facilidade de uso. Também se refere à facilidade com que um usuário pode entender as funções do software e quanto esforço é necessário para que os usuários entendam as suas funções.
    • Eficiência
    • A eficiência do software depende das práticas de arquitetura e de codificação que foram seguidas durante o seu desenvolvimento.
    • Manutenibilidade
    • A capacidade de manutenção do software depende da complexidade e legibilidade do código. Também se refere à facilidade de identificar e corrigir uma falha no software. O software é analisado com base na facilidade de identificar a principal causa de falha e a facilidade de modificação do código para remover essa falha.
    • A facilidade de manutenção também depende de sua testabilidade, ou seja quanto esforço é necessário para testar o sistema.
    • Portabilidade
    • A portabilidade do software é sua capacidade de se adaptar às mudanças em seu ambiente. Define com que facilidade um sistema se adapta a quaisquer alterações feitas nas suas especificações. Também inclui a facilidade de instalação do software e como é fácil substituir um componente do sistema em um determinado ambiente.
    • Para garantir que um software tenha um bom desempenho nesses atributos de qualidade, precisamos dos seguintes componentes de garantia de qualidade de software.
  3. Qualidade de software - 3º parte

    • Componentes pré-projeto
    • Os componentes do pré-projeto garantem que os recursos necessários para o projeto, o cronograma e o orçamento estejam claramente definidos. O plano de desenvolvimento e garantia de qualidade foi claramente determinado. Os componentes são os seguintes:
    • Plano de Desenvolvimento
    • Plano de qualidade
    • Cronograma
    • Recursos necessários (hardware e recursos humanos)
    • Avaliações de risco
    • Metodologia do Projeto
  4. Qualidade de software - 4º parte

    • Ferramentas de garantia de qualidade de software:
    • * Existem diferentes ferramentas, porém vale ressaltar as categorias que elas precisam atender
    • Infraestrutura
    • Gerenciamento de Releases
    • Controle de Códigos Fonte
    • Revisão de Código
    • Análise Automatizada de Código
    • Revisão em Pares
    • Teste (Software QA)
    • Gerenciamento de Testes
    • Gestão de Bugs e Problemas
    • Testes de navegadores, dispositivos e sistema operacional
    • Teste de Usabilidade
    • Teste de Carga
    • Teste Automatizado e Integração Contínua
    • Monitoramento e Análise
    • Monitoramento de Disponibilidade
    • Manipulação de Exceção
    • Monitoramento de Log
    • Monitoramento de Desempenho
    • Teste e monitoramento de segurança
  5. Elementos da qualidade de software

    • *Padrões. (pág 478 pressman (ver sobre seis sigma))
    • *Revisões e auditorias.
    • *Testes
    • *Coleta e análise de erros/defeitos.
    • *Gerenciamento de mudanças.
    • *Educação
    • *Gerência dos fornecedores.
    • *Administração da segurança.
    • *Proteção.
    • *Gestão de riscos.
  6. Testes de software

    • Objetivo: é testado para revelar erros cometidos inadvertidamente quando foi projetado e construído.
    • Qual é o artefato?
    • Plano que descreve uma estratégia global e um procedimento e designando etapas específicas de teste e os tipos de testes
    • que serão feitos.
    • Como garantir que o trabalho foi realizado corretamente?
    • Revisando a especificação do teste antes do teste, pode-se avaliar a integralidade dos casos de teste e das tarefas de teste.
    • Verificação refere-se ao conjunto de tarefas que garantem que o software implementa corretamente uma função específica. Se uma determinada função atinge seu objetivo.
    • Validação refere-se a um conjunto de tarefas que asseguram que o software foi criado e pode ser rastreado segundo os requisitos do cliente.
  7. Princípios dos testes

    • Princípios dos Testes
    • Segundo Brunelli, os componentes essenciais para o teste de software de um programa podem ser divididos em:
    • Executável do programa (código do programa compilado);
    • Relação dos comportamentos esperados;
    • Apresentação do mecanismo de avaliação dos comportamentos esperados;
    • Descrição das funções;
    • Descrição de como observar se uma ação resultou na execução esperada.
    • O levantamento dos comportamentos esperados é considerado uma das maiores dificuldades na elaboração dos testes, portando sua elaboração deve ser feito de forma cautelosa e de acordo com os requisitos do sistema.
  8. O processo de testes

    • O Processo de Teste, como qualquer outro processo, necessita ser refinado continuamente, permitindo seu amadurecimento, de maneira a ampliar sua atuação e permitir aos envolvidos no projeto uma maior visibilidade e organização dos seus trabalhos. O que se deseja nesta etapa é uma maior agilidade e controle operacional dos projetos de testes.
    • Realizar testes de software é uma tarefa bastante complexa quando se desconhece o que é qualidade. Nas indústrias automobilísticas, como é o caso da maioria das grandes indústrias, qualidade está intimamente associada a custo de retrabalho.
    • Na área de Engenharia de Software, desde Roger Pressman e seu livro Engenharia de Software, que inclusive é uma das referências deste artigo, muitas companhias passaram a compreender que qualidade apenas pode ser obtida com auditoria do processo e certificação dos itens que possuem maior impacto no resultado do produto.
    • Falando especificamente de Testes, podemos citar como principais técnicas:
    • Teste Funcional;
    • Teste Estrutural;
    • Teste Baseado em Falha ou Erro;
    • Teste de Caixa Branca;
    • Teste de Regressão.
  9. Testes funcionais

    • TÉCNICAS FUNCIONAIS
    • • caixa-branca
    • • caixa-preta
    • • regressão
    • TÉCNICAS NÃO FUNCIONAIS
    • • desempenho
    • • carga
    • • usabilidade
    • • confiabilidade
    • • recuperação
    • • segurança
    • FASES DE TESTES
    • • unidade
    • • integração
    • • sistema (Teste de Componentes)
    • • aceitação (Teste de Validação)
    • • operação (Teste de Sistema.)
    • ARTEFATOS
    • • caso de teste
    • • plano de teste
  10. Teste funcional (caixa preta)

    • O teste funcional, que também é conhecido como teste “caixa - preta”, são os testes definidos de acordo com os requisitos funcionais do software. Como não há conhecimento sobre a operação interna do programa, o analista concentra-se nas funções que o software contemplará. Baseado na especificação determina-se as saídas que são esperadas para um determinado conjunto de dados.
    • Esse tipo de teste reflete a ótica do usuário, o stakeholder (ler Nota 2) interessado em utilizar o programa, sem levar em conta os detalhes de sua construção. Comparado a outros modelos, sua concepção é relativamente simples.
    • revelar problemas como:
    • Funções incorretas ou omitidas;
    • Erros de interface;
    • Erros de comportamento ou desempenho;
    • Erros de iniciação e término.
  11. Teste Funcional (caixa branca)

    • Teste Caixa Branca
    • Possui acesso ao código fonte, conhecendo a estrutura interna do produto. Sendo analisados e possibilitando que sejam escolhidas partes específicas de um componente para ser avaliados, permitindo uma busca precisa do comportamento da estrutura.
    • Os níveis de teste caixa branca são os Testes de Unidade e o Teste Estático.
    • Teste de unidade
    • O teste de unidade é a fase de teste que tem como finalidade testar individualmente as funcionalidades do software em questão, garantindo que todas as funcionalidades do software sejam testadas pelo menos uma vez.
    • Uma das desvantagens do teste de unidade é que sua implementação é exaustiva e necessita de prazos maiores para realização, sendo que para a realização dos testes deve-se conhecer os objetivos e especificações dos requisitos de cada uma das funcionalidades do software. Por outro lado, sua vantagem é a localização e prevenção de falhas por estar testando cada uma das funcionalidades individualmente.
  12. Teste Funcional (regressão)

    • Essa é uma técnica de teste aplicável a uma nova versão de software ou a uma versão em desenvolvimento. Ela consiste em aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Inclui-se nesse contexto a observação de fases e técnicas de teste de acordo com o impacto de alterações provocado pela nova versão ou ciclo de teste.
    • Para efeito de aumento de produtividade e de viabilidade dos testes, é recomendada a utilização de ferramentas de automação, de forma que, sobre a nova versão ou ciclo de teste, todos os testes anteriores possam ser executados novamente com maior agilidade.
  13. Teste de integração

    • O teste de integração é a fase que testa a integração dos componentes do sistema, se estão de acordo com os requisitos do software, levando em consideração a sua funcionalidade em conjunto e não as suas regras de negócios, procurando assim erros associados a interfaces. O teste de integração pode ser dividido em dois tipos:
    • Não Incremental: Os módulos do sistema são interligados e combinados, e o software é testado como um todo, dificultando a localização dos erros e a correção dos erros encontrados;
    • Incremental: O software é testado em partes, possibilitando que as interfaces sejam testadas de forma incremental, facilitando encontrar erros e isolá-los para correção. O teste incremental possui duas estratégias:
    • Integração descendente (top-down), onde os módulos do sistema são integrados de cima para baixo de acordo com a hierarquia de controle do software; e
    • Integração ascendente (bottom-up), onde a construção e os testes dos módulos são iniciados da parte mais baixa da estrutura do software.
    • Teste de componentes
    • No teste de componentes os componentes do software são testados separadamente de acordo com a especificação e estrutura das funcionalidades. Estes componentes são as integrações de interface e unidades do software, com diversas classes no seu desenvolvimento.
    • O desenvolvedor do software é sempre responsável pelo teste das unidades individuais (componentes) do programa, garantindo que cada uma execute a função ou apresente o comportamento para o qual foi projetada. Em muitos casos, o desenvolvedor também faz o teste de integração – uma etapa de teste que leva à construção (e teste) da arquitetura completa do software. Somente depois que a arquitetura do software está concluída é que o grupo de teste independente se envolve. O papel de um grupo independente de teste (ITG, independent test group) é remover problemas inerentes associados ao fato de deixar o criador testar aquilo que ele mesmo criou. O teste independente remove o conflito de inte-
    • resses que, de outra forma, po
  14. Testes automatizados

    • Os testes automatizados são desenvolvidos como programas ou scripts que têm como principal objetivo exercitar o sistema, testando as funcionalidades e verificando se estão de acordo com as especificações dos requisitos do sistema e os objetivos esperados.
    • Existem diversas vantagens para a utilização dos testes automatizados, dentre el as destacam-se:
    • Menor tempo na execução dos testes;
    • Verificação do sistema durante o processo de desenvolvimento;
    • Alcançar melhor qualidade do software;
    • Casos de testes mais elaborados.
    • A grande vantagem dos testes automatizados é que podem ser repetidos a qualquer momento, seja em uma nova funcionalidade ou alguma modificação em uma funcionalidade específica. Sua implementação reduz os esforços e o tempo gasto, reduzindo as chances de que ocorram falhas humanas na execução dos testes.
    • Os testes automatizados reduzem o tempo no processo de testes, porém, precisa ser complementado por outros tipos de testes.
  15. Teste de sistema(não funcionais)

    • Já é uma questão de medição, testar os atributos de qualidade Básico
    • O teste de sistema é realizado após o sistema estar pronto, sendo avaliados todos os componentes e funcionalidades. O objetivo do teste de sistema é exercitar todo o software, assegurando que todos os elementos que compõem o sistema estão de acordo com as especificações dos requisitos, incluindo todos os itens de hardware e software que compõem a regra de negócio. Existem vários tipos de teste de sistema, tais como:
    • Teste de Desempenho (agilidade),
    • Teste de Segurança (confiabilidade),
    • Teste de Recuperação (recuperação de dados)
    • e Teste de Inicialização (inserção).
  16. Espiral de testes

    • Espiral de testes

Informações

Descrição
concursando Informática (Engenharia de Software) Slides sobre Testes de software, criado por Felipe penna em 16-02-2022.
Criado por
Felipe penna
Visualizações
4
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?