Seguidores

sexta-feira, 13 de junho de 2025

Dashboard de Produtividade Pessoal T1E05: Caso de Teste 1 falhou - BugCT1-1

INTRODUÇÃO

Post anterior: Dashboard de Produtividade Pessoal T1E04: Implementação da integração com Google Sheets

O objetivo deste post é apresentar um prompt para o Gemini 2.5 Pro (Prévia), cujo objetivo é solucionar o Bug que foi encontrado na execução do Caso de Teste 1 do Dashboard de Produtividade Pessoal (App D2P).


Prompt para o Gemini 2.5 Pro (Prévia)

Os tópicos abaixo, numerados de 1 a 3, apresentam o Prompt que foi criado para que o Gemini 2.5 Pro (Prévia) ajude na solução do BugCT1-1.

1 Objetivo

Corrigir bug no App Dashboard de Produtividade Pessoal (D2P), que apareceu durante a execução do Caso de Teste 1 (Tarefa sem pausa).

2 Contexto

FrontEnd: Link REMOVIDO

BackEnd: Link REMOVIDO

3 Caso de Teste 1: Tarefa sem pausa

3.1 Dados de Entrada no Dashboard:

CódigoTarefa: S00; NomeTarefa: Tarefa; TamanhoTarefa: 5

CódigoTarefa: S00.1.1.02; NomeTarefa: Tarefa 2 Teste 1; TamanhoTarefa: 1

CódigoTarefa: S00.1.1.03; NomeTarefa: Tarefa 3 Teste 1; TamanhoTarefa: 3

3.2 Passos:

Passo 1 - Abrir o Dashboard de Produtividade Pessoal

Passo 2 - No card Jornada do Dia, clicar no botão Iniciar Jornada. Será registrada a hora no campo Início e iniciada a contagem do tempo de duração no campo Duração Total.

No card Plano do Dia:

Passo 3 - Registrar os dados da “Tarefa” e clicar no Botão Adicionar Tarefa.

Passo 4 - Registrar os dados da “Tarefa 2 Teste 1” e clicar no Botão Adicionar Tarefa.

Passo 5 - Registrar os dados da “Tarefa 3 Teste 1” e clicar no Botão Adicionar Tarefa.

Passo 6 - Clicar no botão Play da “Tarefa”, esperar 1 minuto acompanhando a contagem do tempo no campo Duração Efetiva, do card Tarefa em Execução e clicar em Finalizar.

Passo 7 - Clicar no botão Play da “Tarefa 2 Teste 1”, esperar 1 minuto acompanhando a contagem do tempo no campo Duração Efetiva, do card Tarefa em Execução e clicar em Finalizar.

Passo 8 - Clicar no botão Play da “Tarefa 3 Teste 1”, esperar 1 minuto acompanhando a contagem do tempo no campo Duração Efetiva, do card Tarefa em Execução e clicar em Finalizar.

Passo 9 – No card Jornada do Dia, clicar no botão Finalizar Jornada. Aparecerá uma janela de alerta com esta mensagem: “Jornada finalizada! Produtividade do dia: ... pontos/hora.”

 Passo 10 – Clicar no botão OK.

3.3 Resultados Esperados X Realizados

3.3.1 Esperado na Google Sheets:

Coluna A(DataHoraFinalizada):

Data Hora da Tarefa finalizada
Data Hora da Tarefa 2 Teste 1 finalizada
Data Hora da Tarefa 3 Teste 1 finalizada   

Coluna B(CodigoTarefa):     

S00
S00.1.1.02
S00.1.1.03

Coluna C(NomeTarefa):

Tarefa
Tarefa 2 Teste 1
Tarefa 3 Teste 1

Coluna D(TamanhoTarefa):

5
1
3

Coluna E(DuracaoTarefaMinutos):

00:01:01
00:01:00
00:01:00

Coluna F(TiposDeDefeito):

Nenhum

Coluna G(Produtividade):

Pontos/Hora da Tarefa finalizada
Pontos/Hora da Tarefa 2 Teste 1 finalizada
Pontos/Hora da Tarefa 3 Teste 1 finalizada

3.3.2 Realizado na Google Sheets:

Coluna A(DataHoraFinalizada):

Nenhuma

Coluna B(CodigoTarefa):     

Nenhuma

Coluna C(NomeTarefa):

Nenhuma

Coluna D(TamanhoTarefa):

Nenhuma

Coluna E(DuracaoTarefaMinutos):

Nenhuma

Coluna F(TiposDeDefeito):

Nenhuma

Coluna G(Produtividade):

Nenhuma

3.3.3 Esperado no Dashboard:

No card Produtividade, verificar se o valor está igual a 177,05 Pontos / Hora.

No card Pontos Concluídos, verificar se o valor está igual a 9 Total de pontos de tarefas finalizadas.

3.3.4 Realizado no Dahboard:

No card Produtividade, verificar se o valor está igual a 177,05 Pontos / Hora.

No card Pontos Concluídos, verificar se o valor está igual a 9 Total de pontos de tarefas finalizadas.

Resposta do Gemini 2.5 Pro (Prévia)

