Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

Principais tópicos do exame CTFL by Mind Map: Principais tópicos 
do exame CTFL
5.0 stars - 15 reviews range from 0 to 5

Principais tópicos do exame CTFL

Mapa desenvolvido pela TIEXAMES

www.tiexames.com.br

Exclusivo para assinantes do curso CTFL da TIEXAMES

Não redistribua este mapa

Excelente ferramenta para revisão do conteúdo para o exame CTFL

Faça melhorias se achar necessário para seus estudos

Decorar este mapa por não ser suficiente para passar no exame

Não contempla todo o conteúdo do curso, apenas o essencial

Fundamentos do Teste

Principais termos

Erro, Ação humana que produz um resultado incorreto, Também conhecido como engano, Exemplo: váriavel digitada com erro (em vez do programador  digitar $cliente digitou $cliete)

Defeito, Defeito em um componente ou sistema que leva o componente ou sistema falhar quando é executado, Manifestação de um erro no software, Também conhecido como bug, Exemplo: a variável $desconto  foi declarada, mas não foi usada na rotina de cálculo do preço

Falha, Diferença indesejável entre o observado e o esperado (defeito encontrado), Exemplo: uma ação que era para ocorrer não ocorreu devido a variável $cliente ter sido digitada incorretamente no código

Papel do Teste

Reduzir o risco de um problema ocorrer durante o uso operacional do SW, Quando falhas ocorrem geram perdas para os clientes / usuários

Necessidade dos testes

Testamos para construir confiabilidade

Menos defeitos = menor chance do SW falhar

Ajudam a aumentar a qualidade do SW qdo defeitos são encontrados e removidos

Quanto teste é suficiente?

Não testamos tudo porque não temos tempo

Testes exaustivos são impraticáveis, Não temos tempo, Usa muito Recursos, Custa caro

Os riscos vão dizer quanto tempo precisa ser alocado para os testes

Restrições de tempo e orçamento são consideradas

Testes devem ser focados em áreas específicas do SW onde existe um potencial maior de risco de falha

Executar primeiro os casos de teste mais importantes, Significa priorizar os testes

O que é teste?

É um processo composto de várias atividades, Planejamento e controle, Seleção das condições de teste (itens de teste), Modelagem dos casos de teste, Execução do teste, Verificação dos resultados, Avaliação dos critérios de conclusão, Relatar sobre o processo de teste e o sistema sob teste, Atividades de encerramento

Pode ter objetivos diferentes (encontrar defeitos, ganhar confiança, prevenir defeitos)

Deve acontecer o mais cedo possível no ciclo de vida do projeto

Inclui a revisão de documentos e códigos fonte

Enquanto o Teste destaca os defeitos identificando falhas, a depuração investiga a causa das falhas - encontrar os defeitos (realizada normalmente por programadores)

7 príncipios

1 Teste demonstra a presença de defeitos

2 Teste exaustivo é impossível

3 Teste antecipado, Iniciar o testes o mais cedo possível

4 Agrupamento de defeitos, Algumas áreas do SW contêm mais defeitos que outras

5 Paradoxo do Pesticida, Testes quando repetidos podem encontrar novos defeitos

6 Teste depende do contexto, Cada tipo de SW pode ser testado de forma diferente

7 A ilusão da ausência de erros, SW sem defeitos não necessariamente vai satisfazer o usuário final, É necessário que os requisitos tenham sido desenvolvidos de acordo com a necessidade do usuário final

Processo de Teste

Planejamento & Controle, Planejamento, Determina os objetivos de teste, Determina O QUE, PORQUE e COMO algo será testado, Determina abordagem/estratégia, Determina riscos, Determinar os recursos requeridos, Agenda as atividades, Especifica critérios de saída, Controle, Ajuda a alcançar o que foi planejado, Compara o progresso do Teste contra o Plano de Teste, Ocorre durante todo o Teste, Pode tomar ações corretivas

