Carla I. M. Bezerra

79 papers A 3B 3C 4Journal 12Unranked 54
YearRankTypeTitle / Venue / Authors
2025 conf
SBES
Rafael Rocha, Eronildo Junior, Tássio Virgínio, Larissa Rocha, Carla I. M. Bezerra, Ivan Machado
2025 conf
SBES
Publio Silva, Carla I. M. Bezerra, Ivan Machado, Márcio Ribeiro
2025 J jnl
Inf. Softw. Technol.
Maykon Nunes, Carla I. M. Bezerra, Fabio Ferreira, Bruno Gois Mateus, Marco Túlio Valente
2025 conf
SEAA (2)
Railana Santana, Luana Almeida Martins, Larissa Rocha, Carla I. M. Bezerra, Heitor A. X. Costa, Ivan do Carmo Machado
2025 conf
SBSI
Francisco Victor da Silva Pinheiro, Emanuel F. Coutinho, Ronier da S. Lima, Maria Erilane Lima da Silva, Carla I. M. Bezerra, Rossana M. C. Andrade
2025 conf
SBSI
Arthur Bueno, Carla I. M. Bezerra, Hudson Silva Borges, Bruno B. P. Cafeo, Maria Istela Cagnin, Awdren L. Fontão
2025 conf
SBES
Jhonatan Oliveira, Luigi Mateus, Gabriel Amaral, Tássio Virgínio, Carla I. M. Bezerra, Ivan Machado, Larissa Soares
2025 conf
SBES
Gabriel Amaral, Henrique Gomes Nunes, Eduardo Figueiredo, Carla I. M. Bezerra, Larissa Rocha
2025 A conf
EASE
Victor Anthony Alves, Carla I. M. Bezerra, Ivan do Carmo Machado, Larissa Rocha, Tássio Virgínio, Publio Silva
2025 J jnl
CoRR
Victor Anthony Alves, Carla I. M. Bezerra, Ivan do Carmo Machado, Larissa Soares, Tássio Virgínio, Publio Silva
2025 conf
SBES
Ruben Blenicio Tavares Silva, Publio Silva, Carla I. M. Bezerra, Anderson G. Uchôa, Alessandro Garcia
2024 conf
SBSI
Francisco Victor da Silva Pinheiro, Emanuel F. Coutinho, Maria Erilane Lima da Silva, Carla I. M. Bezerra
2024 conf
IHC
Aline Souza, José Cezar de Souza Filho, Carla I. M. Bezerra, Victor Anthony Alves, Lara Lima, Anna Beatriz Marques, Ingrid Teixeira Monteiro
2024 conf
SBES
Carla I. M. Bezerra, Victor Anthony Alves, António Lobo, João Paulo Queiroz, Lara Lima, Paulo Meirelles
2024 conf
SBSI
Aurislânia Pereira, Carla I. M. Bezerra, Emanuel F. Coutinho
2024 conf
SBES
Victor Anthony Alves, Cristiano Santos, Carla I. M. Bezerra, Ivan Machado
2024 conf
SAST
Pedro Anderson Costa Martins, Victor Anthony Alves, Iraneide Lima, Carla I. M. Bezerra, Ivan Machado
2024 conf
SBQS
Tássio Virgínio, Larissa Bastos, Carla I. M. Bezerra, Márcio Ribeiro, Ivan Machado
2024 J jnl
J. Softw. Eng. Res. Dev.
Darwin Pinheiro, Carla I. M. Bezerra, Anderson G. Uchôa
2024 conf
SBES
Publio Blenilio Tavares Silva, Carla I. M. Bezerra, Ivan Machado
2023 conf
SBCARS
Rafael Lima, Carla I. M. Bezerra, Ivan Machado
2023 J jnl
J. Syst. Softw.
Publio Silva, Carla I. M. Bezerra, Ivan Machado
2023 conf
SBES
Marcos Silva, Maykon Nunes, Carla I. M. Bezerra, Anderson G. Uchôa, Mairieli Wessel
2023 conf
SBES
Érica Miranda Sousa, Carla I. M. Bezerra, Ivan Machado
2023 conf
SAST
Denivan Campos, Luana Almeida Martins, Carla I. M. Bezerra, Ivan Machado
2023 J jnl
CoRR
Larissa Soares, Edna Dias Canedo, Claudia Pinto Pereira, Carla I. M. Bezerra, Fabiana Freitas Mendes
2023 J jnl
J. Softw. Eng. Res. Dev.
Carla I. M. Bezerra, Emanuel F. Coutinho
2023 ed.
SBQS
Edna Dias Canedo, Daniel de Paula Porto, Fábio Lúcio Lopes de Mendonça, Rafael Timóteo de Sousa Júnior, Monalessa Perini Barcellos, Ismayle de Sousa Santos, Sheila S. Reinehr, Sérgio Soares, Uirá Kulesza, Érica Ferreira de Souza, Adriano Albuquerque, Carla I. M. Bezerra, Rodrigo Pereira dos Santos, Alessandro F. Garcia, Simone Dornelas Costa, Adolfo Gustavo Serra Seca Neto
2023 A conf
ICSA
Lucas F. Mendes, Paulo A. C. Aguilar, Carla I. M. Bezerra
2023 J jnl
J. Softw. Eng. Res. Dev.
Humberto Damasceno, Carla I. M. Bezerra, Denivan Campos, Ivan Machado, Emanuel F. Coutinho
2023 conf
SBCARS
Gustavo Silva, Carla I. M. Bezerra, Anderson G. Uchôa, Ivan Machado
2023 ed.
VEM
Carla I. M. Bezerra, Paulo Meirelles
2022 J jnl
J. Interact. Syst.
Francisco Victor da Silva Pinheiro, Emanuel Ferreira Coutinho, Ítalo Santos, Carla I. M. Bezerra
2022 conf
SBQS
Humberto Damasceno, Carla I. M. Bezerra, Emanuel F. Coutinho, Ivan Machado
2022 conf
SBES
Antonio Neto, Carla I. M. Bezerra, Júlio Serafim Martins
2022 conf
VEM
Ruben Blenicio Tavares Silva, Carla I. M. Bezerra
2022 conf
VEM
Carla I. M. Bezerra, Humberto Damasceno, João Teixeira
2022 ed.
SBQS
Edna Dias Canedo, Davi Viana, Vinicius C. Garcia, Carla I. M. Bezerra, Ismayle de Sousa Santos, Bruno Gadelha, Ivan Machado, Sérgio Soares, Uirá Kulesza, Breno de França, Tayana Conte, José Carlos Maldonado, Sheila S. Reinehr, Andreia Malucelli, Adriano Bessa Albuquerque, Gleison Santos, Monalessa Perini Barcellos, Rodrigo Pereira dos Santos, Crescencio Lima, Danilo Monteiro, Adriana Damian, Larissa Rocha
2022 conf
SBQS
Carla I. M. Bezerra, Emanuel F. Coutinho
2022 conf
WER
João Victor Rocha Araújo, Carla I. M. Bezerra, Andréia Libório Sampaio
2021 conf
SBQS
Maike Bezerra da Silva, Carla I. M. Bezerra, Emanuel F. Coutinho, Paulo Henrique M. Maia
2021 conf
SPLC (A)
Publio Silva, Carla I. M. Bezerra, Ivan Machado
2021 J jnl
CoRR
Luan P. Lima, Lincoln S. Rocha, Carla I. M. Bezerra, Matheus Paixão
2021 J jnl
Empir. Softw. Eng.
Luan P. Lima, Lincoln S. Rocha, Carla I. M. Bezerra, Matheus Paixão
2021 conf
SBES
Carla I. M. Bezerra, Rafael Lima, Publio Silva
2021 conf
SBES
Carla I. M. Bezerra, Emanuel F. Coutinho, Amarildo Araujo
2021 conf
SBES
Júlio Serafim Martins, Carla I. M. Bezerra, Anderson G. Uchôa, Alessandro F. Garcia
2021 conf
SBES
Luana Almeida Martins, Carla I. M. Bezerra, Heitor A. X. Costa, Ivan Machado
2020 conf
SBCARS
Antonio Welligton Abreu, Emanuel F. Coutinho, Carla I. M. Bezerra
2020 conf
SBES
Igor R. Alencar, Emanuel F. Coutinho, Leonardo O. Moreira, Carla I. M. Bezerra
2020 J jnl
J. Braz. Comput. Soc.
Emanuel F. Coutinho, Carla I. M. Bezerra
2020 C conf
EATIS
Paulo Miranda e Silva Sousa, José Robertty de Freitas Costa, Emanuel F. Coutinho, Carla I. M. Bezerra
2020 conf
SBES
Ruben Blenicio Tavares Silva, Carla I. M. Bezerra
2020 C conf
EATIS
Joao Victor Oliveira Farias, Emanuel F. Coutinho, Carla I. M. Bezerra
2020 conf
SBES
Júlio Serafim Martins, Carla I. M. Bezerra, Anderson G. Uchôa, Alessandro Garcia
2020 conf
SBCARS
Publio Silva, Carla I. M. Bezerra, Rafael Lima, Ivan Machado
2020 A conf
ICSME
Anderson G. Uchôa, Caio Barbosa, Willian Nalepa Oizumi, Publio Blenilio, Rafael Lima, Alessandro F. Garcia, Carla I. M. Bezerra
2020 conf
SBES
Carla I. M. Bezerra, José Cezar de Souza Filho, Emanuel F. Coutinho, Alice Gama, Ana Lívia Ferreira, Gabriel Leitão de Andrade, Carlos Eduardo Feitosa
2020 C conf
EATIS
Emanuel F. Coutinho, Mauricio Moreira Neto, Antonio Welligton Abreu, Leonardo O. Moreira, Carla I. M. Bezerra, Gabriel Paillard, José Neuman de Souza
2020 conf
ICSA Companion
Emanuel F. Coutinho, Diogo Eliseu Paulo, Antonio Welligton Abreu, Carla I. M. Bezerra
2020 conf
VEM
Luan P. Lima, Anderson G. Uchôa, Carla I. M. Bezerra, Emanuel F. Coutinho, Lincoln S. Rocha
2019 conf
SBES
Emanuel F. Coutinho, Ítalo Santos, Leonardo O. Moreira, Carla I. M. Bezerra
2019 conf
SBES
Davi Cedraz S. de Oliveira, Carla I. M. Bezerra
2019 conf
SBES
Amanda Oliveira de Sousa, Carla I. M. Bezerra, Rossana M. C. Andrade, José M. S. M. Filho
2019 conf
SBQS
Amanda Oliveira de Sousa, Anderson G. Uchôa, Eduardo Fernandes, Carla I. M. Bezerra, José Maria Monteiro, Rossana M. C. Andrade
2018 conf
VaMoS
Carla I. M. Bezerra, Rossana M. C. Andrade, José Maria S. Monteiro, Davi Cedraz S. de Oliveira
2018 conf
SBCARS
Jefferson Barbosa, Rossana M. C. Andrade, João Bosco Ferreira Filho, Carla I. M. Bezerra, Isaac Barreto, Rafael Capilla
2017 B conf
ICSR
Anderson G. Uchôa, Luan P. Lima, Carla I. M. Bezerra, José Maria Monteiro, Rossana M. C. Andrade
2017 conf
HCI (21)
Rainara M. Carvalho, Rossana M. C. Andrade, Jefferson Barbosa, Adyson Magalhães Maia, Belmondo Rodrigues Aragão Junior, Paulo A. C. Aguilar, Carla I. M. Bezerra, Káthia M. de Oliveira
2017 J jnl
J. Syst. Softw.
Carla I. M. Bezerra, Rossana M. C. Andrade, José Maria Monteiro
2017 conf
SBQS
Carla I. M. Bezerra, Rossana M. C. Andrade, José Maria Monteiro
2017 B conf
ICSR
Anderson G. Uchôa, Carla I. M. Bezerra, Ivan do Carmo Machado, José Maria Monteiro, Rossana M. C. Andrade
2016 B conf
SPLC
Carla I. M. Bezerra, Jefferson Barbosa, Joao Holanda Freires, Rossana M. C. Andrade, José Maria Monteiro
2016 conf
ICEIS (1)
Léuson M. P. da Silva, Carla I. M. Bezerra, Rossana M. C. Andrade, José Maria S. Monteiro
2016 C conf
EATIS
Emerson B. Pinheiro, Emanuel Ferreira Coutinho, Leonardo O. Moreira, Carla I. M. Bezerra, Gabriel Antoine Louis Paillard
2013 conf
SBQS
Carla I. M. Bezerra, José Maria Monteiro, Rossana M. C. Andrade
2013 conf
SBSI
Ismayle S. Santos, Carla I. M. Bezerra, Gustavo S. Monteiro, Italo Linhares de Araújo, Thalisson Oliveira, Rainara Maia Santos, Valéria Lelli Leitão Dantas, Rossana M. C. Andrade
2012 conf
SugarLoafPLoP
Mirla R. R. Braga, Carla I. M. Bezerra, José Maria Monteiro, Rossana M. C. Andrade
2012 conf
SugarLoafPLoP
Emanuel F. Coutinho, Carla I. M. Bezerra, Rossana M. C. Andrade, José Neuman de Souza
tests/unit/test_extractor_registry.py
← Index tests/unit/test_extractor_registry.py python
"""
Unit tests for the extractor registry (redb/extractor_registry.py).

Verifies that all file-type groups load correctly, return the expected
extractors, and that lookup/filtering logic works as intended.
"""
import pytest