Olá! Analisando o seu caso de teste, o diagnóstico do bug é claro.

O problema é uma falha de comunicação entre o front-end da aplicação (o Dashboard) e o back-end (a planilha Google Sheets). O aplicativo calcula os dados de produtividade corretamente e os exibe no dashboard, mas falha ao enviar esses dados para serem gravados na planilha ao finalizar cada tarefa.


## Análise do Problema

  • O que está funcionando: A lógica interna do seu aplicativo está correta. Ele registra as tarefas, calcula o total de pontos (5 + 1 + 3 = 9 pontos) e a produtividade com base no tempo de execução (aproximadamente 3 minutos para 9 pontos, o que resulta nos 177,05 pontos/hora). Por isso os cards no dashboard aparecem corretos.
  • O que está falhando: A função que é acionada pelo botão "Finalizar" de cada tarefa. Esta função deveria pegar os dados da tarefa concluída (código, nome, tamanho, duração) e enviá-los para a API do Google Sheets para adicionar uma nova linha na sua planilha. Como a planilha continua vazia, essa etapa não está sendo concluída com sucesso.

## 🐞 Causa Provável do Bug

A causa mais provável é um erro no código que faz a chamada para a API do Google Sheets. Isso pode incluir:

  1. Erro de Permissão ou Autenticação: A chave de API pode estar inválida, o token de autenticação (OAuth) pode ter expirado, ou a planilha não está com a permissão de compartilhamento correta (ex: "Qualquer pessoa com o link pode editar") para permitir que a aplicação escreva nela.
  2. Erro na Construção da Requisição: O código pode estar enviando os dados em um formato incorreto, usando um ID de planilha (spreadsheetId) errado, ou um nome de aba (range) incorreto.
  3. A Função Não é Chamada: Pode haver um erro lógico que impede a função de gravação de ser acionada quando o botão "Finalizar" é clicado.

## ⚙️ Plano de Correção

Para corrigir o bug, você precisa depurar a função responsável por enviar os dados para a Google Sheets. Siga estes passos:

Passo 1: Verifique as Permissões 🔌

  • Google Sheet: Vá em "Compartilhar" na sua planilha e garanta que as permissões de edição estão corretas para a conta de serviço ou API que seu aplicativo usa.
  • Google Cloud Console: Verifique se a API do Google Sheets está ativada e se as credenciais (chave de API ou ID de cliente OAuth) estão corretas e não expiraram.

Passo 2: Depure a Função "Finalizar Tarefa" 📝

No código do seu front-end, localize a função que é executada quando o usuário clica no botão "Finalizar" de uma tarefa. Dentro dessa função, utilize o console.log() do navegador para verificar as variáveis e a resposta da API.

  1. Verifique os Dados Enviados: Antes da chamada da API, imprima o objeto que será enviado. Ele deve se parecer com isto para a primeira tarefa:

    JavaScript
    // Exemplo do objeto de dados a ser enviado para a API
    const dadosParaPlanilha = {
      "range": "NOME_DA_SUA_ABA!A:G", // Ex: "Dados!A:G"
      "majorDimension": "ROWS",
      "values": [
        [
          new Date().toISOString(), // Coluna A: DataHoraFinalizada
          "S00",                   // Coluna B: CodigoTarefa
          "Tarefa",                // Coluna C: NomeTarefa
          5,                       // Coluna D: TamanhoTarefa
          "00:01:01",              // Coluna E: DuracaoTarefaMinutos
          "Nenhum",                // Coluna F: TiposDeDefeito
          295.08 // O valor calculado de produtividade para esta tarefa específica
        ]
      ]
    };
    console.log('Dados a serem enviados:', JSON.stringify(dadosParaPlanilha));
    
  2. Verifique a Resposta da API: A chamada para a API do Google Sheets (seja gapi.client.sheets.spreadsheets.values.append ou outra) retorna uma promessa (Promise). Capture e imprima a resposta ou o erro.

    JavaScript
    // Exemplo de como capturar a resposta
    suaFuncaoDeApi(parametros)
      .then(function(response) {
        // Se a chamada for bem-sucedida, a API retorna um código 200.
        console.log('Sucesso! Resposta da API:', response);
      },
      function(error) {
        // Se a chamada falhar, a API retorna um erro.
        // O objeto de erro contém a causa do problema.
        console.error('Erro ao enviar dados para a planilha:', error);
      });
    

Ao inspecionar o console.error, você provavelmente encontrará uma mensagem específica (como 403: PERMISSION_DENIED ou 400: INVALID_ARGUMENT) que indicará a causa exata do problema, permitindo que você o corrija.

CONCLUSÃO

O Plano de Correção do BugCT1-1 foi executado e a causa do bug foi a falta da API do Google Sheets.

No próximo post a API do Google Sheets será ativada.

 

 




Nenhum comentário:

Postar um comentário

Entendendo a Metáfora "Home Office é Moto Boy"

Dashboard de Produtividade Pessoal T1E13: BugCT1-5 Erro 400 no login

INTRODUÇÃO Post anterior:  Dashboard de Produtividade Pessoal T1E12: BugCT1-4 Código pronto para login com Google Identity Services (GIS) O ...