Você está na página 1de 36

Atribuição da Unidade 13

Por Jawaj Duha


Metodologias de Teste
Metodologias de Teste em engenharia de software são estratégias de teste, abordagens ou
métodos usados para testar um produto específico para garantir sua usabilidade. Ele garante que o
produto funcione de acordo com as especificações dadas e não tenha efeitos colaterais quando
usado fora dos parâmetros de projeto.

Por que as Metodologias de Teste de Software são importantes?

• Ele gerencia os requisitos do seu projeto, casos de teste, bugs, problemas em um único
ambiente integrado durante todo o ciclo de vida do teste.
• É uma solução de teste completa que inclui gerenciamento de requisitos, projetos de casos
de teste, gerenciamento de liberação, rastreamento de defeitos, etc.
• É uma abordagem de teste altamente intuitiva que fornece uma imagem completa do produto
de software e do status de integridade.

Metodologias de Testes Funcionais vs Não


Funcionais
O Teste Funcional envolve o teste de aplicativos em relação aos requisitos de negócios que inclui
vários tipos de teste projetados para garantir que cada parte do software se comporte da mesma
maneira que o esperado pelos usuários.

Os métodos de Teste Não-Funcional incorporam diferentes tipos de teste focados nos aspectos
operacionais de um software. Essas são a chave para o lançamento de software de alta qualidade
que pode ser facilmente adotado pelos usuários finais, construindo uma estrutura de teste robusta
que implementa metodologias de teste funcionais e não funcionais.

Teste de unidade
• É o nível inicial de teste que geralmente é executado pelos desenvolvedores em um
ambiente orientado a teste, escrever e executar casos de teste antes que o software seja
passado para a equipe de teste.
• O teste de unidade é uma metodologia de teste de software que garante que os
componentes individuais do software estejam funcionando perfeitamente para qual finalidade
são projetados.
• O teste de unidade facilita a depuração porque os bugs são detectados muito mais cedo e
fáceis de corrigir pela equipe de teste.

Teste Unitário - Vantagens


• Reduz defeitos nos recursos recém-desenvolvidos ou reduz bugs ao alterar a funcionalidade
existente
• Reduz o custo dos testes, pois os defeitos são detectados na fase inicial
• Melhora o design e permite uma melhor refatoração de código
• Testes Unitários, quando integrados com a compilação dá a qualidade da construção
também
Desvantagens/Limitações da Unidade
• eO teste não pode detectar todo e qualquer bug em um aplicativo
• É impossível avaliar cada caminho de execução em cada aplicativo de software
Há um limite para o número de cenários e dados de teste que o desenvolvedor pode usar
para verificar o código-fonte.
Teste Unitário Life Cyc
Técnicas de Teste Unitário:

1. Teste de caixa preta - Usando o qual a interface do usuário, entrada e saída são testadas
2. White Box Testing - usado para testar o comportamento de cada uma dessas funções é
testado
3. Gray Box Testing - Utilizado para executar
testes, riscos e métodos de avaliação.

Teste de Aceitação
• O teste de aceitação é a última fase do teste
funcional para avaliar a peça final do
software para entrega.
• Ele garante que o produto esteja em
conformidade com os critérios de negócios e
atenda completamente às necessidades do
usuário final.
• Realiza testes internos e externos. Isso significa que o produto é entregue nas mãos dos
usuários para testes beta e é testado pela equipe de qualidade também.
• O teste beta é fundamental para obter feedback potencial dos usuários e abordá-los antes da
entrega do produto final.
Testes de aceitação em
SDLC
O diagrama a seguir explica o teste de aceitação no ciclo de vida de desenvolvimento de
software.

Os casos de teste de aceitação são executados em


relação aos dados de teste ou usando o script de
teste de aceitação e, em seguida, os resultados
são comparados com o esperado.
Teste de Aceitação - Critérios
Os critérios de aceitação são definidos com base nos seguintes atributos:

• Correção e Completude Funcional


• Integridade dos dados
• Conversão de dados
• Usabilidade
• Desempenho
• Pontualidade
• Confidencialidade e Disponibilidade
• Facilidade de instalação e atualização
• Escalabilidade
• Documentação
Plano de Teste de Aceitação - Atributos
As atividades de teste de aceitação são realizadas em fases. Primeiramente, os testes básicos
são executados, os resultados são satisfatórios e, em seguida, a execução de cenários mais
complexos são realizadas.

O plano de teste de aceitação tem os seguintes atributos:

• Introdução
• Categoria do Teste de Aceitação
• Ambiente de Operação
• ID do caso de teste
• Título do Teste
• Objetivo do Teste
Relatório de Teste de Aceitação -
Atributos
O relatório de teste de aceitação tem os seguintes atributos:

