Claudinei Brito Junior

São Carlos/SP - Brasil claudineibjr@hotmail.com


Sou um desenvolvedor de software apaixonado por tecnologia, inovação, bom código e qualidade. Desde criança sempre notei a importância da tecnologia no cotidiano e naquela epoca eu acreditava que dia a dia estaríamos ainda mais imersos e dependentes deste nesses mundo de tecnologia. Não tive dúvidas ao escolher a carreira que pretendia seguir e hoje me sinto lisongeado em atuar nesta área e saber que o código que eu escrevo resolve o problema de alguém, e assim, transforma sua vida para melhor.

Sou bacharel em Ciência da Computação (2014 - 2017) pelo Centro Universitário Euripedes de Marília (Marília/SP) e aluno de mestrado do Instituto de Ciências Matemáticas e Computacionais (ICMC) da Universidade de São Paulo (USP) em São Carlos/SP. Concomitante à minha carreira profissional, desenvolvo minha carreira acadêmica com pesquisas na área de Engenharia de Software, com foco em Teste de Software.

Minha carreira profissional se resume a apenas duas empresas, mas diversos cargos. Comecei trabalhando no suporte técnico de ERP, atuei na equipe de produtos, teste e verificação de software e desde então trabalho como desenvolvedor de software. Atualmente trabalho como desenvolvedor mobile, utilizando o Flutter para criar aplicativos híbridos, para Android e iOS.


Formação acadêmica

Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo - São Carlos/SP

Mestrado em Ciências da Computação - Engenharia de Software
Qualificação do Projeto de Mestrado: Uma abordagem para localização de mutantes minimais baseada na estrutura do código fonte.
Março 2018 - Em andamento

Centro Universitário Eurípides de Marília - Marília/SP

Bacharelado em Ciência da Computação
Trabalho de Conclusão de Curso: Implementação de um interpretador de algoritmos na linguagem C que irá auxiliar no processo de aprendizado de programação. Clique aqui para ter acesso à dissertação de qualificação.
Março 2014 - Janeiro 2018

ETEC Monsenhor Antônio Magliano - Garça/SP

Ensino Médio
Janeiro 2011 - Dezembro 2013

Experiência profissional

Mobile Developer

Desenvolvimento de novas funcionalidades do projeto utilizando Flutter/React Native. Participação em cerimônicas Scrum, participação em decisões sobre estimativas de complexidade e tempo sobre o desenvolvimento de novas funcionalidades.

Fevereiro de 2020 - Atual

Estágio Docência - Programação Orientada a Objetos

Auxílio ao professor na disciplina de Programação Orientada a Objetos. Auxílio no desenvolvimento das aulas, nas dúvidas dos alunos, no desenvolvimento e correção de atividades e avaliações.

Fevereiro de 2019 - Junho de 2019
05 meses

Estágio Docência - Introdução a Ciência da Computação para Engenharia Ambiental

Auxílio ao professor na disciplina de Introdução a Ciência da Computação para Engenharia Ambiental. Auxílio no desenvolvimento das aulas, nas dúvidas dos alunos, no desenvolvimento e correção de atividades e avaliações.

Julho de 2018 - Novembro de 2018
05 meses

Desenvolvedor .NET

Desenvolvimento de novas funcionalidades do ERP utilizando a plataforma .NET da Microsoft, nas linguagens C# e Visual Basic.

Outubro de 2017 - Fevereiro de 2018
05 meses

Analista de Teste, Gerente de Treinamento e Capacitação e Gerente de LMS

Avaliação da qualidade de software utilizando Teste Funcional. Treinamento e capacitação de clientes local ou remotamente e novos colaboradores no ERP Dataplace Symphony. Implantação, manutenção e assistência de plataforma de LMS (Learning Managament System), Moodle.

Janeiro de 2016 - Setembro de 2017
01 ano e 09 meses

Suporte Técnico

Suporte técnico no ERP Dataplace Symphony nos segmentos de Compras, Vendas, Finanças, Engenharia de Produção e NFe, além de manutenção de servidores SQLServer, banco de dados SQLServer e scripts em Visual Basic Script.

Abril de 2015 - Dezembro de 2015
09 meses

Estágio em Suporte Técnico

Suporte técnico no ERP Dataplace Symphony nos segmentos de Compras, Vendas, Finanças, Engenharia de Produção e NFe.

Fevereiro de 2014 - Março de 2015
01 ano e 01 mês

Habilidades técnicas

Alguns frameworks, bibliotecas e linguagens que já trabalhei ou trabalho atualmente. Os frameworks, bibliotecas e linguagens listados são os que por mais tempo trabalhei durante minha carreira e onde tenho me aperfeiçoado.