Análise & Modelagem, Transforma os objetivos de teste em Condições de Teste, Indicam “o quê” será testado, Revisa a base de teste (documentação sobre a qual os casos de teste são construídos), Avalia a testabilidade, Modela e prioriza condições de teste, Modela o ambiente de teste, Considera a cobertura de testes

Implementação & Execução, Implementação, Transforma as Condições de teste em Casos de teste, Especificam em detalhes como iremos testar uma determinada condição de teste, Para cada condição de teste pode haver mais de um caso de teste, Desenvolve, implementa e prioriza casos de teste, Desenvole e prioriza procedimentos de teste, Cria dados para teste, Escreve os scripts de teste, Verifica se o ambiente de teste está configurado, Execução, É onde o teste de fato é realizado, Executa casos de teste manualmente ou usando ferramenta de automação, Registra as saídas da execução do teste, Checa os resultados

Avaliação de critérios de saída & Relatórios, Assegura que qualquer critério de saída tem sido alcançado pelas atividades de teste executadas, Se critérios de saída não foram alcançados, mais testes podem ser necessários

Encerramento de teste, Coleta os resultados do teste e documentação relacionada para arquivamento, Checa que as entregas planejadas de fato foram entregues, Checa se defeitos encontrados durante o teste foram corrigidos

Psicologia do Teste

O testador tem propósito primário de achar defeitos e falhas no SW

A atividade de teste pode ser vista como destrutiva no desenvolvimento de SW

Uma boa comunicação é essencial entre Testador e Desenvolvedor

O Testador precisa reportar defeitos sem agredir o Desenvolvedor

Testador precisar ter habilidades, Bom comunicador, Curioso, Paciente, Meticuloso, Etc.

Teste durante o ciclo de vida do SW

Modelo V

Modelo de ciclo de vida de desenvolvimento e Teste de SW

Mostra a relação do nível de teste com o nível de desenvolvimento

Cada atividade de desenvolvimento tem uma atividade de teste correspondente

Testadores devem ser envolvidos na revisão de documentos o mais cedo possível

É dividido normalmente em 4 níveis, mas pode ter mais dependendo da metodologia da organização

Níveis de Teste

Unitário, Também conhecido como teste Componente ou de Módulo, Testa os componentes testáveis individualmente, Pode testar características funcionais e não-funcionais (comportamento, uso de memória, robustez, etc), É normalmente realizado pelo desenvolvedor, mas pode ter um certo nível de independência

Integração, Realizado para encontrar defeitos nas interfaces e interações entre componentes ou sistemas, Geralmente é executado pelo desenvolvedor, Niveis, Teste de integração de sistemas, Comumente realizado depois do Teste de Sistema, Pode envolver a integração entre sistemas não desenvolvidos pela organização, Teste de integração de componentes, Comumente realizado depois do Teste Unitário, Estratégias, Bottom-up, Testa os módulos de nível mais baixo primeiro, Usa Drivers para passar dados para os módulos de nível mais baixo, Top Down, Testa os módulos de nível mais alto primeiro, Usada quando no início do processo os módulos de nível mais baixo não estão disponíveis, Níveis mais baixos são simulados por Stubs (imita um componente real), Big-Bang, Espera todos os módulos estarem disponíveis para testar tudo de uma vez só como um sistema completo, Testa os módulos individualmente e depois testa de forma integrada, Nesta abordagem defeitos podem ser encontrados tarde demais

Sistema, Testa o comportamento de um produto ou sistema completo, A meta é reduzir as chances de um defeito ser esquecido e acabar sendo achado pelo usuário final, Pode ser usado para investigar características:, Funcionais, Refere-se a função que um componente ou sistema precisa realizar, Não-funcionais, Confiabilidade, Eficiência, Usabilidade, Manutenabilidade, Portabilidade, Etc., Regras de negócio, Testadores começam usando técnicas baseadas na especificação (técnicas caixa-preta), Depois pode usar técnicas baseadas na estrutura (caixa-branca) para checar elementos estruturais