• Identificador de relatório
• Síntese dos Resultados
• Variações
• Recomendações
• Resumo da Lista de Tarefas Pendentes
• Decisão de aprovação
Quem realiza o Teste de Aceitação?
• O Teste de Aceitação Interno (também conhecido como Teste Alfa) é realizado por membros
da organização que desenvolvem o software. mas não estão diretamente envolvidos no
projeto. Geralmente membros de Gestão de Produtos, Vendas ou Suporte ao Cliente.
• Teste de Aceitação Externa - é realizado por pessoas que não são funcionários da
organização que desenvolveu o software.
• O Teste de Aceitação do Cliente é realizado pelos clientes da organização que desenvolveu
o software. Foram eles que pediram à organização para desenvolver o software.
• Teste de Aceitação do Usuário - (Também conhecido como Teste Beta) é realizado pelo
usuário final do software.
Vantagens dos Testes de Aceitação:
• Valida se os requisitos de negócios são atendidos com base nas histórias de usuários no
escopo
• Reduz o risco de identificação de defeitos na produção
• Os usuários finais ganharão habilidades e confiança ao usar o novo sistema antes de entrar
no ar.
Desvantagens/Limitações da Aceitação
•eVocê pode não testar todas as funções ou recursos
• O progresso do teste é difícil de medir
• Os usuários podem confirmar a forma como o sistema funciona e não ver ou relatar os
defeitos
• Os usuários podem se concentrar em comparar o novo sistema com um sistema legado,
em vez de procurar defeitos.
Testes Funcionais
Teste funcional é uma técnica de teste que é usada para testar os recursos/funcionalidade do
sistema ou software, deve cobrir todos os cenários, incluindo caminhos de falha e casos de limite.

Técnicas de Testes Funcionais:

Existem duas técnicas principais de Teste Funcional, conforme mostrado abaixo:

As outras principais técnicas de Teste Funcional


incluem:

• Teste de unidade
• Testes de integração
• Teste de fumaça
• Teste de aceitação do usuário
• Teste de localização
• Teste de Interface
• Testes de Usabilidade
• Teste de sistema
• Teste de Regressão
• Testes de globalização

Vantagens dos Testes Funcionais:


• Produz um produto/software sem defeitos
• Garante que o cliente/usuário final esteja satisfeito
• Ele garante que todos os requisitos sejam atendidos
• Ele garante o funcionamento adequado de todas as funcionalidades de um
aplicativo/software/produto.
Desvantagens/Limitações do Funcional
•eFuncional O teste é um processo no qual vários erros lógicos no software não são
detectados no processo de teste
• Não importa como o desenvolvedor implementa o código-fonte real porque ele apenas
Foca nos resultados do código-fonte.
Teste de sistema
• O teste de sistema é o método de teste de caixa preta usado para avaliar o sistema
integrado como um todo e garantir que ele atenda a todos os requisitos específicos.
• No caso de testes de sistema, a funcionalidade do produto é testada de ponta a ponta e
geralmente é realizada pela equipe de testes, não pela equipe de desenvolvimento.
• O teste do sistema é realizado antes de colocar o produto de software em produção.
Tipos de testes de sistema:
Vantagens do Teste de Sistema:
• Verifica o sistema em relação aos requisitos comerciais, funcionais e técnicos dos usuários
finais.
• Isso ajuda a obter o máximo de bugs antes do teste de aceitação.
• O teste do sistema aumenta o nível de confiança da equipe no produto antes que o produto
vá para o teste de aceitação.
Desvantagens/Limitações do Sistema
•eApenas d cobertura do aplicativo, pois o testador não pode segmentar um segmento
limite de código específico.
• Os casos de teste são difíceis de projetar, pois o testador não tem conhecimento prévio
sobre
especificações e codificação.
• Algumas entradas possíveis serão apenas testadas.
Testes de desempenho
Teste de desempenho, uma técnica de teste não funcional realizada para determinar os
parâmetros do sistema em termos de estabilidade sob várias cargas de trabalho. O teste de
desempenho mede os atributos de qualidade do sistema, como confiabilidade e uso de recursos.
Técnicas de Teste de Desempenho:
• Teste de Carga - é a forma mais simples de teste, para entender o comportamento do
sistema sob carga específica. O teste de carga resultará na medição de transações críticas
de negócios importantes e carga no banco de dados, aplicativo, servidor etc.
• Teste de Estresse - é realizado para encontrar a capacidade limite superior do sistema e
também para determinar como o sistema se comporta se a carga atual vai bem acima do
máximo esperado.
• Soak Testing - teste de imersão também conhecido como teste de resistência, é realizado
para determinar os parâmetros do sistema sob carga contínua esperada. Durante o teste de
imersão, os parâmetros, como a utilização da memória, são monitorados para detectar
vazamentos de memória ou outros problemas de desempenho.
• Spike Testing - o teste de spike é realizado aumentando o número de usuários
repentinamente em uma quantidade muito grande e medindo o desempenho do sistema.
Processo de teste de desempenho:
Testes de segurança
O teste de segurança é uma técnica de teste para determinar se um sistema de informações
protege os dados e mantém a funcionalidade conforme pretendido. Visa também verificar 6
princípios básicos, conforme listados abaixo:

