UC08: Executar testes, melhorias e versionamento de
aplicativo desktop
Conceitos, tipos, critérios de aceitação e artefatos
Prof. Fábio Cunha Rodrigues
Email: fabio.crodrigues@sp.senac.br
Aula 01
UC08: Executar testes, melhorias e versionamento de
aplicativo desktop
Aula 01
Introdução aos Testes de Software
Testes Estáticos e Dinâmicos
Critérios de Aceitação
Artefatos de Teste
Atividade Prática e Discussão
O que é Teste de Software?
Procedimentos que avaliam a
funcionalidade de um software,
identificando e corrigindo erros.
O que é Teste de Software?
Processo de verificação e
validação para garantir que o
software funcione conforme
esperado e que atenda aos
requisitos especificados.
O que é Teste de Software?
Processo de verificação e
validação para garantir que o
software funcione conforme
esperado e que atenda aos
requisitos especificados.
Objetivos:
Detectar defeitos antes do
uso em produção.
Garantir qualidade e
confiabilidade do sistema.
Conceitos básicos:
1 – Caso de Teste:
Conjunto de condições usadas
para verificar um requisito.
Componentes típicos:
ID do Caso de Teste: Identificação única para referência.
Objetivo: O que será testado (exemplo: verificar login com credenciais válidas).
Condições iniciais: Pré-requisitos ou estado do sistema antes do teste.
Entradas: Dados ou ações necessárias para executar o teste.
Passos: Sequência detalhada de ações a serem executadas.
Resultado esperado: O comportamento esperado do sistema ao final do teste.
Pesquisa rápida:
Vá até o TEAMs e faça a tarefa
disponível lá.
Vocês tem 5 minutos!
Conceitos básicos:
2 – Defeito (bug):
Erro no código que pode levar a
comportamentos inesperados.
Tipos de defeitos mais comuns:
Defeito de lógica.
Defeito de sintaxe.
Defeito de desempenho.
Defeito de integridade.
Defeito de segurança.
Tipos de defeitos mais comuns:
Defeito de lógica: Ocorrem quando a lógica implementada no
código não está correta, levando o programa a executar ações
erradas, mesmo que o código esteja sintaticamente correto.
Um algoritmo que deve calcular a
média de números, mas, por um
erro de lógica, divide a soma pela
quantidade errada de elementos.
Tipos de defeitos mais comuns:
Defeito de sintaxe: Quando o código está mal estruturado ou
com erros de sintaxe, fazendo com que o compilador ou
interpretador não consiga entender a intenção do programador.
Esquecer de fechar um parêntese
ou esquecer de usar ponto e
vírgula ao final de uma linha de
código.
Tipos de defeitos mais comuns:
Defeito de desempenho: São causados quando o código não
é otimizado, resultando em baixa performance, como consumo
excessivo de memória ou tempo de execução muito alto.
Uso excessivo de memória devido à
criação desnecessária de objetos
em um loop
Tipos de defeitos mais comuns:
Defeito de integridade: Ocorrem quando há falhas na
interação entre diferentes partes do sistema ou entre
sistemas externos (como bancos de dados ou APIs).
Uma falha ao consultar um banco
de dados e retornar dados errados
ou incompletos.
Tipos de defeitos mais comuns:
Defeito de segurança: Quando o código é vulnerável a
ataques ou exposições de dados sensíveis, como SQL
injection ou falhas no controle de acesso.
Um campo de formulário que
permite a injeção de código
malicioso no banco de dados.
Pesquisa rápida:
Vá até o TEAMs e faça a tarefa
disponível lá.
Vocês tem 5 minutos!
Como os defeitos se manifestam?
Comportamento inesperado: pode fazer com
que a aplicação se comporte de forma diferente
do esperado. Um programa pode exibir valores
incorretos, mostrar telas em branco ou até
travar.
Como os defeitos se manifestam?
Falhas de execução: O código pode causar
falhas em tempo de execução, como erros
de memória, ou falhas que impedem o
sistema de continuar funcionando
normalmente.
Como os defeitos se manifestam?
Comportamento intermitente: Alguns
defeitos só se manifestam em determinadas
condições, como uma combinação específica
de dados ou interações, o que torna sua
reprodução e correção mais desafiadoras.
A correção de defeitos é um processo contínuo no ciclo
de desenvolvimento de software, já que é praticamente
impossível garantir que um código esteja 100% livre de
defeitos. O importante é detectar e corrigir os defeitos
mais críticos e que impactam diretamente a
experiência do usuário ou a funcionalidade do sistema.
Conceitos básicos:
3 – Falha:
Resultado observável de um
defeito durante a execução.
Falha
Uma falha ocorre quando um defeito presente em um sistema,
processo ou software se manifesta de maneira visível ou
perceptível, afetando a operação ou o desempenho esperado
Em um software, a falha pode ser um erro de
exibição de dados, um travamento ou uma
função que não opera corretamente. Em um
hardware, pode ser a falha em um componente
que impede o funcionamento do dispositivo,
como uma tela que não acende ou um botão que
não responde...
Enquanto o defeito é a causa subjacente que compromete
o funcionamento, a falha é o efeito visível desse defeito.
Para um bom processo de manutenção ou
desenvolvimento, identificar e corrigir defeitos o mais
rápido possível é essencial para evitar falhas no produto.
Conceitos básicos:
4 – Erro:
Ação equivocada de um
desenvolvedor ou usuário.
Tipos de erros mais comuns:
Erro Humano: Decorre de uma ação incorreta ou
omissão.
Escrever código com lógica errada.
Configurar o ambiente de forma
incorreta. Inserir dados incorretos
durante o uso.
Tipos de erros mais comuns:
Erro de projeto: Ocorre quando a lógica ou
especificações do sistema são mal definidas, levando a
defeitos no código
Tipos de erros mais comuns:
Erro de implementação: Um erro no código ou na
implementação do sistema.
Variáveis mal inicializadas. Uso
incorreto de bibliotecas ou APIs.
Tipos de erros mais comuns:
Erro de comunicação: Falha no entendimento entre
membros da equipe ou com o cliente, gerando
requisitos ou soluções inadequadas.
Erros podem gerar defeitos (bugs) no sistema e,
consequentemente, resultar em falhas perceptíveis
pelo usuário.
Pesquisa rápida:
Bora pro TEAMs fazer a tarefa
disponível lá.
Vocês tem mais 5 minutos!
Ciclo de vida de um defeito:
Detecção: Identificação do problema.
Análise: Diagnóstico da causa raiz.
Correção: Ajuste no código.
Verificação: Confirmação de que o
defeito foi resolvido.
Testes estáticos Testes dinâmicos
Executam o software para verificar o comportamento.
Exemplo: Testes unitários, de integração, aceitação.
Ferramentas: JUnit, NUnit, Selenium.
Benefícios:
 Identifica problemas no código antes da execução.
 Reduz custos de correção ao encontrar defeitos
