Testes de software
Diapositivas del conjunto (16)
-
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.
-
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.
-
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
-
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
-
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.
-
- 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.
-
- 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.
-
- 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.
-
- 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
-
- 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.
-
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.
-
- 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.
-
- 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
-
- 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.
-
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).
-
Información
- Descripción
- concursando (Engenharia de Software) Informática Diapositivas sobre Testes de software, creado por Felipe penna el 16/02/2022.
- Creado por
- Felipe penna
- Visitas
- 3
- Valoración
