Modelos, Definição e Preparação de Testes
Entendemos que a execução de testes é fundamental para garantir a funcionalidade de qualquer sistema. Dessa forma, a equipe focou em elencar as funcionalidades do sistema e definir os testes necessários para garantir a qualidade do produto final. Nesse sentido, obtivemos os seguintes vislumbres:
| Funcionalidade | Testes Realizáveis |
|---|---|
| Câmera | - Captura da imagem |
| - Captou a imagem? (S/N) ✅ | |
| - Em quanto tempo? (s/min/h) ✅ | |
| - Aglutinação do vídeo | |
| - Porcentagem de completude do vídeo? (%) ✅ | |
| - Em quanto tempo? (s/min/h) ✅ | |
| - Envio para a AWS | |
| - Enviou os arquivos (S/N) ✅ | |
| - Em quanto tempo? (s/min/h) ✅ | |
| Modelo | - Recebimento da imagem |
| - Recebeu a imagem? (S/N) | |
| - Em quanto tempo? (s/min/h) | |
| - Processamento da imagem | |
| - Quais recursos foram utilizados? (cpu/gpu/ram) | |
| - Quanto dos recursos foram utilizados? (% da capacidade computacional total) | |
| - Em quanto tempo? (s/min/h) | |
| - A imagem foi distorcida? (Comparação do shape) | |
| - Teste de acurácia do modelo (Comparar modelo com sanity check) | |
| - Envio dos dados para o backend | |
| - Enviou os dados? (S/N) | |
| - Em quanto tempo? (s/min/h) | |
| Back | - Recebimento dos dados pelo modelo |
| - Recebeu os dados? (S/N) | |
| - A quantidade de dados está coerente com a enviada pelo modelo? | |
| - Em quanto tempo? (s/min/h) | |
| - Guarda de dados em banco de dados | |
| - Em quanto tempo? (s/min/h) | |
| - Envio dos dados do modelo para o front | |
| - Enviou os dados? (S/N) | |
| - Em quanto tempo? (s/min/h) | |
| Front | - Consumo dos dados |
| - Recebeu os dados? (S/N) | |
| - A quantidade de dados está coerente com a enviada pelo backend? | |
| - Visualização | |
| - Quantos gráficos foram construídos corretamente? (%) | |
| - Requisições por segundo: Métricas de quantidade de requisições que o sistema aguenta |
Testes com a Câmera
Captura da Imagem
Como a captação de imagens é crucial para o funcionamento do sistema, performamos alguns testes para garantir que a câmera está funcionando corretamente e informar ao operador sobre o status da captura para que assim algum feedback possa ser dado. Nesse contexto, aplicamos testes de sequências de frames capturados e velocidade de processamento.

Aglutinação do Vídeo
Para garantir que o vídeo está sendo capturado corretamente, realizamos testes para verificar a porcentagem de completude do vídeo e o tempo de captura. Dessa forma, podemos garantir que o vídeo está sendo capturado corretamente e que o tempo de captura está dentro do esperado, retornando uma análise técnica dos frames sendo codificados em vídeo.

Neste exemplo:
- Frame rate: 50 fps (frames por segundo), que é uma taxa alta para vídeos de alta qualidade.
- Tempo de duração: O tempo total do vídeo é mostrado como aproximadamente 1.56 segundos.
- Tamanho do vídeo: O tamanho do arquivo final do vídeo é de 1005 kB.
- Taxa de bits (bitrate): 5256.1 kbits/s, o que sugere uma alta taxa de compressão para vídeo.
- Análise de macroblocos (MB): Há informações detalhadas sobre a estrutura de macroblocos (MB) no vídeo, mostrando a porcentagem de macroblocos intra, inter e o uso de transformações 8x8, o que é comum em vídeos comprimidos para eficiência.

Além disso, ao final do processo, o operador recebe um feedback sobre o status da captura do vídeo, informando se o vídeo foi capturado corretamente e em quanto tempo para ser enviado para o serviço de cloud. Podemos conferir, no próprio console da AWS, que o vídeo foi enviado corretamente. Neste caso, é o arquivo com o tamanho de 993.4 kB, que foi o indicado pelo terminal.

Roadmap de Testes
Entendemos que o planejamento, definição e preparação de testes são fundamentais para garantir a qualidade do produto final. Entretanto, devido ao tempo limitado e à complexidade do sistema, optamos por focar em testes de integração e aceitação, que são essenciais para garantir o funcionamento correto do sistema como um todo. Nesse sentido, recomendamos que a implementação dos outros tipos de testes, como testes unitários e de regressão, seja realizada em fases posteriores do projeto, à medida que o sistema evolui e novas funcionalidades são adicionadas.