REACTOR: Combining static analysis, testing and reverse engineering to detect software defects

Detalhes bibliográficos
Autor(a) principal: Alessandro Oliveira Arantes
Data de Publicação: 2016
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações do INPE
Texto Completo: http://urlib.net/sid.inpe.br/mtc-m21b/2016/04.20.19.30
Resumo: It is increasingly common the use of computer systems to replace human labor in critical systems, and since these systems have become more autonomous in decision making, they demand a high degree of quality and robustness. INPE develops embedded systems for scientific satellites and stratospheric balloons; consequently, the process of verification and validation require special care in detecting and preventing defects. In terms of complexity and system${'}$s domain in question, these processes consume specialists manpower for a long period. In this scenario, the application of techniques that can automatically support test process provide a significant gain in specialists productivity and efficiency. For this purpose, this work performs the source code reverse engineering in order to support a combination of two V\&V processes, static source code analysis and software testing, in order to detect a wider range of defects. The proposed method, called REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complements the traditional way that static code analyzers work by using dynamic information obtained by an automated test case generator, which combines three different black box techniques, being also possible to infer a set of estimated expected results similar to a test oracle. However, the combination of such techniques is not trivial, especially in terms of tasks that commonly demand some action that are not easily automated. Furthermore, the static analysis by itself can not reveal several types of defects that can only be detected by combining static analysis and dynamic information. The REACTOR method has been implemented in a software tool, also called REACTOR, which exempts from a large manual labors amount from testers by automating the process and basing only on applications source code. In addition, REACTOR was applied to some case studies including one of the space application domain, and it performed better than three other well known static code analyzers.
id INPE_8857e3bb01bede1f9d377ec9924f10f6
oai_identifier_str oai:urlib.net:sid.inpe.br/mtc-m21b/2016/04.20.19.30.18-0
network_acronym_str INPE
network_name_str Biblioteca Digital de Teses e Dissertações do INPE
spelling info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisREACTOR: Combining static analysis, testing and reverse engineering to detect software defectsREACTOR: Combinando análise estática, teste de software e engenharia reversa para detecção de defeitos de software2016-05-02Valdivino Alexandre de Santiago JúniorNandamudi Lankalapalli VijaykumarGilberto Ribeiro de QueirozDaniela Leal MusaElcio Hideiti ShiguemoriAlessandro Oliveira ArantesInstituto Nacional de Pesquisas Espaciais (INPE)Programa de Pós-Graduação do INPE em Computação AplicadaINPEBRstatic code analysissoftware testingreverse engineeringtest case generationtest oracleanálise estática de código fontetestes de softwareengenharia reversageração de caso de testeoráculo de testeIt is increasingly common the use of computer systems to replace human labor in critical systems, and since these systems have become more autonomous in decision making, they demand a high degree of quality and robustness. INPE develops embedded systems for scientific satellites and stratospheric balloons; consequently, the process of verification and validation require special care in detecting and preventing defects. In terms of complexity and system${'}$s domain in question, these processes consume specialists manpower for a long period. In this scenario, the application of techniques that can automatically support test process provide a significant gain in specialists productivity and efficiency. For this purpose, this work performs the source code reverse engineering in order to support a combination of two V\&V processes, static source code analysis and software testing, in order to detect a wider range of defects. The proposed method, called REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complements the traditional way that static code analyzers work by using dynamic information obtained by an automated test case generator, which combines three different black box techniques, being also possible to infer a set of estimated expected results similar to a test oracle. However, the combination of such techniques is not trivial, especially in terms of tasks that commonly demand some action that are not easily automated. Furthermore, the static analysis by itself can not reveal several types of defects that can only be detected by combining static analysis and dynamic information. The REACTOR method has been implemented in a software tool, also called REACTOR, which exempts from a large manual labors amount from testers by automating the process and basing only on applications source code. In addition, REACTOR was applied to some case studies including one of the space application domain, and it performed better than three other well known static code analyzers.É cada vez mais comum a utilização de sistemas computacionais em substituição à mão de obra humana em sistemas críticos, e na medida em que estes sistemas têm se tornado mais autônomos para tomar decisões, eles exigem um alto grau de qualidade e robustez. O INPE desenvolve sistemas embarcados para satélites científicos e balões estratosféricos; consequentemente, os processos de verificação e validação exigem cuidados especiais na detecção e prevenção de defeitos. E tendo em vista a complexidade e o domínio dos sistemas em questão, estes processos consomem a mão de obra especialista por um longo período. Neste cenário, a aplicação de técnicas que possam efetuar testes de forma automática auxiliam o processo proporcionando um ganho significativo de produtividade e eficácia no trabalho dos especialistas. Com esse objetivo, este trabalho realiza a engenharia reversa de código-fonte de modo a combinar dois processos de V\&V, análise estática de código fonte e teste de software, a fim de detectar uma gama mais ampla de defeitos. O método proposto, denominado REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complementa a maneira tradicional pela qual os analisadores de código estático trabalham usando informações dinâmicas obtidas por um gerador de caso de teste automatizado, que combina três técnicas de caixa preta diferentes, sendo também possível inferir um conjunto de resultados esperados estimados similar a um oráculo de teste. Ainda assim, a leitura do código fonte estático por si só pode não revelar vários tipos de defeitos que só podem ser detectados combinando a análise estática com informação dinâmica. O método REACTOR foi implementado em uma ferramenta de software, também chamado de REACTOR, que poupa os testadores de um grande volume de trabalho manual automatizando o processo e baseando-se apenas no código fonte. Além disso, a REACTOR foi aplicada em alguns casos de estudo incluindo uma aplicação da área espacial, e seu desempenho foi melhor do que outras três conhecidos analisadores de código estático.http://urlib.net/sid.inpe.br/mtc-m21b/2016/04.20.19.30info:eu-repo/semantics/openAccessengreponame:Biblioteca Digital de Teses e Dissertações do INPEinstname:Instituto Nacional de Pesquisas Espaciais (INPE)instacron:INPE2021-07-31T06:55:04Zoai:urlib.net:sid.inpe.br/mtc-m21b/2016/04.20.19.30.18-0Biblioteca Digital de Teses e Dissertaçõeshttp://bibdigital.sid.inpe.br/PUBhttp://bibdigital.sid.inpe.br/col/iconet.com.br/banon/2003/11.21.21.08/doc/oai.cgiopendoar:32772021-07-31 06:55:05.387Biblioteca Digital de Teses e Dissertações do INPE - Instituto Nacional de Pesquisas Espaciais (INPE)false
dc.title.en.fl_str_mv REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
dc.title.alternative.pt.fl_str_mv REACTOR: Combinando análise estática, teste de software e engenharia reversa para detecção de defeitos de software
title REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
spellingShingle REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
Alessandro Oliveira Arantes
title_short REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
title_full REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
title_fullStr REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
title_full_unstemmed REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
title_sort REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
author Alessandro Oliveira Arantes
author_facet Alessandro Oliveira Arantes
author_role author
dc.contributor.advisor1.fl_str_mv Valdivino Alexandre de Santiago Júnior
dc.contributor.advisor2.fl_str_mv Nandamudi Lankalapalli Vijaykumar
dc.contributor.referee1.fl_str_mv Gilberto Ribeiro de Queiroz
dc.contributor.referee2.fl_str_mv Daniela Leal Musa
dc.contributor.referee3.fl_str_mv Elcio Hideiti Shiguemori
dc.contributor.author.fl_str_mv Alessandro Oliveira Arantes
contributor_str_mv Valdivino Alexandre de Santiago Júnior
Nandamudi Lankalapalli Vijaykumar
Gilberto Ribeiro de Queiroz
Daniela Leal Musa
Elcio Hideiti Shiguemori
dc.description.abstract.por.fl_txt_mv It is increasingly common the use of computer systems to replace human labor in critical systems, and since these systems have become more autonomous in decision making, they demand a high degree of quality and robustness. INPE develops embedded systems for scientific satellites and stratospheric balloons; consequently, the process of verification and validation require special care in detecting and preventing defects. In terms of complexity and system${'}$s domain in question, these processes consume specialists manpower for a long period. In this scenario, the application of techniques that can automatically support test process provide a significant gain in specialists productivity and efficiency. For this purpose, this work performs the source code reverse engineering in order to support a combination of two V\&V processes, static source code analysis and software testing, in order to detect a wider range of defects. The proposed method, called REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complements the traditional way that static code analyzers work by using dynamic information obtained by an automated test case generator, which combines three different black box techniques, being also possible to infer a set of estimated expected results similar to a test oracle. However, the combination of such techniques is not trivial, especially in terms of tasks that commonly demand some action that are not easily automated. Furthermore, the static analysis by itself can not reveal several types of defects that can only be detected by combining static analysis and dynamic information. The REACTOR method has been implemented in a software tool, also called REACTOR, which exempts from a large manual labors amount from testers by automating the process and basing only on applications source code. In addition, REACTOR was applied to some case studies including one of the space application domain, and it performed better than three other well known static code analyzers.
É cada vez mais comum a utilização de sistemas computacionais em substituição à mão de obra humana em sistemas críticos, e na medida em que estes sistemas têm se tornado mais autônomos para tomar decisões, eles exigem um alto grau de qualidade e robustez. O INPE desenvolve sistemas embarcados para satélites científicos e balões estratosféricos; consequentemente, os processos de verificação e validação exigem cuidados especiais na detecção e prevenção de defeitos. E tendo em vista a complexidade e o domínio dos sistemas em questão, estes processos consomem a mão de obra especialista por um longo período. Neste cenário, a aplicação de técnicas que possam efetuar testes de forma automática auxiliam o processo proporcionando um ganho significativo de produtividade e eficácia no trabalho dos especialistas. Com esse objetivo, este trabalho realiza a engenharia reversa de código-fonte de modo a combinar dois processos de V\&V, análise estática de código fonte e teste de software, a fim de detectar uma gama mais ampla de defeitos. O método proposto, denominado REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complementa a maneira tradicional pela qual os analisadores de código estático trabalham usando informações dinâmicas obtidas por um gerador de caso de teste automatizado, que combina três técnicas de caixa preta diferentes, sendo também possível inferir um conjunto de resultados esperados estimados similar a um oráculo de teste. Ainda assim, a leitura do código fonte estático por si só pode não revelar vários tipos de defeitos que só podem ser detectados combinando a análise estática com informação dinâmica. O método REACTOR foi implementado em uma ferramenta de software, também chamado de REACTOR, que poupa os testadores de um grande volume de trabalho manual automatizando o processo e baseando-se apenas no código fonte. Além disso, a REACTOR foi aplicada em alguns casos de estudo incluindo uma aplicação da área espacial, e seu desempenho foi melhor do que outras três conhecidos analisadores de código estático.
description It is increasingly common the use of computer systems to replace human labor in critical systems, and since these systems have become more autonomous in decision making, they demand a high degree of quality and robustness. INPE develops embedded systems for scientific satellites and stratospheric balloons; consequently, the process of verification and validation require special care in detecting and preventing defects. In terms of complexity and system${'}$s domain in question, these processes consume specialists manpower for a long period. In this scenario, the application of techniques that can automatically support test process provide a significant gain in specialists productivity and efficiency. For this purpose, this work performs the source code reverse engineering in order to support a combination of two V\&V processes, static source code analysis and software testing, in order to detect a wider range of defects. The proposed method, called REACTOR (Reverse Engineering for stAtic Code analysis and Testing to detect sOftwaRe defects), complements the traditional way that static code analyzers work by using dynamic information obtained by an automated test case generator, which combines three different black box techniques, being also possible to infer a set of estimated expected results similar to a test oracle. However, the combination of such techniques is not trivial, especially in terms of tasks that commonly demand some action that are not easily automated. Furthermore, the static analysis by itself can not reveal several types of defects that can only be detected by combining static analysis and dynamic information. The REACTOR method has been implemented in a software tool, also called REACTOR, which exempts from a large manual labors amount from testers by automating the process and basing only on applications source code. In addition, REACTOR was applied to some case studies including one of the space application domain, and it performed better than three other well known static code analyzers.
publishDate 2016
dc.date.issued.fl_str_mv 2016-05-02
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
status_str publishedVersion
format doctoralThesis
dc.identifier.uri.fl_str_mv http://urlib.net/sid.inpe.br/mtc-m21b/2016/04.20.19.30
url http://urlib.net/sid.inpe.br/mtc-m21b/2016/04.20.19.30
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Instituto Nacional de Pesquisas Espaciais (INPE)
dc.publisher.program.fl_str_mv Programa de Pós-Graduação do INPE em Computação Aplicada
dc.publisher.initials.fl_str_mv INPE
dc.publisher.country.fl_str_mv BR
publisher.none.fl_str_mv Instituto Nacional de Pesquisas Espaciais (INPE)
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações do INPE
instname:Instituto Nacional de Pesquisas Espaciais (INPE)
instacron:INPE
reponame_str Biblioteca Digital de Teses e Dissertações do INPE
collection Biblioteca Digital de Teses e Dissertações do INPE
instname_str Instituto Nacional de Pesquisas Espaciais (INPE)
instacron_str INPE
institution INPE
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações do INPE - Instituto Nacional de Pesquisas Espaciais (INPE)
repository.mail.fl_str_mv
publisher_program_txtF_mv Programa de Pós-Graduação do INPE em Computação Aplicada
contributor_advisor1_txtF_mv Valdivino Alexandre de Santiago Júnior
_version_ 1706809358473494528