precocemente.
 Melhora a manutenção do código.
Feitos sem executar o software.
Exemplo: Revisão de código, análise estática.
Ferramentas: SonarQube, Checkstyle.
Benefícios:
 Garante que o software funcione conforme o
esperado em condições reais.
 Detecta falhas que só podem ser observadas
durante a execução.
 Valida a integração entre módulos.
Critérios de Aceitação:
Conjunto de condições que o
software precisa atender para ser
aceito.
Exemplo: Como usuário, eu quero acessar minha
conta para consultar meu saldo.
Quais seriam os critérios de aceitação?
Critérios de aceitação (exemplos):
 Login bem-sucedido;
 Saldo exibido corretamente.
Importância dos critérios de aceitação:
Alinha as
expectativas
entre cliente e
equipe.
Define limites
claros para
aprovação do
software.
Facilita a
criação de
casos de
teste.
Artefatos de Teste:
Plano de Teste:
Estratégia para
execução dos
testes.
Casos de Teste:
Instruções
detalhadas para
execução.
Relatórios:
Registros de
resultados e
defeitos
encontrados.
Exemplo de Caso de Teste:
ID: TC001
Objetivo: Validar login com credenciais válidas.
Passos: Acessar página de login. Inserir usuário e senha
válidos. Clicar em "Entrar".
Resultado Esperado: Acesso ao sistema com mensagem de
boas-vindas.
Revisão:
Conceitos de testes de software.
Diferenças entre testes estáticos e dinâmicos.
Critérios de aceitação e artefatos.
Saiba mais:
Curso Completo | Teste de Software: Fundamentos e Prática 🔧
| Do Zero ao Profissional
https://www.youtube.com/watch?v=siJW7B_ySd4
Atividade Prática:
Cenário: Sistema de agendamento médico.
O sistema permite que os pacientes agendem consultas
online com médicos, visualize horários disponíveis e
cancele ou remaneje compromissos.
Além disso, os médicos podem gerenciar sua agenda,
confirmando ou cancelando consultas diretamente pelo
sistema.
Atividade Prática:
Cenário: Sistema de agendamento médico.
1) Identificar defeitos ou falhas potenciais.
2) Criar um exemplo de caso de teste estático.
3) Criar um exemplo de caso de teste dinâmico.
4) Estabelecer critérios de aceitação para a funcionalidade de cadastro
de pacientes.
5) Desenvolver um artefato simples de plano de teste e log de execução.
Realização de atividade:
Bora pro TEAMs fazer a última
tarefa do dia.
Realização de atividade:
Correção......

