Sobes.tech
Junior

Forneça exemplos de como começa o processo de teste.

sobes.tech IA

Resposta da IA

O processo de teste pode começar em diferentes fases do ciclo de vida do desenvolvimento de software, dependendo da metodologia escolhida e das especificidades do projeto.

Exemplos:

  • Testes precoces (ou Shift-Left Testing):

    • Começam em fases anteriores à escrita do código: recolha e análise de requisitos, conceção de arquitetura e interface de utilizador.
    • QA participa na revisão da documentação (requisitos, especificações), identificando ambiguidades, contradições e problemas potenciais nas fases iniciais.
    • Escrita de casos de teste, listas de verificação e formulação de estratégias de teste em paralelo com o desenvolvimento.
    • Aplicável em abordagens Agile e DevOps.
  • Testes na fase de desenvolvimento (Unit Testing, Integration Testing):

    • Começam quando os programadores começam a escrever código.
    • Os programadores escrevem testes unitários para verificar módulos ou funções específicas.
    • QA pode participar na planificação de testes de integração, escrita de casos de teste ou até na escrita de testes de integração, se utilizarem os mesmos frameworks que os programadores (em Automation QA).
  • Testes após a implementação (System Testing, Acceptance Testing, Regression Testing):

    • Começam após a funcionalidade ou módulo estar concluído e integrado.
    • São realizados testes abrangentes do sistema como um todo.
    • Os utilizadores ou representantes do cliente realizam testes de aceitação.
    • Após alterações, realiza-se um teste de regressão para garantir que as mudanças não quebraram funcionalidades existentes.
  • Testes para deteção de defeitos em produção:

    • O processo de teste pode ser iniciado após a deteção de um defeito num sistema em funcionamento por parte do utilizador ou de ferramentas de monitorização.
    • QA realiza análise do defeito, reproduz, localiza e cria um relatório do defeito.
    • Inicia-se um ciclo de correção e teste da versão corrigida.
# Exemplo de participação de QA em testes precoces (revisão de requisitos)
def review_requirements(requirements_doc):
    """
    Função pseudo-código para revisão de documento de requisitos por um especialista QA.
    """
    issues_found = []
    # Verificação de completude
    if not all_requirements_are_clear(requirements_doc):
        issues_found.append("Alguns requisitos não são claros ou são ambíguos.")
    # Verificação de consistência
    if has_conflicting_requirements(requirements_doc):
        issues_found.append("Foram detetados requisitos contraditórios.")
    # Verificação de testabilidade
    if not are_all_requirements_testable(requirements_doc):
        issues_found.append("Alguns requisitos são difíceis ou impossíveis de testar.")
    
    return issues_found

# Funções auxiliares supostas
def all_requirements_are_clear(doc):
    pass # Lógica de verificação de clareza
def has_conflicting_requirements(doc):
    pass # Lógica de verificação de contradições
def are_all_requirements_testable(doc):
    pass # Lógica de verificação de testabilidade

A escolha do momento para iniciar os testes depende da estratégia do projeto, mas a tendência de mover os testes para fases mais precoces (testes precoces) está a tornar-se cada vez mais comum para melhorar a qualidade e reduzir os custos de correção de defeitos.