from redb.extractor_registry import (
    get_filetype_modules,
    get_extractor_class,
    FILETYPE_TO_GROUP,
    _REGISTRY,
)

pytestmark = [pytest.mark.unit]


# ============================================================================
# get_filetype_modules — group loading
# ============================================================================

class TestGetFiletypeModules:

    @pytest.mark.parametrize("filetype,expected_names", [
        ("pebin", [
            "PEFeaturesExtractor", "PEImportExtractor", "PEResourceExtractor",
            "PEOverlayExtractor", "PESectionExtractor", "PESignatureExtractor",
            "PEExtraFindings", "PEInconstistencyTestsExtractor", "PEDotNetExtractor",
        ]),
        ("elf", [
            "ELFFeaturesExtractor", "ELFSegmentExtractor", "ELFSectionExtractor",
            "ELFDependencyExtractor", "ELFSymbolExtractor", "ELFImportExtractor",
            "ELFExportExtractor", "ELFRelocationExtractor", "ELFNotesExtractor",
        ]),
        ("macho", [
            "MachOFeaturesExtractor", "MachOSegmentExtractor",
            "MachOImportExtractor", "MachOExportExtractor",
            "MachODylibExtractor", "MachOSignatureExtractor",
        ]),
        ("apk", [
            "APKFeaturesExtractor", "APKManifestExtractor",
            "APKPermissionsExtractor", "APKSignatureExtractor",
            "APKDexExtractor", "APKResourceExtractor",
            "APKNativeLibExtractor", "APKInconsistencyTestsExtractor",
        ]),
    ])
    def test_loads_all_extractors_for_filetype(self, filetype, expected_names):
        """Each filetype group should return all its registered extractors."""
        modules = get_filetype_modules(filetype)
        names = [m.__name__ for m in modules]
        for expected in expected_names:
            assert expected in names, f"{expected} missing from {filetype} modules"

    def test_apk_excludes_decompilers(self):
        """get_filetype_modules should not include DecompileAPK."""
        modules = get_filetype_modules("apk")
        names = [m.__name__ for m in modules]
        assert "DecompileAPK" not in names

    def test_unknown_filetype_returns_empty(self):
        """An unrecognized filetype should return an empty list."""
        assert get_filetype_modules("unknown_format") == []

    def test_returned_classes_are_callable(self):
        """All returned extractor classes should be callable (i.e., actual classes)."""
        for filetype in FILETYPE_TO_GROUP:
            for cls in get_filetype_modules(filetype):
                assert callable(cls), f"{cls} is not callable"


