REACTOR: Combining static analysis, testing and reverse engineering to detect software defects
Autor(a) principal: | |
---|---|
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 |