Flutter


React Native


React JS


Android/Java


Firebase


GraphQL


Python



Portfólio

Websites, aplicativos móveis e projetos de maior relevância que já desenvolvi

Rede Social fictícia

Rede social fictícia contendo: Controle de usuários (Login e Cadastro), criação, visualização e edição de posts com e sem imagens. Repositório: https://github.com/claudineibjr/SocialNetwork. Projeto rodando: http://claudineibjr.github.io/SocialNetwork
Tecnologias utilizadas: JavaScript, ReactJS, Redux, Firebase Authentication, Firebase Realtime Database, Firebase Storage

Classificação de mutantes - Aprendizado de máquina

Repositório contendo scripts python para analizar a relação entre a incidência de equivalência ou pertencimento aos mutantes minimais, o grafo de fluxo de controle e diversas outras propriedades de mutantes. https://github.com/claudineibjr/RelationshipBetweenMutationAndGFC
Tecnologias utilizadas: Python e módulos de classificação utilizando Aprendizado de Máquina do pacote sklearn

Quiz da Bíblia

Ideia de aplicativo desenvolvida em 3 plataformas diferentes (para estudo): Android (Java), Ionic 3 e React Native
Projeto desenvolvido em diferentes tecnologias. Tecnologias utilizadas: JavaScript, TypeScript, Java, NodeJS, GraphQL, Google Firebase Realtime Database, Google Firebase Authentication, Google Firebase Functions e Github Pages
.

Casos de teste - JabRef

Repositório contendo alterações realizadas nos casos de teste do projeto Jabref, uma ferramenta open-source, multi-plataforma para gerenciamento de referências e citações em trabalhos acadêmicos. https://github.com/claudineibjr/jabref
Tecnologias utilizadas: JavaScript, TypeScript, Github Pages, Google Firebase Realtime Database, Google Firebase Authentication.
Clique aqui para acessar diretamente os casos de teste criados.

Learning 2 Program - https://github.com/claudineibjr/Learning2Program/

Trabalho de conclusão de graduação em Ciência da Computação.
Tecnologias utilizadas: JavaScript, TypeScript, Github Pages, Google Firebase Realtime Database, Google Firebase Authentication.
Clique aqui para acessar o aplicativo em funcionamento.

Cursos, eventos e certificados

The Complete 2020 Flutter Development Bootcamp with Dart

Concluído em Agosto de 2020

Clique aqui para visualizar o certificado.

Participação no The Developers Conference 2020 - Florianópolis

24 a 26 de Junho de 2020 - Online

Participação nas trilhas:

Programação Python para Ciência de Dados

Concluído em Março de 2020

Clique aqui para visualizar o certificado.

Modern React with Redux [2019 Update]

Concluído em Janeiro de 2020

Clique aqui para visualizar o certificado.

Curso completo de Desenvolvimento Web - Crie 6 projetos

Concluído em Dezembro de 2019

Clique aqui para visualizar o certificado.

Desenvolvimento Android - Aprenda a criar 15 apps

Concluído em Dezembro de 2019

Clique aqui para visualizar o certificado.


Palestras, minicursos e aulas

Uma abordagem para localização de mutantes minimais e equivalentes baseada na estrutura do código fonte

Apresentação de artigo realizada no Workshop de Teses e Dissertações em Qualidade de Software (WTDQS), workshop do Simpósio Brasileiro de Qualidade de Software (SBQS)

Clique aqui para acessar os slides da apresentação.

Introdução ao Git

Aula teórica e prática ministrada às turmas de Bacharelado em Ciência da Computação, Bacharelado em Ciência da Computação e Engenharia da Computador da Universidade de São Paulo (USP, São Carlos) durante a disciplina de Engenharia de Software.

Clique aqui para acessar os slides da aula.

Minicurso - Técnicas de Teste e Automatização do Teste de Unidade

Minicurso ministrado durante a XII Semana de Tecnologia da Informação (SEMANATI 2019) na UNIVEM - Marília/SP.

Clique aqui para acessar os slides do minicurso.

Desenvolvimento de aplicativos móveis para Android utilizando Java

Aula teórica e prática ministrada à turmas de Bacharelado em Ciência da Computação da Universidade de São Paulo (USP, São Carlos) durante a disciplina de Programação Orientada a Objetos.

Clique aqui para acessar os slides da aula 1 de 3. Clique aqui para acessar os slides da aula 2 de 3. Clique aqui para acessar os slides da aula 3 de 3.


Pesquisa científica

