Assessing the migration of testing frameworks in the Python ecosystem

Atualmente, desenvolvedores Python podem utilizar dois frameworks de teste: unittest e pytest. Devido aos benef´ıcios do pytest (tais como reuso de fixtures), muitos projetos relevantes no ecossistema Python migraram do unittest para o pytest. Apesar de ser realizada pela comunidade Python, ainda n˜...

Descripción completa

Detalles Bibliográficos
Autor: Lívia Almeida Barbosa
Tipo de documento: Tesis de maestría
Estado:Published version
Fecha de publicación:2022
País:Brasil
Institución:UFMG
Repositorio:Repositório Institucional da UFMG
Lenguaje:Inglés
OAI Identifier:oai:repositorio.ufmg.br:1843/47346
Acceso en línea:http://hdl.handle.net/1843/47346
Nivel de acceso:Acceso abierto
Palabra clave:Software testing
Software maintenance
Mining software repositories
Empirical software engineering
Python
Pytest
Unittest
Computação – Teses
Software – Testes – Teses
Mineração de dados (Computação) – Teses
Engenharia de Software – Teses
Python (Linguagem de programação de computador) – Teses
Descripción
Sumario:Atualmente, desenvolvedores Python podem utilizar dois frameworks de teste: unittest e pytest. Devido aos benef´ıcios do pytest (tais como reuso de fixtures), muitos projetos relevantes no ecossistema Python migraram do unittest para o pytest. Apesar de ser realizada pela comunidade Python, ainda n˜ao temos informações suficientes sobre a migração de unittest para pytest, nem sobre as raz˜oes da migração. Neste estudo, analizamos como e por qual motivo desenvolvedores migram de unittest para pytest. Para isso, mineramos os 100 sistemas Python mais populares e analisamos seus status de migrações. Os resultados mostram que 34% dos sistemas dependem de ambos frameworks de teste e que projetos Python est˜ao, de fato, realizando a migração para pytest. Enquanto alguns sistemas mi graram completamente, outros ainda estão migrando após um longo período, sugerindo que a migração não é sempre direta. Em geral, o código de teste migrado é menor que o original. Além disso, desenvolvedores migram para pytest por diversas razões, como sintaxe simplificada, interoperabilidade, manutenção facilitada e flexibilidade/reuso de fixtures, entretanto, a mecânica implícita do pytest e o fato de ser um pacote não nativo são preocupações relevantes.