Aceitação, Também conhecido como Teste de Aceite do Usuário, É o último nível de teste realizado antes da liberação do produto, É comum o cliente realizar este tipo de teste ou pelo menos ser envolvido, Procura simular como produto será usado pelo cliente, Encontrar defeito não é a meta principal, a meta é garantir que o sistema está pronto para entrar em produção, Tipos, Alpha-teste, Realizado no ambiente da empresa desenvolvedora, Executado predominantemente pelos testadores internos, Beta-teste, Comumente realizado nas instalações do cliente, Executado normalmente pelo próprio cliente, Consiste na experimentação de um trial de uma nova versão

Tipos de testes

Funcional, Foca no que o sistema supostamente tem que fazer (funções dele), Analisa as diversas formas como os usuários utilizam o sistema e cenários de negócio, É baseado no comportamento externo de um sistema e por isto emprega testes caixa-preta (ou baseados na especificação), Muito usado no teste de sistema e de aceitação

Não-Funcional, Concentra-se em como o sistema trabalha, Executado para medir as características que podem ser quantificadas em uma escala variável , Tipos, Teste Performance, Exemplo: velocidade que uma tarefa pode ser processada, Teste de carga, Exemplo: quantidade de transações em um período de tempo, Teste de Estresse, Avaliar como o sistema lida com situações acima do seu limite, Exemplo: se o sistema só suporta 1.000 transações por hora, como ele lida com mais de 1.000?, Teste de recuperação de falhas, Como sistema lida com falhas e como ele trata o processo de recuperação após a falha, Exemplo: se o sistema sofrer um ataque de um hacker, ele pode ter sido projetado para se desligar, Teste de Segurança, Foca em encontrar brechas nos controles de segurança, Teste de Usabilidade, Leva em consideração como o usuário usa o produto, Exemplo: casos de teste baseados na Interface Gráfica do Usuário, Teste de Instalação, Testa o processo de instalação do SW

Estrutural, Analisa a estrutura interna e o comportamento do componente a ser testado, Requer algum conhecimento da estrutura interna para modelar casos de teste, Também conhecido como Teste Caixa-Branca, Cobertura de código é uma análise importante feita aqui, Qual é a extenção da estrutura do código que foi exercitada pela suíte de teste, Pode ser executado em todos os níveis de teste

Relacionados a mudanças, Reteste, Quando um defeito é corrigido o reteste assegura que este de fato foi corrigido, Também conhecido como teste de confirmação, Teste de Regressão, Checa se outras funcionalidade no SW foram afetadas por uma mudança / correção, Aplica-se porque a correção de um defeito pode revelar ou criar outro defeito escondido no código, Pode ser apoiado por ferramentas de automação

Teste de manutenção

Para testar mudanças que podem ocorrer após o SW entrar em operação

Teste de Regressão é muito utilizado aqui, Análise de impacto é usada para determinar quanto de regressão precisa ser feito

Técnicas Estáticas

Técnicas estáticas

Examinam a documentação do projeto e código-fonte sem executá-los

Compreende as atividades de revisão, inspeção e análise estática do código

Podem ser empregadas bem antes da execução do teste dinâmico

Revisões e o processo de teste

Através de revisões os defeitos podem ser identificados mais cedo

Tradicionalmente revisões são manuais, mas podem ser usadas ferramentas de apoio

Qualquer coisa pode ser revisada, Especificação de requisitos, Documentos do projeto, Especificações de teste, Código-fonte, Plano de teste, casos de teste e scripts de teste, Etc

Fases de uma revisão formal, Planejamento, Kick-off, Preparação individual, Reunião de revisão, Retrabalho, Acompanhamento

