• JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
  • JoomlaWorks Simple Image Rotator
 
  Bookmark and Share
 
 
Doctoral Thesis
DOI
https://doi.org/10.11606/T.55.2017.tde-12092017-161142
Document
Author
Full name
Alexandre Ponce de Oliveira
E-mail
Institute/School/College
Knowledge Area
Date of Defense
Published
São Carlos, 2017
Supervisor
Committee
Souza, Paulo Sergio Lopes de (President)
Arantes, Luciana Bezerra
Sato, Liria Matsumoto
Simão, Adenilso da Silva
Travieso, Gonzalo
Title in Portuguese
Teste estrutural para aplicações concorrentes em Erlang
Keywords in Portuguese
Critérios de teste
Linguagem Erlang
Linguagem funcional
Modelo de teste
Teste estrutural
ValiErlang
Abstract in Portuguese
As atividades de validação, verificação e teste contribuem para melhorar a qualidade dos programas, independentemente do paradigma de programação utilizado. Erlang é um exemplo de linguagem funcional, e aspectos como: dados imutáveis, higher-order functions, lazy evaluation e pattern matching impõem restrições à atividade de teste estrutural de software, as quais requerem uma atenção especial do testador. A linguagem Erlang foi criada para o desenvolvimento de aplicações concorrentes, em tempo real e com tolerância a falhas. A aplicação da atividade de teste de software torna-se necessária para aplicações desenvolvidas em Erlang. Um mapeamento sistemático realizado identificou os trabalhos relacionados e também a identificação de falhas típicas encontradas em programas Erlang. O resultado do mapeamento evidenciou a falta de propostas que considerem as principais características de Erlang, incluindo uma ferramenta de teste que dê suporte à aplicação prática da atividade de teste. Esta lacuna foi considerada significativa. Foi proposto um conjunto de critérios de teste estruturais para verificar a cobertura de códigos em aplicações sequenciais e distribuídas de programas Erlang. Os critérios de teste exploram as possíveis falhas relacionadas à comunicação entre funções, comunicação entre processos, sincronização, concorrência, recursividade e tolerância a falhas. A definição dos critérios contou com o suporte de um modelo de teste para a obtenção das informações sobre o fluxo de controle, fluxo de dados e fluxo de comunicação de programas Erlang. O modelo estabeleceu 15 tipos de nós, 9 tipos de arestas e 5 tipos de usos de variáveis. Para apoiar a aplicação dos critérios, uma ferramenta de teste, chamada Valierlang, também foi implementada. A ValiErlang é composta por 5 módulos que realizam as seguintes etapas: análise estática, instrumentação do código fonte, geração do GFC, definição dos elementos requeridos, execução do código instrumentado, geração do rastro de execução e avaliação dos elementos cobertos e elementos não executáveis. Foi realizado um estudo experimental para verificar a aplicabilidade dos critérios de teste por meio da ValiErlang. Neste estudo foram utilizados seis programas com diferentes características, todas essenciais aos programas em Erlang. Com base nos resultados obtidos, foi possível comprovar que a abordagem contribui com o testador devido ao sucesso na aplicação dos critérios e também a eficácia dos critérios em revelar defeitos. E as etapas para o testador de software realizar a aplicação do teste estrutural, tem o apoio ferramental da ValiErlang.
Title in English
Structural testing for Concurrent Applications in Erlang
Keywords in English
Erlang language
Functional language
Structural testing
Test model
Testing criteria
ValiErlang
Abstract in English
The validation, verification and test activities contribute to improve the quality of the programs, independently of the used programing paradigm. Erlang is an example of functional language and aspects such as: immutable data, higher-order functions, lazy evaluation e pattern matching impose restrictions to the software structural testing activity, which require a special attention by the tester. The Erlang language was created for the development of concurrent applications, in real time and with fault tolerance. The application of the software testing activity becomes necessary for applications developed in Erlang. An executed systematic mapping identified the related works and the identification of typical failures found in Erlang programs. The result of the mapping highlighted the lack of proposals that consider the main features of Erlang, including a testing tool that supports the practical application of the testing activity. This gap was considered significant. A set of structural testing criteria was proposed to verify the coverage of codes in sequential and distributed applications in Erlang programs. The test criteria explore the possible failure related to the communication between functions, communication between processes, synchronization, concurrence, recursion and fault tolerance. The definition of the criteria had the support of a test model to obtain information about control flux, data flux, and communication flux of Erlang programs. The model established 15 types of nodes, 9 types of edges and 5 types of variable uses. To support the application of criteria, a testing tool called ValiErlang was also implemented. ValiErlang is composed of 5 modules that execute the following stages: static analysis, source code instrumentation, CFG generation, definition of the required elements, instrumented code execution, execution trace generation and evaluation of the covered and non-executable elements. An experimental study was executed to verify the applicability of the testing criteria by ValiErlang. In this study six programs with different characteristics were used. All characteristics were essential to the Erlang programs. Based on the obtained results, it was possible to prove that the approach contributes with the tester because of the success in the criteria application and the efficiency of the criteria in revealing defects. The stages for the testes to execute the structural test application have the support of the Erlang tool.
 
WARNING - Viewing this document is conditioned on your acceptance of the following terms of use:
This document is only for private use for research and teaching activities. Reproduction for commercial use is forbidden. This rights cover the whole data about this document as well as its contents. Any uses or copies of this document in whole or in part must include the author's name.
Publishing Date
2017-09-12
 
WARNING: Learn what derived works are clicking here.
All rights of the thesis/dissertation are from the authors
CeTI-SC/STI
Digital Library of Theses and Dissertations of USP. Copyright © 2001-2024. All rights reserved.