OpenMLPerf - graphical domain-specific modeling language for performance testing in web systems - Carbonell, João Batista Pedroso (2023)
Testar o desempenho de um sistema é uma das tarefas mais cruciais no processo de desenvolvimento de software e sua evolução. A maioria dos testes de desempenho atuais concentra-se em avaliar um sistema já implementado, tornando difícil prever problemas como capacidades de carga e gargalos. Portanto, é recomendado utilizar mecanismos para modelar e especificar informações do sistema antes da implementação. Uma solução potencial é a utilização de modelos que representem aspectos imutáveis do domínio do sistema, como características de infraestrutura ou comportamento do usuário. O uso de modelos para abstrair, definir e modelar aspectos do domínio tornou-se a abordagem mais comumente adotada para resolver problemas em contextos específicos, alinhando-se aos princípios da Engenharia Orientada a Modelos (MDE), que defendem o uso de modelos ao longo do ciclo de vida do software. Linguagens Específicas de Domínio (DSLs) são uma maneira de especificar e modelar um domínio. As DSLs são linguagens compactas com expressividade limitada projetadas para domínios específicos. Ao contrário de linguagens de propósito geral como Python e Java, as DSLs não se destinam a implementar sistemas em todos os domínios; elas são restritas ao seu propósito original. Neste estudo, propomos a reimplementação de uma DSL gráfica chamada Canopus para modelar testes de desempenho em sistemas web. Como parte dessa reimplementação, desenvolvemos um gerador de código dentro da DSL. O gerador de código foi especialmente projetado para gerar código SCALA que pode ser usado em conjunto com a ferramenta JMeter. A implementação anterior do Canopus utilizava tecnologias licenciadas comercialmente, o que limitava sua distribuição e evolução. Portanto, apresentamos uma nova versão desta DSL, chamada OpenMLPerf, que será disponibilizada sob licença de código aberto, permitindo seu uso, aprimoramento e evolução. Com a adição do gerador de código, o OpenMLPerf capacita os usuários a gerar automaticamente código SCALA para seus cenários de teste de desempenho, facilitando a integração com a amplamente utilizada ferramenta JMeter. Para a seleção de uma ferramenta de desenvolvimento de DSL, conduzimos um Mapeamento Sistemático da Literatura, identificando cinquenta e três (53) ferramentas de apoio a DSL disponíveis. Optamos por utilizar o Ecore, do Eclipse Modeling Framework (EMF), e o framework Sirius para implementar o metamodelo da linguagem e a própria linguagem de modelagem. Além desses dois frameworks, também utilizamos o framework Acceleo para a modelagem de templates e a geração de código Scala destinado a ferramentas de teste de desempenho. Realizamos uma avaliação empírica para medir o esforço exigido dos usuários ao modelar um cenário de teste de desempenho usando a abordagem OpenMLPerf, em comparação com o uso de um perfil UML para testes de desempenho. Embora os resultados tenham indicado que ambas as abordagens requerem esforços semelhantes por parte dos participantes, a abordagem OpenMLPerf demonstrou ser altamente escalável, completa e intuitiva. Um fator determinante para a adoção da abordagem OpenMLPerf é o seu desenvolvimento em uma plataforma de código aberto, o que permite sua replicação, customização e aprimoramento pela comunidade. Como ponto de atenção, vale ressaltar que a adoção dessa abordagem pode ser afetada por questões de desempenho e usabilidade relacionadas à plataforma Eclipse.