C. B. Junior, V. H. S. Durelli, R. S. Durelli, S. R. S. d. Souza, A. M. R. Vincenzi and M. E. Delamaro, "A Preliminary Investigation into Using Machine Learning Algorithms to Identify Minimal and Equivalent Mutants," 2020 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Porto, Portugal, 2020, pp. 304-313

Clique aqui para acessar o artigo.

Abstract: Two issues that have been hampering the widespread adoption of mutation testing are redundant and equivalent mutants. Minimal mutation has been recently introduced to mitigate these two issues by generating and selecting only a subset of non-redundant mutants. Equivalent mutants are syntactically different from the original program, but functionally identical, so it is impossible to come up with test data capable of making equivalent mutants behave differently from the original program under test. In order to mitigate the cost of applying mutation testing, we set out to investigate how machine learning algorithms that generate predictive models can be used to classify mutants as belonging to the minimal set or equivalent. More specifically, we extract a set of features (i.e., properties) from programs, mutants, and test cases, which in turn serve as input to the creation of predictive models. To shed some light on the effectiveness of our approach, we carried out an experiment in which we trained seven different machine learning classifiers, the best of which obtained 81.88% and 80.30% accuracy to classify minimal and equivalent mutants, respectively. Results from our experiment would seem to indicate that our approach can effectively mitigate some of the costs associated with mutation testing by relying on the identification of minimal sets and equivalent mutants.

ALVES DE ANDRADE, STEVAO ; SANTOS, ITALO ; BRITO JUNIOR, CLAUDINEI; JUNIOR, MISAEL ; R.S. DE SOUZA, SIMONE ; E. DELAMARO, MARCIO . On Applying Metamorphic Testing: An Empirical Study on Academic Search Engines. In: 2019 IEEE/ACM 4th International Workshop on Metamorphic Testing (MET), 2019, Montreal. 2019 IEEE/ACM 4th International Workshop on Metamorphic Testing (MET), 2019. p. 9.

Clique aqui para acessar o artigo.

Abstract: Software testing can be a helpful practice to certify the quality of a product. However, there are programs which are hard, if not impossible, to determine the expected outputs. This problem is called the "oracle problem". Metamorphic testing (MT) is an approach that aims to alleviate this problem by setting a series of relations, called metamorphic relations (MRs). This paper applies MT through a user-oriented approach and the following MRs: MPublished, MPTitle, MPShuffleJD and Top1Absent as a strategy for evaluating, verifying, and validating four Academic Search Engines (ASEs): ACM, IEEE, ScienceDirect, and Springer. Therefore, we conducted an experimental study to analyze how MRs can contribute to verifying the correctness of the properties of ASEs. Results indicate that the ASEs have performed differently in their execution for each MR analyzed. This shows that the algorithms of the scientific search engines have different behaviors among the characteristics analyzed. These behaviors may not be properly characterized by a possible failure, but by a simple design choice. On the other hand, the approach is useful for search engine users that need to be sure that the ASEs behave as expected during a search, as the results of secondary studies strongly depend on the correct behavior of the scientific search engine used.

ANDRADE, STEVÃO A. ; BRITO, CLAUDINEI ; JÚNIOR, MISAEL ; MARCIEL, ANA CLAUDIA ; ABDALLA, GABRIEL ; DELAMARO, MÁRCIO E. . Analyzing the effectiveness of One-Op Mutation against the minimal set of mutants. In: the IV Brazilian Symposium, 2019, Salvador. Proceedings of the IV Brazilian Symposium on Systematic and Automated Software Testing - SAST 2019, 2019. p. 22.

Clique aqui para acessar o artigo.

Abstract: Mutation testing is a fault-based criterion that helps testers to evaluate the adequacy of a test set applied to a given program. In order to do that, mutation operators are applied to the software being tested, creating versions with few syntactic deviations from the original program, called mutants. The choice of mutation operator plays an important role when applying mutation testing regarding the test case design and cost analysis. However, some generated mutants are considered as redundant and may be considered unnecessary during mutation testing. This paper addresses this topic and investigates the effectiveness of test suites designed to kill mutants of a specific operator to kill mutants that belong to the minimal set of mutants. We performed an experimental evaluation using a set of 39 programs written in C language. Guided by previous studies, we evaluated the effectiveness of deletion operators, and due to the results, we extended our investigation to all mutant operators. Concerning deletion operators, the results showed that even combining deletion operators, the best mutation score achieved was, on average, 0.460 using the SODL (SSDL + OODL) operator. The following analyses showed that the VDTR operator performed better than the deletion operators both in terms of mutation score and in terms of cost, proving to be the best approach to design test cases that have a higher impact on killing mutants that belong to the minimal set of mutants.