Papéis envolvidos em revisão formal, Gerente, Quem toma decisão de iniciar a revisão, Determina os objetivos da revisão, Aloca o tempo das pessoas para revisão, Moderador, Ldera, planeja e executa a revisão, Modera a reunião permitindo que os vários pontos de vista sejam apresentados, Autor, Quem criou o item a ser inspecionado/revisado, Revisores, Conhecidos como checadores ou inspetores, Procuram por defeitos no item sob revisão, Escrivão / Secretário, Registra os defeitos mencionados e qualquer sugestão

Tipos de revisão

Revisão Informal, Não existe processo formal, Muito empregada no início do ciclo de vida do SW e da documentação, Exemplo: o autor do documento faz a análise do seu próprio trabalho

Acompanhamento (Walkthrough), É o autor que conduz a reunião, O autor apresenta o material em ordem lógica a um grupo, A reunião não tem restrição de tempo de duração, Principal propósito é a aprendizagem, treinar os envolvidos no projeto e obter o entendimento.

Revisões Técnicas, Inclui a Revisão por Pares (Peer review), Inclui avaliações técnicas de artefatos específicos, É considerada formal porque é caracterizada por procedimentos documentados, Envolve encontros estruturados onde um par (ou pares) analisa o trabalho de outra pessoa, Devem ser lideradas por um moderador treinado, não sendo o autor do documento, Pode ser guiada por checklists, Podem ser conduzidas por um moderador treinado (que não seja o autor)

Inspeção, É um tipo mais formal de revisão, Ocorre por meio de uma reunião com pessoas envolvidas no projeto onde se analisa, verifica e testa artefatos do SW, Deve ser liderada por um moderador treinado, que não pode ser o autor, A preparação antecipada para a reunião é essencial, Tem papéis bem definidos nesta revisão

Análise estática por Ferramentas

Análise Estática, Técnica para analisar o código e procurar por erros de sintaxe, violações de padrões e outros possíveis erros no código-fonte sem executá-lo, Permite detectar defeitos antes da execução do teste

Pode ser usado compilador para analisar estaticamente o código

Exemplos de defeitos encontrados, Código inacessível, Variáveis não declaradas, Parâmetros incorretos, Procedimentos e funções não usadas, Violação de segurança, Erro de sintaxe, Etc

Fluxo de controle, Técnica básica para a realização da análise estática de código, É a representação gráfica de como o código escrito é executado

Complexidade ciclomática, É uma medida da complexidade de um fluxo de controle., Identifica como o código é difícil de entender, testar e manter, Identifica o risco associado ao teste de um programa.

Técnicas de Modelagem de Teste

Identificando as condições de teste e projetando os casos de teste

Durante a Análise de teste, Analisa a documentação de base de teste para determinar o que testar, Identifica cada Condição de Teste, É algum item ou evento que precisa ser verificado por um Caso de Teste, Exemplo de item: função ou elemento do sistema

Durante a Modelagem, Detalha a estratégia de teste considerando os riscos, Dados de teste e Casos de Teste são especificados e criados, Caso de Teste, Conjunto de valores de entrada, pré-condições de execução, resultados esperados e pós-condições de execução, desenvolvidos para cobrir certas condições de teste, Resultados esperados devem ser produzidos como parte da especificação de um caso de teste

Durante a Implementação, Casos de teste são desenvolvidos, implementados, priorizados e organizadas na especificação de procedimento de teste, Procedimento de Teste, Especifica a sequência de ações para a uma execução de teste. Se os testes são executados por uma ferramenta, a sequência de ações é especificada por um script automatizado

Durante a Execução, Vários e scripts de testes automatizados formam uma sequência de execução de teste que define a ordem em que os procedimentos, e/ou os scripts automatizados serão executados e quem os executará

Categorias de Técnicas

