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: Dahsboard em JavaScript e HTML

BackEnd: Google Sheet

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, o valor ficou igual a 177,05 Pontos / Hora.

No card Pontos Concluídos, o valor ficou 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"

UCEM L-pI.219 (199) Revisão VI - Caso de uso da IA para estudar

  Lição 219  Eu não sou um corpo. Eu sou livre.  Pois ainda sou como Deus me criou. Lição anterior Escolher outra lição Próxima lição Texto ...