MAC0499 - Trabalho de Formatura

Implementando testes de unidade no kernel Linux
Uma observação participante no driver de display da AMD

Estudante: Magali Lemes
Orientadores: Paulo Meirelles (IME-USP) e Rodrigo Siqueira (AMD)

Testes de software são uma parte intrínseca do desenvolvimento de software. Testar código manualmente pode ser complicado e contraprodutivo, portanto, ferramentas automatizadas surgiram para realizar esse trabalho de forma mais eficiente. O kernel Linux não poderia ser diferente e, devido a seu tamanho e diferentes casos de uso, dispõe de ferramentas para testá-lo em uma variedade de cenários. Entre os diferentes tipos de testes de software no kernel, nós nos concentramos em testes de unidade, em que as unidades, as menores partes testáveis de código, são o alvo a ser testado. Este projeto apresenta uma perspectiva em relação à introdução de testes de unidade em um subsistema do kernel Linux. Para atingir isso, seguimos uma abordagem de observação participante e exploramos o arcabouço nativo de testes de unidade do Linux, o KUnit. Nosso objeto de estudo para a introdução dos testes foi o driver de display da AMD, o maior driver do Linux em linhas de código e também um subsistema onde testes de unidade ainda não haviam sido implementados. Como resultado, discutimos como elaboramos os casos de teste e as escolhas de projeto feitas ao longo do nosso processo, resumindo as lições aprendidas e recomendações.