• Confidencialidade
• Integridade
• Autenticação
• Autorização
• Disponibilidade
• Não-Repúdio
Testes de Segurança - Técnicas:
• Injecção
• Autenticação quebrada e gerenciamento de sessão
• Script entre sites (XSS)
• Referências de objeto direto inseguras
• Configuração incorreta de segurança
• Exposição de dados confidenciais
• Controle de acesso de nível de função ausente
• Falsificação de solicitação entre sites (CSRF)
• Usando componentes com vulnerabilidades conhecidas
• Redirecionamentos e encaminhamentos não validados

Teste de Regressão
Teste de regressão: uma técnica de teste de caixa preta que consiste em executar
novamente os testes que são afetados pelas alterações de código. Esses testes
devem ser executados com a maior frequência possível durante todo o ciclo de vida
de desenvolvimento de software.

Tipos de Testes de Regressão:

• Requer conhecimento sobre o sistema e como ele afeta pelas funcionalidades existentes.
• Os testes são selecionados com base na área de defeitos frequentes
• Os testes são selecionados para incluir a área, que sofreu alterações de código muitas vezes
• Os testes são selecionados com base na crítica das características.

Etapas do teste de regressão:


Os testes de regressão são os casos ideais de automação que resultam em melhor investimento
(ROI) de R eturn On I.

• Selecione os testes de regressão


• Escolha a ferramenta apt e automatize os Testes de Regressão
• Verificar aplicativos com pontos de verificação
• Gerenciar testes de regressão/atualização quando necessário
• Agende os testes
• Integre com as compilações
• Analise os resultados

Metodologia Waterfall
No modelo cascata, o desenvolvimento de software avança por várias fases como Análise de
Requisitos, Design etc - sequencialmente.

Nesse modelo, a próxima fase começa somente quando a fase anterior é concluída.
Para que serve a abordagem de teste
l A primeira fase no modo cascata é a fase de requisitos em que todos os requisitos do
projeto são completamente definidos antes de iniciar o
teste. Durante essa fase, a equipe de teste faz um brainstorming sobre o escopo do teste, a
estratégia de teste e elabora um plano de teste detalhado.

Somente quando o projeto do software estiver concluído, a equipe passará para a execução dos
casos de teste para garantir que o software desenvolvido se comporte como esperado.

Nesta metodologia, os testes prosseguem para a fase seguinte apenas quando as fases
anteriores são concluídas.
Vantagens e desvantagens das vantagens da
cascata : ?
Este modelo de engenharia de software é muito simples de planejar e gerenciar. Assim, projetos,
onde os requisitos são claramente definidos e declarados previamente, podem ser facilmente
testados usando um modelo em cascata.

Desvantagens:

No modelo em cascata, você pode começar com a próxima fase somente quando a fase anterior
for concluída. Portanto, esse modelo não pode acomodar eventos não planejados.

Metodologia Ágil
Na metodologia ágil, o software é desenvolvido em ciclos rápidos. As interações entre clientes,
desenvolvedores e clientes são enfatizadas em vez de processos e ferramentas. A metodologia
ágil se concentra em responder à mudança em vez de um planejamento extensivo.

O que é a Abordagem de Teste para Metodologia Ágil?

O teste incremental é usado em métodos de desenvolvimento ágil e, portanto, cada versão do


projeto é testada completamente. Isso garante que quaisquer bugs no sistema sejam corrigidos
antes da próxima versão
Vantagens e desvantagens do Agile
Metodologiae método?
Vantagens:
É possível fazer alterações no projeto a qualquer momento para cumprir os requisitos. Estes
testes incrementais minimizam os riscos.

Desvantagens:
A interação constante com o cliente significa uma pressão de tempo adicional sobre todas as
partes interessadas, incluindo o próprio cliente, as equipes de desenvolvimento e teste de
software
Qual metodologia de software escolher?
Existem toneladas de metodologias de teste disponíveis que são projetadas para um propósito
específico com suas próprias vantagens e desvantagens. A seleção de uma metodologia de
software depende de múltiplos fatores como a natureza do projeto, quais são os requisitos do
cliente, cronograma do projeto etc. Em alguns casos, o teste e o desenvolvimento andam lado a
lado, enquanto outros incluem testes durante fases posteriores, quando a compilação está
pronta.
Configurando metodologias de teste?
As metodologias de teste não são usadas apenas para fins de teste de código, mas também para
outros fins.

• Agendamento: O agendamento é fundamental para implementar a metodologia de testes


com sucesso que deve atender aos requisitos de cada membro da equipe.
• Abordagem de teste: Depois de concluir o agendamento e os resultados do projeto serem
bem definidos, a próxima etapa é formular a abordagem de teste correta.
• Relatórios: Esta etapa ditará a eficácia da abordagem de teste e as alterações necessárias
para configurar a metodologia de teste com êxito.

Você também pode gostar