1 Comentário

Test Driven Development - Unity + Microchip PIC

Unity

Atualmente exitem diversas metodologias para o desenvolvimento de software de alto nível para computadores pessoais. Algumas dessas metodologias estão sendo adaptadas para realidade de sistemas embarcados, como por exemplo, o desenvolvimento orientado a testes (TDD - Test Driven Development). Diferentemente da abordagem convencional onde todo o código é desenvolvido e apenas depois os testes (e a busca por bugs) são realizados, nesta metodologia o código é desenvolvido de forma incremental juntamente com a rotina de testes. As principais vantagens são:

  • Sistema tende ser melhor projetado, melhorando-se a qualidade do código;
  • Ao final do projeto, o código já foi exercitado por uma bateria de testes;
  • A cada alteração no código fonte, refazer os testes é trivial;
  • Evita-se a pressão de realizar testes/debug o mais rápido possível ao final do projeto;
  • Entre vários outros.

Para facilitar o trabalho do desenvolvedor, existem vários frameworks para testes unitários em C, dentre eles o Unity. Basicamente o Unity é um conjunto de macros e funções que possibilitam o desenvolvedor automatizar testes unitários. Como não cobriremos neste post como funciona o Unity, deixamos como referência o livro  Test Driven Development for Embedded C de James Grenning. Além do Unity, este livro é uma introdução à metodologia TDD e também mostra vários exemplos de como escrever os códigos de testes.

 Vamos criar um pequeno projeto para mostrar como configurar e como o TDD pode ser usado com microcontroladores Microchip, no caso o PIC24FJ256GA106. Usaremos uma ferramenta chamada ceedling que gera automaticamente todo o ambiente necessário para se usar o Unity.  Lembrando apenas que o exemplo é em uma máquina com Linux e o IDE usado para o projeto com o PIC é o MPLAB x IDE. (Veja os links de referência para saber como instalar o ceedling, como configurar em ambiente Windows e vários exemplos práticos).

1) Dentro da pasta de projetos do mplabx (geralmente o nome da pasta termina com .X), crie um projeto novo com o ceedling.  

2) Dentro desta pasta, encontra-se o arquivo de configuração do projeto. Para o nosso exemplo, iremos adaptar ele para usar o compilador microchip xc16-gcc e seu simulador sim30. O arquivo de configuração deve ficar assim:

Nota1: Adicione o path do compilador no PATH do sistema.

Nota2: Nesta máquina o compilador está instalado em /opt/microchip/xc16/v1.11, e no arquivo de configuração as bibliotecas padrões são configuradas na seção:

3) Dentro da pasta teste_unitario/test, crie uma pasta chamada simulation:

4) Em teste_unitario/test/simulation crie um arquivo chamado sim_instructions.txt e edite-o desta forma:

5) Em teste_unitario/test/simulation crie um arquivo chamado  sim_test_fixture.rb e edite-o desta forma:

6) Adicione o código de testes em teste_unitario/test. Vale lembrar que podemos configurar o path do código fonte tanto do projeto como dos testes para apontar em qualquer outro diretório. Para isso, altere o arquivo do projeto na seção :paths:source e :path:test respectivamente.

7) Para rodar todos os testes digite:

ou então para rodar um teste em específico, digite rake test:test_<nome_do_teste>. No nosso caso, o teste chama-se "misc":

TDD Unity Microchip PIC

Referências

https://github.com/ThrowTheSwitch/CeedlingExample_Microchip

Imagem destacada: FreeDigitalPhotos.net

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Test Driven Development - Unity + Microchip PIC
Talvez você goste:
Comentários:

1
Deixe um comentário

avatar
1 Comentários
0 Respostas
0 Seguidores
 
Discussão de maior alcance
Discussão mais quente
1 Autores de comentários
Matheus Quick Comentários recentes
  Notificações  
recentes antigos mais votados
Notificar
Matheus Quick
Visitante
Matheus Quick

ótimo artigo

Séries

Menu