Os pesquisadores compilam um novo banco de dados de snippets de código Python executáveis no GitHub
p (a) Snippet de código para usar a API de geocódigo do Google Maps (b) Dockerfile contendo as especificações do ambiente necessárias para executar o snippet de código. Crédito:Horton &Parnin
p Uma equipe de pesquisadores da North Carolina State University realizou recentemente uma análise empírica do status do executável de trechos de código Python compartilhados no GitHub. Seu estudo, pré-publicado no arXiv, também apresenta Gistable, um novo banco de dados de snippets de código Python executáveis no sistema principal do GitHub, que possibilite estudos reproduzíveis na área de engenharia de software. p Todos os dias, desenvolvedores de software em todo o mundo criam e compartilham código online para demonstrar e delinear novos conceitos de programação. GitHub é uma das maiores plataformas online em que os desenvolvedores podem compartilhar seus trechos de código e colaborar no desenvolvimento de software. Atualmente, contém mais de 300, 000 fragmentos de Python e mais de 4,5 milhões de gists em uma variedade de linguagens de programação.
p Embora snippets de código publicados online possam ser muito úteis, às vezes, eles não são executáveis diretamente por outros. Isso pode ser devido a erros de análise no código ou a problemas com a execução de snippets em ambientes que contêm dependências não atendidas.
p Para obter uma melhor compreensão de quantos trechos de código hospedados no sistema principal do GitHub são realmente executáveis, pesquisadores da North Carolina State University conduziram uma avaliação completa da executabilidade de scripts Python disponíveis publicamente e hospedados na plataforma. Seu estudo teve como objetivo identificar problemas comuns com a execução de trechos de código, o que pode fornecer informações valiosas para pesquisas futuras sobre gerenciamento automatizado de configuração de software.
p Em seu estudo, os pesquisadores também apresentaram Gistable, um banco de dados e uma estrutura extensível construída no sistema principal do GitHub. Gistable contém 10, 259 snippets de código Python, dos quais aproximadamente 5, 000 vêm com um Dockerfile para configurá-los e executá-los sem erros de importação.
p "Nosso trabalho em Gistable foi motivado como parte de um projeto maior relativo à configuração automatizada de ambientes de aplicativos, "Eric Horton, um dos pesquisadores que realizou o estudo, disse Tech Xplore. "Dado uma base de código, como os fragmentos estudados em Gistable, queremos encontrar um processo que possa construir um ambiente de execução suficiente para eles sem exigir a entrada de um desenvolvedor. Para fazer isso, primeiro tivemos que dar um passo atrás e responder a algumas perguntas. Primeiro, este é um caso de uso comum? Precisamos estabelecer uma linha de base para a frequência com que os aplicativos existentes precisam de algum tipo de configuração não trivial. Segundo, quando não executável, que tipo de configuração é necessária para permitir a execução? "
p Em seu estudo, os pesquisadores descobriram que 75,6 por cento dos gists Python analisados exigiam configurações substanciais para superar problemas como dependências ausentes, arquivos de configuração, confiança em um sistema operacional específico, ou outros desafios de configuração de ambiente. Além disso, as suposições que os desenvolvedores fazem sobre os nomes dos recursos ao tentar resolver erros de configuração foram consideradas corretas em menos da metade das vezes.
p "Descobrimos que cerca de 30 por cento da nossa amostra caiu na categoria 'difícil de configurar', com a dificuldade de configuração mais comum sendo dependências de bibliotecas externas, "Horton explicou." Nossa pesquisa no futuro imediato se concentrará em técnicas para encontrar e instalar essas bibliotecas. Depois, esperamos resolver outras dificuldades comuns de configuração descobertas como parte do Gistable. "
p Geral, um ambiente configurado de forma insuficiente foi o principal fator que impediu os fragmentos de código Python de serem executáveis. Embora, em alguns casos, configurações corretas do ambiente de aplicativo podem ser recuperadas automaticamente, outros necessitaram de novas intervenções. No futuro, os pesquisadores planejam investigar estratégias para realizar configurações de ambiente eficazes de forma consistente.
p "Acho que a conquista mais significativa deste estudo foi nossa investigação sobre como os desenvolvedores realizam a configuração manualmente, "Horton disse." Não só as respostas dos participantes confirmaram que este é, em muitos casos, um problema difícil, mas também nos ajudaram a categorizar coisas que podem dificultar a configuração. Isso é muito útil, porque nos aponta uma lista concreta de itens para pesquisas futuras. " p © 2018 Tech Xplore