Please enable JavaScript.
Coggle requires JavaScript to display documents.
1) Fundamentos de Teste pt1, 1) Fundamentos de Teste pt2 - Coggle Diagram
1) Fundamentos de Teste pt1
1.1 O que é teste?
Avaliar a qualidade dos artefatos de software
Verificação
Checar se o sistema atende aos requisitos
Identificar defeitos
Validação
Verificar se o sistema atende às necessidades dos usuários e stakeholders
Testes dinâmicos
Execução do software
Identificar falhas (provenientes de bugs)
Testes estáticos
Revisões e análises
Defeitos diretamente (bugs em si)
1.1.1 Objetivos do teste
Avaliar produtos de trabalho, como requisitos e código.
Detectar falhas e defeitos.
Garantir a cobertura adequada do objeto de teste.
Reduzir riscos relacionados à qualidade do software.
Verificar se os requisitos foram atendidos.
Confirmar conformidade com requisitos contratuais, legais e normativos.
Fornecer informações para decisões dos stakeholders.
Criar confiança na qualidade do software.
Validar se o software está completo e funciona conforme esperado.
1.1.2 Teste e depuração
Teste
Pode identificar falhas (teste dinâmico) ou defeitos diretamente (teste estático)
Depuração
Para teste dinâmico: investiga e corrige a causa de uma falha
Reprodução da falha
Diagnóstico da causa
Correção da falha
Testes de confirmação e regressão
Para teste estático: apenas remove o defeito, sem necessidade de reprodução ou diagnóstico
1.2 Por que os testes são necessários?
Garantem a qualidade do software dentro do escopo, tempo e orçamento definidos
1.2.2 Testes e Garantia da Qualidade (QA)
O teste é uma forma de controle de qualidade (QC), que foca na correção de defeitos e na qualidade do produto
Já a QA é uma abordagem preventiva voltada para a melhoria dos processos, garantindo que boas práticas resultem em um bom produto
QC usa testes para identificar e corrigir defeitos, a QA usa os resultados dos testes para avaliar e aprimorar os processos de desenvolvimento e teste
1.2.3 Erros, Defeitos, Falhas e Causas-raiz
Erros
humanos geram
defeitos
que podem causar
falhas
no sistema
Defeitos podem estar na documentação, código ou artefatos de suporte
Nem todo defeito resulta em falha imediatamente; alguns dependem de circunstâncias específicas
Para evitar falhas recorrentes, realiza-se a análise de causa-raiz para identificar e eliminar a origem dos problemas
Exemplos
Erro humano: Um programador esquece de inicializar uma variável.
Defeito no código: Uma condição "se" não cobre todos os casos possíveis.
Falha no sistema: O software trava ao receber uma entrada inesperada.
Causa-raiz: Falta de revisão no código permitiu que o erro passasse despercebido.
Fator externo: Um erro de firmware causado por interferência eletromagnética de outro dispositivo.
Falha VS Bug (defeito)
Bug (Defeito)
O erro dentro do código (potencial problema)
É um erro no código, na documentação ou em artefatos de suporte que pode causar problemas no funcionamento do software. Um bug pode estar presente, mas não necessariamente gerar um problema visível.
Falha
O problema acontecendo na prática (consequência do bug)
É a manifestação visível de um bug durante a execução do software. Ou seja, ocorre quando um defeito é acionado e o sistema se comporta de forma inesperada.
Nem todo bug causa uma falha, mas toda falha resulta de um bug ou de fatores externos (como falhas de hardware ou interferências ambientais)
1.3 Princípios de teste
O teste detecta defeitos (bugs), mas não prova a ausência deles – Testes mostram falhas provenientes de bugs, mas não garantem que o software esteja livre de defeitos.
Testes exaustivos são impossíveis – É inviável testar tudo, então priorização e testes baseados em risco devem ser usados.
Testes antecipados economizam tempo e dinheiro – Detectar defeitos cedo reduz custos e evita problemas futuros.
Defeitos se concentram em certas áreas – Poucos componentes do sistema geralmente contêm a maioria dos defeitos.
Testes se degradam com o tempo – Repetir os mesmos testes reduz sua eficácia, exigindo atualização contínua.
Os testes dependem do contexto – Métodos variam conforme o tipo de software e seu ambiente de uso.
Ausência de defeitos não significa sucesso – Mesmo sem defeitos, o software pode falhar em atender às necessidades dos usuários ou do negócio.
1) Fundamentos de Teste pt2
1.4 Atividades de teste, Testware e Papéis de teste
1.4.1 Atividades e Tarefas de Teste
Planejamento do Teste – Define objetivos, abordagem e restrições do teste.
Monitoramento e Controle do Teste – Acompanha o progresso e toma ações para garantir que os objetivos sejam atingidos.
Análise do Teste – Identifica recursos testáveis, condições de teste e riscos associados.
Modelagem do Teste – Cria casos de teste, define requisitos de dados e especifica a infraestrutura necessária.
Implementação do Teste – Prepara materiais, scripts e ambientes de teste para execução eficiente.
Execução do Teste – Realiza os testes, registra resultados, analisa falhas e reporta anomalias.
Conclusão do Teste – Avalia os resultados, arquiva materiais úteis e documenta lições aprendidas para futuras melhorias.
1.4.2 Processo de Teste no Contexto
Influência nos testes
Stakeholders: necessidades, expectativas e colaboração.
Equipe de teste: habilidades, conhecimento e experiência.
Domínio do negócio: criticidade, riscos, normas legais e demandas de mercado.
Fatores técnicos: tipo de software, arquitetura e tecnologia.
Restrições do projeto: escopo, tempo, orçamento e recursos.
Fatores organizacionais: estrutura e práticas da organização.
Ciclo de vida do desenvolvimento: métodos e práticas de engenharia.
Ferramentas: disponibilidade, usabilidade e conformidade.
1.4.3 Testware
Produtos de trabalho
Planejamento de testes: plano de testes, cronograma de testes, registro de riscos, critérios de entrada e saída.
Monitoramento e controle de testes: relatórios de progresso, documentação de diretrizes de controle e informações sobre riscos.
Análise de teste: condições de teste priorizadas e relatórios de defeitos na base de teste.
Modelagem de teste: casos de teste, cartas de teste, itens de cobertura, dados e requisitos de ambiente de teste.
Implementação de teste: procedimentos de teste, scripts automatizados, conjuntos de teste, dados de teste e elementos do ambiente de teste.
Execução de testes: registros de testes e relatórios de defeitos.
Conclusão do teste: relatório final, itens de ação para melhorias, lições aprendidas e solicitações de alteração.
1.4.4 Rastreabilidade entre a Base de Teste e o Testware
Rastreabilidade dos casos de teste aos requisitos para garantir que todos sejam cobertos.
Rastreabilidade dos resultados dos testes aos riscos para avaliar o nível de risco residual.
1.4.5 Papéis no Teste
Testador
Foca nas atividades técnicas do teste, como análise, modelagem, implementação e execução dos testes.
Gerenciamento de Testes
Responsável pelo processo de teste, equipe e liderança das atividades, incluindo planejamento, monitoramento, controle e conclusão dos testes
1.5 Habilidades essenciais e boas práticas em testes
1.5.1 Habilidades genéricas necessárias para testes
As habilidades essenciais para testadores incluem conhecimento em testes, atenção aos detalhes, comunicação eficaz, pensamento analítico, criatividade, conhecimento técnico e do domínio
1.5.2 Abordagem de equipe completa
Enfatiza a colaboração entre todos os membros da equipe, compartilhando responsabilidades pela qualidade do produto
Testadores trabalham próximos a desenvolvedores e representantes de negócio para definir estratégias de teste e automação, promovendo comunicação e sinergia
1.5.3 Independência dos testes
Melhora a detecção de defeitos, pois reduz vieses cognitivos, mas não substitui a familiaridade com o código
A independência permite identificar falhas sob diferentes perspectivas e contestar suposições feitas pelos stakeholders
Pode causar isolamento, prejudicar a colaboração com desenvolvedores e levar à percepção de que testadores são um gargalo no processo