Caixa-Preta, Características, Pode ser funcional ou não-funcional, Baseia-se muito na documentação, Também referenciada como Baseada na especificação, Técnicas, Partição de Equivalência, Quebra os valores de entrada em partições (classes), Com dados Válidos, Com dados Inválidos, Reduz a quantidade de testes escolhendo uma pequena seleção de valores de cada participação, Exemplo: Se um campo aceita valores de 0 a 100, se testa alguns valores entre 0 e 100, Análise do Valor Limite, Testa os valores nos limites das partições, Os valores limites de uma partição são seu máximo e seu mínimo, Exemplo: Se um campo aceita números de 0 a 100, se testa -1, 0 e 100, 101, Para cada valor limite pode ser usado 2 ou 3 casos de teste, Tabela de Decisão, Uma forma de capturar requisitos do sistema que pode conter condições lógicas, Condições e ações do sistema são identificadas a partir dela, Cada coluna da tabela corresponde uma regra que define uma combinação de condições e ações que o sistema tem que realizar, Considera-se um teste por coluna para se ter uma cobertura de todas as combinações, Transição de Estados, Baseada no conceito de estados, O testador tem que ser capaz de visualizar os estados do SW, transição entre estados e o que dispara uma mudança de estado, Os testes são desenhados para cobrir a sequência típica de estados, exercitando a sequência de transições ou testando transições inválidas, Teste por Caso de Uso, Caso de Uso, Descrição de um comportamento do sistema e como ele responde a uma requisição que vem de fora do sistema, Descreve a interação entre o ator Primário e o sistema, Contém precondições e pós-condições, Tem o propósito de encontrar defeitos usando o produto de forma similar a que seria usado no cenário real

Caixa-Branca, Características, Baseada na análise da estrutura do componente ou sistema, Também referenciada como teste de estrutura ou baseada na estrutura, Teste de Sentença/Comando, Usa um modelo do código fonte que identifica as linhas de sentença, Exemplo: IF x > 0 THEN y END IF - neste caso, y é uma sentença que pode ser executada dependendo da condição x, Os casos de teste devem exercitar as sentenças, Teste de Decisão, Usa um modelo do código fonte para identificar decisões individuais e seus resultados, Também chamado Teste de Ramificação, Exemplo: IF x > 0 THEN y END IF - neste caso, o caso de teste deve testar condição x > 0, A cobertura de decisão é mais eficiente que a cobertura de sentenças: 100% da cobertura de decisão garante 100% da cobertura de sentença, mas não vice-versa.

Baseadas na experiência, Características, Conhecimento e intuição das pessoas são usados para derivar os casos de teste, Técnicas, Suposição de Erros, Também chamada advinhação de erros, O testador pode supor onde potenciais problemas podem ser encontrados no SW, Baseada na experiência do testador, Teste Exploratório, Técnica informal governada pelo tempo disponível, Baseado nos objetivos de teste, Mais efetiva quando não existe especificação disponível, Basicamente busca assegurar que a maior parte das funcionalidades está funcionando sem ter que fazer todos os testes esperados

Gerenciamento de Teste

Independência do teste

Não é indicado que apenas o Desenvolvedor teste o seu trabalho

Testadores independentes têm mais vantagens, Enxergam mais defeitos, São Imparciais

Níveis de independência, 1 Nenhum testador independente, os desenvolvedores testam seu próprio código, 2 Testadores independentes dentro de uma equipe de desenvolvimento, 3 Uma equipe de testes independente dentro da organização, que se reporta ao gerente do projeto, 4 Especialistas em testes para um objetivo específico de teste, 5 Equipe de testes terceirizada ou independente da organização

Tarefas do Líder de Teste

Também chamado de gerente ou coordenador de teste

Coordena a estratégia de teste

Escreve/revisa a estratégia de teste

Planeja os testes

Prepara um gerenciamento de configuração do testware

Introduz métricas

Decide o que será automatizado

Seleciona ferramentas de apoio

Escreve relatório de resumo

Tarefas do Testador

Revisa e contribui nos planos de teste

Cria especificações de teste

Configura o ambiente de teste

Prepara e adquire dados de teste

Executa os testes

Automatiza os testes

Mede desempenho dos componentes e sistemas

