Toward harnessing a Java high-level language virtual machine for supporting software testing

High-level language virtual machines (HLL VMs) have been playing a key role as a mechanism for implementing programming languages. Languages that run on these execution environments have many advantages over languages that are compiled to native code. These advantages have led HLL VMs to gain br...

Full description

Bibliographic Details
Main Author: Vinicius Humberto Serapilha Durelli
Other Authors: Márcio Eduardo Delamaro
Language:English
Published: Universidade de São Paulo 2013
Subjects:
Online Access:http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06012014-150025/
id ndltd-IBICT-oai-teses.usp.br-tde-06012014-150025
record_format oai_dc
spelling ndltd-IBICT-oai-teses.usp.br-tde-06012014-1500252019-01-21T22:07:10Z Toward harnessing a Java high-level language virtual machine for supporting software testing Utilizando uma máquina virtual Java como apoio à atividade de teste de software Vinicius Humberto Serapilha Durelli Márcio Eduardo Delamaro Jefferson Offutt Marcos Lordello Chaim Arilo Claudio Dias Neto Jefferson Offutt Avelino Francisco Zorzo Máquina virtual Java Maxine VM Mecanismo de record-and-playback Mutação fraca Teste de mutação Teste de software Java virtual machine Maxine VM Mutation testing Record-and-playback mechanism Software testing Weak mutation High-level language virtual machines (HLL VMs) have been playing a key role as a mechanism for implementing programming languages. Languages that run on these execution environments have many advantages over languages that are compiled to native code. These advantages have led HLL VMs to gain broad acceptance in both academy and industry. However, much of the research in this area has been devoted to boosting the performance of these execution environments. Few eorts have attempted to introduce features that automate or facilitate some software engineering activities, including software testing. This research argues that HLL VMs provide a reasonable basis for building an integrated software testing environment. To this end, two software testing features that build on the characteristics of a Java virtual machine (JVM) were devised. The purpose of the rst feature is to automate weak mutation. Augmented with mutation support, the chosen JVM achieved speedups of as much as 95% in comparison to a strong mutation tool. To support the testing of concurrent programs, the second feature is concerned with enabling the deterministic re-execution of Java programs and exploration of new scheduling sequences Máquinas virtuais de linguagens de programação têm desempenhado um papel importante como mecanismo para a implementação de linguagens de programação. Linguagens voltadas para esses ambientes de execução possuem várias vantagens em relação às linguagens compiladas. Essas vantagens fizeram com que tais ambientes de execução se tornassem amplamente utilizados pela indústria e academia. Entretanto, a maioria dos estudos nessa area têm se dedicado a aprimorar o desempenho desses ambientes de execução e poucos têm enfocado o desenvolvimento de funcionalidades que automatizem ou facilitem a condução de atividades de engenharia de software, incluindo atividades de teste de software. Este trabalho apresenta indícios de que máquinas virtuais de linguagens de programação podem apoiar a criação de ambientes de teste de software integrado. Para tal, duas funcionalidades que tiram proveito das características de uma máquina virtual Java foram desenvolvidas. O propósito da primeira funcionalidade e automatizar a condução de atividades de mutação fraca. Após a implementação de tal funcionalidade na máquina virtual Java selecionada, observou-se um desempenho até 95% melhor em relação a uma ferramenta de mutação forte. Afim de apoiar o teste de programas concorrentes, a segunda funcionalidade permite reexecutá-los de forma determinística além de automatizar a exploração de que novas sequências de escalonamento 2013-10-01 info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/doctoralThesis http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06012014-150025/ eng info:eu-repo/semantics/openAccess Universidade de São Paulo Ciências da Computação e Matemática Computacional USP BR reponame:Biblioteca Digital de Teses e Dissertações da USP instname:Universidade de São Paulo instacron:USP
collection NDLTD
language English
sources NDLTD
topic Máquina virtual Java
Maxine VM
Mecanismo de record-and-playback
Mutação fraca
Teste de mutação
Teste de software
Java virtual machine
Maxine VM
Mutation testing
Record-and-playback mechanism
Software testing
Weak mutation
spellingShingle Máquina virtual Java
Maxine VM
Mecanismo de record-and-playback
Mutação fraca
Teste de mutação
Teste de software
Java virtual machine
Maxine VM
Mutation testing
Record-and-playback mechanism
Software testing
Weak mutation
Vinicius Humberto Serapilha Durelli
Toward harnessing a Java high-level language virtual machine for supporting software testing
description High-level language virtual machines (HLL VMs) have been playing a key role as a mechanism for implementing programming languages. Languages that run on these execution environments have many advantages over languages that are compiled to native code. These advantages have led HLL VMs to gain broad acceptance in both academy and industry. However, much of the research in this area has been devoted to boosting the performance of these execution environments. Few eorts have attempted to introduce features that automate or facilitate some software engineering activities, including software testing. This research argues that HLL VMs provide a reasonable basis for building an integrated software testing environment. To this end, two software testing features that build on the characteristics of a Java virtual machine (JVM) were devised. The purpose of the rst feature is to automate weak mutation. Augmented with mutation support, the chosen JVM achieved speedups of as much as 95% in comparison to a strong mutation tool. To support the testing of concurrent programs, the second feature is concerned with enabling the deterministic re-execution of Java programs and exploration of new scheduling sequences === Máquinas virtuais de linguagens de programação têm desempenhado um papel importante como mecanismo para a implementação de linguagens de programação. Linguagens voltadas para esses ambientes de execução possuem várias vantagens em relação às linguagens compiladas. Essas vantagens fizeram com que tais ambientes de execução se tornassem amplamente utilizados pela indústria e academia. Entretanto, a maioria dos estudos nessa area têm se dedicado a aprimorar o desempenho desses ambientes de execução e poucos têm enfocado o desenvolvimento de funcionalidades que automatizem ou facilitem a condução de atividades de engenharia de software, incluindo atividades de teste de software. Este trabalho apresenta indícios de que máquinas virtuais de linguagens de programação podem apoiar a criação de ambientes de teste de software integrado. Para tal, duas funcionalidades que tiram proveito das características de uma máquina virtual Java foram desenvolvidas. O propósito da primeira funcionalidade e automatizar a condução de atividades de mutação fraca. Após a implementação de tal funcionalidade na máquina virtual Java selecionada, observou-se um desempenho até 95% melhor em relação a uma ferramenta de mutação forte. Afim de apoiar o teste de programas concorrentes, a segunda funcionalidade permite reexecutá-los de forma determinística além de automatizar a exploração de que novas sequências de escalonamento
author2 Márcio Eduardo Delamaro
author_facet Márcio Eduardo Delamaro
Vinicius Humberto Serapilha Durelli
author Vinicius Humberto Serapilha Durelli
author_sort Vinicius Humberto Serapilha Durelli
title Toward harnessing a Java high-level language virtual machine for supporting software testing
title_short Toward harnessing a Java high-level language virtual machine for supporting software testing
title_full Toward harnessing a Java high-level language virtual machine for supporting software testing
title_fullStr Toward harnessing a Java high-level language virtual machine for supporting software testing
title_full_unstemmed Toward harnessing a Java high-level language virtual machine for supporting software testing
title_sort toward harnessing a java high-level language virtual machine for supporting software testing
publisher Universidade de São Paulo
publishDate 2013
url http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06012014-150025/
work_keys_str_mv AT viniciushumbertoserapilhadurelli towardharnessingajavahighlevellanguagevirtualmachineforsupportingsoftwaretesting
AT viniciushumbertoserapilhadurelli utilizandoumamaquinavirtualjavacomoapoioaatividadedetestedesoftware
_version_ 1718891052017909760