# ============================================================================
# get_extractor_class — single lookup
# ============================================================================

class TestGetExtractorClass:

    def test_finds_pe_extractor(self):
        cls = get_extractor_class("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_finds_elf_extractor(self):
        cls = get_extractor_class("ELFSectionExtractor")
        assert cls is not None
        assert cls.__name__ == "ELFSectionExtractor"

    def test_finds_macho_extractor(self):
        cls = get_extractor_class("MachOSignatureExtractor")
        assert cls is not None
        assert cls.__name__ == "MachOSignatureExtractor"

    def test_finds_apk_extractor(self):
        cls = get_extractor_class("APKDexExtractor")
        assert cls is not None
        assert cls.__name__ == "APKDexExtractor"

    def test_finds_decompile_apk(self):
        cls = get_extractor_class("DecompileAPK")
        assert cls is not None
        assert cls.__name__ == "DecompileAPK"

    def test_returns_none_for_unknown(self):
        assert get_extractor_class("NonExistentExtractor") is None


# ============================================================================
# Registry completeness
# ============================================================================

class TestRegistryCompleteness:

    def test_all_filetypes_have_registry_group(self):
        """Every filetype in FILETYPE_TO_GROUP should map to a valid registry group."""
        for filetype, group in FILETYPE_TO_GROUP.items():
            assert group in _REGISTRY, f"filetype {filetype} maps to unknown group {group}"

    def test_all_registry_groups_are_reachable(self):
        """Every registry group should be reachable via at least one filetype."""
        reachable = set(FILETYPE_TO_GROUP.values())
        for group in _REGISTRY:
            assert group in reachable, f"registry group {group} has no filetype mapping"


# ============================================================================
# Integration with workers.get_module_by_name
# ============================================================================

class TestWorkersGetModuleByName:

    def test_resolves_common_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("BasicPropertiesExtractor")
        assert cls is not None
        assert cls.__name__ == "BasicPropertiesExtractor"

    def test_resolves_type_specific_extractor(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("PEFeaturesExtractor")
        assert cls is not None
        assert cls.__name__ == "PEFeaturesExtractor"

    def test_resolves_decompile_apk(self):
        from redb.workers import get_module_by_name
        cls = get_module_by_name("DecompileAPK")
        assert cls is not None

    def test_returns_none_for_unknown(self):
        from redb.workers import get_module_by_name
        assert get_module_by_name("BogusExtractor") is None