Reve os testes desenvolvidos por outras pessoas

Organização do Teste

Planejamento de Teste, Determina o escopo e risco, identificando os objetivos do teste, Define a abordagem do teste, Decide o que testar, Agenda as atividades, Aloca recursos, Define métricas

Critério de Entrada, Definem quando começar um teste, no início de um nível de teste ou quando um conjunto de testes está pronto para execução

Critérios de Saída, Definem quando parar de testar, no final de um nível de teste ou quando um conjunto de testes realizados atingiu um objetivo específico

Estimativa do teste, Estima esforço do teste

Estratégia do Teste, Analítica, Baseada em modelos, Abordagem metódica, Compatível com processos ou padrões, Dinâmica e heurística, Baseada em conselhos, Regressão

Monitoração do Progresso do Teste, Permite uma visibilidade sobre as atividades do teste, Usa métricas para isto

Relatório do teste, Constituído de informações resumidas sobre o esforço do teste

Controle do Teste, Descreve qualquer orientação ou ação corretiva tomada

Estrutura Plano de Teste segundo IEEE

Identificador

Introdução

Itens de teste

Funcionalidades a serem testadas

Funcionalidades a não serem testadas

Abordagem

Critérios Pass/Fail

Critério para Suspensão e Requisitos pp/ Retomada

Entregas do Teste

Atividades de Teste

Necessidades do ambiente

Necessidades de Treinamento e Pessoal

Cronograma

Riscos e Contingências

Aprovações

Gerenciamento de configuração

Usado para gerenciar componentes individuais que fazem parte de um sistema

Inclui o controle de versões do código fonte

Desenvolvedores devem fazer correções a partir versão correta do código

E testadores devem testar a versão correta do código

Todos os itens do testware precisam ser identificados, controlados, rastreados para mudanças e possuir relacionamentos entre si

Este processo ajuda a manter o rastreamento dos itens que sofreram alteração

Partes principais deste processo, Identificação da Configuração, Identifica todos os itens individiuas que se referem ao controle de versão dentro do projeto, Controle da Configuração, Avaliação, coordenação, aprovação e implementação de mudanças nos itens de configuração, Garante que qualquer mudança seja controla e monitorada, Controle do Status, Registra e reporta o status atual de item, Auditoria de Configuração, Assegura que o processo de controle é usado

Riscos e testes

Riscos do Projeto, Associados ao gerenciamento e controle do projeto, Riscos Potenciais, Fatores organizacionais, Questões técnicas, Questões relacionadas a fornecedores

Riscos do Produto, Relacionados diretamente ao objeto sob teste, Esxemplo: riscos às pessoas se o produto falhar (controle de trafego aéreo, por exemplo)

Gerenciamento de incidente

Incidente, qualquer evento significante, não planejado que ocorre durante os testes e que requer investigação e/ou correção, Possível defeito no SW, mas requer investigação para determinar se é um defeito

Detalhes do incidente que podem ser registrados, Data, Resultados esperados e atuais, Identificação do item de teste, Descrição, Escopo e grau de impacto, Severidade do impacto no sistema, Prioridade, Status, Recomendações, Histórico de alterações

Ferramentas de Suporte a Teste

Ferramentas p/ o gerenciamento do teste

p/ Gerenciamento de Teste

p/ Gerenciamento de Requisitos

p/ Gerenciamento de Incidentes

p/ Gerenciamento de Configuração

Ferramentas p/ Teste Estático

p/ Processo de Revisão

p/ Análise Estática

p/ Modelagem

Ferramentas para Especificação do Teste

p/ Modelagem do teste

p/ Preparação de Dados de teste

Ferramentas para Execução do Teste

p/ Execução

p/ testes unitários especificos

Comparadores

Medidores de cobertura

p/ Segurança

Ferramentas de Performance e Monitoração

p/ Análise Dinâmica

p/ Teste de Performance/ Carga /Estresse

p/ Monitoração