Teste de software, artefatos, tipos de testes

  • 1.
    UC08: Executar testes,melhorias e versionamento de aplicativo desktop Conceitos, tipos, critérios de aceitação e artefatos Prof. Fábio Cunha Rodrigues Email: fabio.crodrigues@sp.senac.br Aula 01
  • 2.
    UC08: Executar testes,melhorias e versionamento de aplicativo desktop Aula 01
  • 3.
    Introdução aos Testesde Software Testes Estáticos e Dinâmicos Critérios de Aceitação Artefatos de Teste Atividade Prática e Discussão
  • 4.
    O que éTeste de Software? Procedimentos que avaliam a funcionalidade de um software, identificando e corrigindo erros.
  • 5.
    O que éTeste de Software? Processo de verificação e validação para garantir que o software funcione conforme esperado e que atenda aos requisitos especificados.
  • 6.
    O que éTeste de Software? Processo de verificação e validação para garantir que o software funcione conforme esperado e que atenda aos requisitos especificados.
  • 7.
    Objetivos: Detectar defeitos antesdo uso em produção. Garantir qualidade e confiabilidade do sistema.
  • 8.
    Conceitos básicos: 1 –Caso de Teste: Conjunto de condições usadas para verificar um requisito.
  • 9.
    Componentes típicos: ID doCaso de Teste: Identificação única para referência. Objetivo: O que será testado (exemplo: verificar login com credenciais válidas). Condições iniciais: Pré-requisitos ou estado do sistema antes do teste. Entradas: Dados ou ações necessárias para executar o teste. Passos: Sequência detalhada de ações a serem executadas. Resultado esperado: O comportamento esperado do sistema ao final do teste.
  • 10.
    Pesquisa rápida: Vá atéo TEAMs e faça a tarefa disponível lá. Vocês tem 5 minutos!
  • 12.
    Conceitos básicos: 2 –Defeito (bug): Erro no código que pode levar a comportamentos inesperados.
  • 13.
    Tipos de defeitosmais comuns: Defeito de lógica. Defeito de sintaxe. Defeito de desempenho. Defeito de integridade. Defeito de segurança.
  • 14.
    Tipos de defeitosmais comuns: Defeito de lógica: Ocorrem quando a lógica implementada no código não está correta, levando o programa a executar ações erradas, mesmo que o código esteja sintaticamente correto. Um algoritmo que deve calcular a média de números, mas, por um erro de lógica, divide a soma pela quantidade errada de elementos.
  • 15.
    Tipos de defeitosmais comuns: Defeito de sintaxe: Quando o código está mal estruturado ou com erros de sintaxe, fazendo com que o compilador ou interpretador não consiga entender a intenção do programador. Esquecer de fechar um parêntese ou esquecer de usar ponto e vírgula ao final de uma linha de código.
  • 16.
    Tipos de defeitosmais comuns: Defeito de desempenho: São causados quando o código não é otimizado, resultando em baixa performance, como consumo excessivo de memória ou tempo de execução muito alto. Uso excessivo de memória devido à criação desnecessária de objetos em um loop
  • 17.
    Tipos de defeitosmais comuns: Defeito de integridade: Ocorrem quando há falhas na interação entre diferentes partes do sistema ou entre sistemas externos (como bancos de dados ou APIs). Uma falha ao consultar um banco de dados e retornar dados errados ou incompletos.
  • 18.
    Tipos de defeitosmais comuns: Defeito de segurança: Quando o código é vulnerável a ataques ou exposições de dados sensíveis, como SQL injection ou falhas no controle de acesso. Um campo de formulário que permite a injeção de código malicioso no banco de dados.
  • 19.
    Pesquisa rápida: Vá atéo TEAMs e faça a tarefa disponível lá. Vocês tem 5 minutos!
  • 21.
    Como os defeitosse manifestam? Comportamento inesperado: pode fazer com que a aplicação se comporte de forma diferente do esperado. Um programa pode exibir valores incorretos, mostrar telas em branco ou até travar.
  • 22.
    Como os defeitosse manifestam? Falhas de execução: O código pode causar falhas em tempo de execução, como erros de memória, ou falhas que impedem o sistema de continuar funcionando normalmente.
  • 23.
    Como os defeitosse manifestam? Comportamento intermitente: Alguns defeitos só se manifestam em determinadas condições, como uma combinação específica de dados ou interações, o que torna sua reprodução e correção mais desafiadoras.
  • 24.
    A correção dedefeitos é um processo contínuo no ciclo de desenvolvimento de software, já que é praticamente impossível garantir que um código esteja 100% livre de defeitos. O importante é detectar e corrigir os defeitos mais críticos e que impactam diretamente a experiência do usuário ou a funcionalidade do sistema.
  • 25.
    Conceitos básicos: 3 –Falha: Resultado observável de um defeito durante a execução.
  • 26.
    Falha Uma falha ocorrequando um defeito presente em um sistema, processo ou software se manifesta de maneira visível ou perceptível, afetando a operação ou o desempenho esperado Em um software, a falha pode ser um erro de exibição de dados, um travamento ou uma função que não opera corretamente. Em um hardware, pode ser a falha em um componente que impede o funcionamento do dispositivo, como uma tela que não acende ou um botão que não responde...
  • 27.
    Enquanto o defeitoé a causa subjacente que compromete o funcionamento, a falha é o efeito visível desse defeito. Para um bom processo de manutenção ou desenvolvimento, identificar e corrigir defeitos o mais rápido possível é essencial para evitar falhas no produto.
  • 28.
    Conceitos básicos: 4 –Erro: Ação equivocada de um desenvolvedor ou usuário.
  • 29.
    Tipos de errosmais comuns: Erro Humano: Decorre de uma ação incorreta ou omissão. Escrever código com lógica errada. Configurar o ambiente de forma incorreta. Inserir dados incorretos durante o uso.
  • 30.
    Tipos de errosmais comuns: Erro de projeto: Ocorre quando a lógica ou especificações do sistema são mal definidas, levando a defeitos no código
  • 31.
    Tipos de errosmais comuns: Erro de implementação: Um erro no código ou na implementação do sistema. Variáveis mal inicializadas. Uso incorreto de bibliotecas ou APIs.
  • 32.
    Tipos de errosmais comuns: Erro de comunicação: Falha no entendimento entre membros da equipe ou com o cliente, gerando requisitos ou soluções inadequadas.
  • 33.
    Erros podem gerardefeitos (bugs) no sistema e, consequentemente, resultar em falhas perceptíveis pelo usuário.
  • 34.
    Pesquisa rápida: Bora proTEAMs fazer a tarefa disponível lá. Vocês tem mais 5 minutos!
  • 37.
    Ciclo de vidade um defeito: Detecção: Identificação do problema. Análise: Diagnóstico da causa raiz. Correção: Ajuste no código. Verificação: Confirmação de que o defeito foi resolvido.
  • 38.
    Testes estáticos Testesdinâmicos Executam o software para verificar o comportamento. Exemplo: Testes unitários, de integração, aceitação. Ferramentas: JUnit, NUnit, Selenium. Benefícios:  Identifica problemas no código antes da execução.  Reduz custos de correção ao encontrar defeitos precocemente.  Melhora a manutenção do código. Feitos sem executar o software. Exemplo: Revisão de código, análise estática. Ferramentas: SonarQube, Checkstyle. Benefícios:  Garante que o software funcione conforme o esperado em condições reais.  Detecta falhas que só podem ser observadas durante a execução.  Valida a integração entre módulos.
  • 39.
    Critérios de Aceitação: Conjuntode condições que o software precisa atender para ser aceito.
  • 40.
    Exemplo: Como usuário,eu quero acessar minha conta para consultar meu saldo. Quais seriam os critérios de aceitação?
  • 41.
    Critérios de aceitação(exemplos):  Login bem-sucedido;  Saldo exibido corretamente.
  • 42.
    Importância dos critériosde aceitação: Alinha as expectativas entre cliente e equipe. Define limites claros para aprovação do software. Facilita a criação de casos de teste.
  • 43.
    Artefatos de Teste: Planode Teste: Estratégia para execução dos testes. Casos de Teste: Instruções detalhadas para execução. Relatórios: Registros de resultados e defeitos encontrados.
  • 44.
    Exemplo de Casode Teste: ID: TC001 Objetivo: Validar login com credenciais válidas. Passos: Acessar página de login. Inserir usuário e senha válidos. Clicar em "Entrar". Resultado Esperado: Acesso ao sistema com mensagem de boas-vindas.
  • 45.
    Revisão: Conceitos de testesde software. Diferenças entre testes estáticos e dinâmicos. Critérios de aceitação e artefatos.
  • 46.
    Saiba mais: Curso Completo| Teste de Software: Fundamentos e Prática 🔧 | Do Zero ao Profissional https://www.youtube.com/watch?v=siJW7B_ySd4
  • 47.
    Atividade Prática: Cenário: Sistemade agendamento médico. O sistema permite que os pacientes agendem consultas online com médicos, visualize horários disponíveis e cancele ou remaneje compromissos. Além disso, os médicos podem gerenciar sua agenda, confirmando ou cancelando consultas diretamente pelo sistema.
  • 48.
    Atividade Prática: Cenário: Sistemade agendamento médico. 1) Identificar defeitos ou falhas potenciais. 2) Criar um exemplo de caso de teste estático. 3) Criar um exemplo de caso de teste dinâmico. 4) Estabelecer critérios de aceitação para a funcionalidade de cadastro de pacientes. 5) Desenvolver um artefato simples de plano de teste e log de execução.
  • 49.
    Realização de atividade: Borapro TEAMs fazer a última tarefa do dia.
  • 50.

Notas do Editor

  • #8 Um caso de teste é uma ferramenta importante na área de testes de software. Ele define condições específicas que precisam ser atendidas para verificar se uma funcionalidade ou requisito do sistema está funcionando conforme o esperado. Ele funciona como um guia para os testadores e ajuda a estruturar e documentar os testes.