Coleta de Dados Veiculares

- 159704
Iniciação Tecnológica-Oral
Favoritar este trabalho
Como citar esse trabalho?
Resumo

O advento da IoT (Internet of Things) e a introdução dos sistemas embarcados dentro de veículos automotores fomentaram o conceito de crowdsensing, permitindo a integração do hardware desses veículos com software. Desse modo, o trabalho objetiva fazer a coleta de dados veiculares usando um aplicativo mobile, através linguagem de programação Dart e com o Framework Flutter, com o intuito de fazer a comunicação com um dispositivo Bluetooth baseado no Scanner ELM327. Uma forma de saber se a implementação foi feita corretamente é a implementação de Testes Unitários de Software para as funções de conexão Bluetooth e OBD2, além das funções de decodificação e leitura do VIN (Vehicle Identification Number) do carro, de modo que seja feita a verificação do funcionamento de cada módulo. A metodologia utilizada ao longo do trabalho se baseou em criar testes unitários para a verificação de falhas. Antes do processo do desenvolvimento dos testes, a classe em análise foi dividida em duas, cada uma exercendo responsabilidades distintas e únicas seguindo a 1º regra do SOLID. Os testes unitários foram implementados possibilitando verificar o comportamento das funções sem a necessidade de executar todo o aplicativo. Uma vez que os testes implementam funções específicas, os recursos presentes em um dispositivo mobile tais como protocolos de conexão se tornam indisponíveis. Para contornar esse problema, foram desenvolvidos Mocks, que simulam os comportamentos que se encontram indisponíveis devido às limitações dos testes unitários, tais como uma requisição de dados. Foram desenvolvidos diversos Mocks para que fosse possível testar as funções da classe responsável pela conexão, que dependiam da comunicação via protocolo Bluetooth. Com os Mocks já implementados, através da biblioteca Mockito, os testes restantes foram desenvolvidos para verificar se as funções implementadas se comportam como o esperado e corrigi-las caso não o façam corretamente. O ciclo se repete até que todos os testes passem. O usos dos Testes Unitários possibilitaram encontrar diversas falhas nas funções da classe de decodificação do VIN. Assim que as falhas foram encontradas, as mesmas foram corrigidas dentro dos próprios testes e reestruturadas as suas lógicas de seus códigos correspondentes de forma correta. Quanto à classe responsável pela comunicação Bluetooth, foram implementados 7 testes usando mocks, todos eles passaram sem apresentar falhas, entretanto, devido ao encapsulamento da biblioteca de conexão usada, algumas funções desenvolvidas não puderam ser testadas. É importante observar que se caso o trabalho tivesse sido desenvolvido usando o princípio de TDD (Test Driven Development), problemas como a quebra de responsabilidade exclusiva das classes poderiam ser evitados, entretanto, a própria biblioteca de conexão usada aborda os processos de conexão e comunicação via OBD2 conjuntamente. O término do trabalho levou à conclusão que a implementação de testes é fundamental no processo de detecção de falhas, e também na documentação dos métodos implementados corretamente.

Compartilhe suas ideias ou dúvidas com os autores!

Sabia que o maior estímulo no desenvolvimento científico e cultural é a curiosidade? Deixe seus questionamentos ou sugestões para o autor!

Faça login para interagir

Tem uma dúvida ou sugestão? Compartilhe seu feedback com os autores!

Instituições
  • 1 Instituto Federal Fluminense / Campus Bom Jesus do Itabapoana
Eixo Temático
  • 2.3 IFF - Engenharias
Palavras-chave
obd; testes de unidade; crowdsensing