Canopus: A Domain-Specific Language for Modeling Performance Testing

Maicon Bernardino, Avelino F. Zorzo, Elder M. Rodrigues
<span title="">2016</span> <i title="IEEE"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/2vets7bfvjgrfdnvqtw7wrhqk4" style="color: black;">2016 IEEE International Conference on Software Testing, Verification and Validation (ICST)</a> </i> &nbsp;
This thesis is dedicated to my beloved parents, Who educated me and enabled me to reach at this level "Everyone envies the beverage I drink, but no one knows the falls I take." (Brazilian proverb) ACKNOWLEDGMENTS À Deus. A força da fé me manteve firme e perseverante. Agradeço o apoio financeiro obtido durante o período, oportunizado pela DELL, em forma de bolsa taxas. Além da oportunidade de desenvolver a minha pesquisa como bolsista vinculado ao Projeto de Desenvolvimento em Tecnologia da
more &raquo; ... mação (PDTI) no convênio DELL/PUCRS, como integrante do projeto "Center of Competence in Performance Testing". Aos colegas do CePES e aos membros do grupo de pesquisa "CoC Perf" por terem compartilhado bons momentos durante o período do doutorado. Ao colega Elder de Macedo Rodrigues um agradecimento especial por toda a ajuda e colaboração prestada. Ao meu orientador, professor Avelino Francisco Zorzo, por todos os ensinamentos, críticas e conselhos e, principalmente, pela confiança. Saiba que os desafios lançados colaboraram muito com o meu crescimento, tanto pessoal quanto profissional. Agradeço aos aconselhamentos dos avaliadores, professores Adenilso da Silva Simão, Silvia Regina Vergilio e Rafael Heitor Bordini pelas considerações e sugestões de melhoria na proposta de tese e defesa da tese. Gostaria de agradecer o apoio do professor Flávio Moreira de Oliveira pela oportunidade profissional e contribuições na publicação de artigos. MUITO OBRIGADO aos "grandes" e mais que amigos: Elder de Macedo Rodrigues e João Batista Mossmann pelo incentivo, motivação, conselhos e ajudas. Além das cervejadas e churrascadas para manter a vida social em dia. E aos demais amigos que contribuíram de alguma forma para a realização deste trabalho. À minha família, pelo apoio, carinho e confiança dado em todos os momentos de minha vida e, por compreenderem minha ausência nos encontros familiares durante este período. Um agradecimento especial a minha querida mãe, a "Véia". Obrigado, do fundo do coração por sempre acreditar e confiar no meu potencial. Eu, o "Maiquinho", dedico este trabalho a você, pelo carinho e por ter me ensinado os valores e caráter que tenho hoje. Agradecimento especial a Raissa pela paciência e por tudo que passamos juntos neste curto período de convivência. Você fez tudo parecer tão simples. Sem a tua ajuda e apoio nesta reta final, com certeza não teria conseguido. CANOPUS: UMA LINGUAGEM ESPECÍFICA DE DOMÍNIO PARA MODELAGEM DE TESTE DE DESEMPENHO RESUMO Desempenho é uma qualidade fundamental de sistemas de software. Teste de desempenho é uma técnica capaz de revelar gargalos do sistema na escalabilidade do ambiente de produção. No entanto, na maior parte do ciclo de desenvolvimento de software, não se aplica este tipo de teste nos seus ciclos iniciais. Deste modo, isto resulta em um fraco processo de elicitação dos requisitos e dificuldades da equipe em integrar suas atividades ao escopo do projeto. Assim, o teste baseado em modelos é uma abordagem de teste para automatizar a geração de artefatos de teste com base em modelos. Ao fazer isto, permite melhorar a comunicação da equipe, uma vez que a informação de teste é agregada aos modelos desde as fases iniciais do processo de teste, facilitando assim sua automatização. A principal contribuição desta tese é propor uma linguagem específica de domínio (Domain-Specific Language -DSL) para modelagem de teste de desempenho em aplicações Web. A DSL proposta é chamada Canopus, na qual um modelo gráfico e uma linguagem semi-natural são propostos para apoiar a modelagem de desempenho e geração automática de cenários e scripts de teste. Além disto, apresenta-se um exemplo de uso bem como um estudo de caso realizado na indústria para demonstrar o uso da Canopus. Com base nos resultados obtidos, infere-se que a Canopus pode ser considerada uma DSL válida para modelagem do teste de desempenho. A motivação para realização deste estudo foi investigar se uma DSL para modelagem do teste de desempenho pode melhorar a qualidade, custo e eficiência do teste de desempenho. Assim, também foi realizado um experimento controlado com o objetivo de avaliar o esforço (tempo), quando comparado Canopus com outra abordagem industrial -UML. Os resultados obtidos indicam que, estatisticamente, para a modelagem de desempenho usando Canopus o esforço foi menor e melhor do que usando UML. Palavras Chave: teste de desempenho, modelagem de desempenho, linguagem específica de domínio, modelagem específica de domínio, teste baseado em modelo, teste de software. ABSTRACT Performance is a fundamental quality of software systems. Performance testing is a technique able to reveal system bottlenecks and/or lack of scalability of the up-and-running environment. However, usually the software development cycle does not apply this effort on the early development phases, thereby resulting in a weak elicitation process of performance requirements and difficulties for the performance team to integrate them into the project scope. Model-Based Testing (MBT) is an approach to automate the generation of test artifacts from the system models. By doing that, communication is improved among teams, given that the test information is aggregated in the system models since the early stages aiming to automate the testing process. The main contribution of this thesis is to propose a Domain-Specific Language (DSL) for modeling performance testing in Web applications. The language is called Canopus, in which a graphical model and a natural language are proposed to support performance modeling and automatic generation of test scenarios and scripts. Furthermore, this work provides an example of use and an industrial case study to demonstrate the use of Canopus. Based on the results obtained from these studies, we can infer that Canopus can be considered a valid DSL for modeling performance testing. Our motivation to perform this study was to investigate whether a DSL for modeling performance testing can improve quality, cost, and efficiency of performance testing. Therefore, we also carried out a controlled empirical experiment to evaluate the effort (time spent), when comparing Canopus with another industrial approach -UML. Our results indicate that, for performance modeling, effort using Canopus was lower than using UML. Our statistical analysis showed that the results were valid, i.e., that to design performance testing models using Canopus is better than using UML.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/icst.2016.13">doi:10.1109/icst.2016.13</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/icst/BernardinoZR16.html">dblp:conf/icst/BernardinoZR16</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/7swi7yah5jbxzcxgwkqahnuq24">fatcat:7swi7yah5jbxzcxgwkqahnuq24</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20200307013242/http://tede2.pucrs.br/tede2/bitstream/tede/6861/2/TES_MAICON_BERNARDINO_DA_SILVEIRA_COMPLETO.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/ef/a0/efa0b805084498c3aa84cb116a10d56803935196.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/icst.2016.13"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> ieee.com </button> </a>