Author Image

Hi, I am Tássio

Tássio Virgínio

Teacher at IFTO - Campus Dianópolis

I am a teacher and passionate software engineer with 14 years of professional experience. I currently work with JSF, JPA and EJB. Supporting the SIGA EPTC system that is used throughout the Federal Institute of Tocantins.

Oracle Certified Professional Java SE 6 Programmer
Scrum Fundamentals Certified
Leadership
Team Work
Hard Working

Skills

Experiences

1
EBTT Teacher
IFTO

Fev 2022 - Present, Dianópolis - TO

The IFTO is an institution of higher, basic and professional education, pluricurricular and multicampi (rector, campus, advanced campus and distance education centers), specialized in offering professional and technological education in different teaching modalities, based on the combination of technical and technological knowledge with their pedagogical/andragogic practices.

Responsibilities:
  • Teach students at basic, technical and higher levels.

Information Technology Technician/Senior Software Engineer
IFTO

Aug 2014 - Fev 2022, Dianópolis-TO / Paraíso do Tocantins-TO

The IFTO is an institution of higher, basic and professional education, pluricurricular and multicampi (rector, campus, advanced campus and distance education centers), specialized in offering professional and technological education in different teaching modalities, based on the combination of technical and technological knowledge with their pedagogical/andragogic practices.

Responsibilities:
  • Systems development using Java language.
  • Responsible for internal systems support.
2

3
Software Engineer
SETAS - Secretaria de Trabalho e Assistência Social

March 2013 - Aug 2014, Palmas-TO

SETAS, a public administration body of the Executive Power created on December 22, 1995, directly and immediately assists the State Government of Tocantins in the performance of its duties to plan, coordinate, guide and execute the State Policy on Social Assistance, Solidarity Economy , Labor and Food Security, aiming at economic and social development.

Responsibilities:
  • Systems development using Java language.

Software Engineer
M2M Solutions S/A

Jul 2009 - Fev 2013, Fortaleza, CE, Brasil

M2M Solutions is a provider of Information Technology solutions for the management and optimization of transport operations, serving bus companies, government, unions and end users. Development of management systems for urban public transport, using geographic data.

Responsibilities:
  • Responsible for the realtime geographic metrics processing system.
  • Technologies used - Java, Scala, Akka, GWT, GXT, Hibernate and Spring.
4

5
Software Engineer
Pitang

Jan 2009 - Jun 2009, Recife, PE, Brasil

Founded in 2004, Pitang was the result of a spinoff from the Commercial Projects area of the C.E.S.A.R., one of the main innovation institutes in the country. We develop high quality services and solutions in Information and Communication Technology, focusing on market demands in an innovative way, through the development of exclusive projects that support the digital transformation of our customers using skills in Cognitive Computing, Digital Experience Platforms, Analytics , Cloud Computing, Mobile Apps, UX, Agility, DevOps and Testing.

Responsibilities:
  • Systems development using Java language and Apache Wicket and Spring frameworks.

Software Engineer (trainee)
Centro de Informática UFPE/Motorola

Jan 2008 - Dez 2008, Fortaleza, CE, Brasil

The UFPE Informatics Center is one of the most renowned centers for teaching and research in computing in Brazil and Latin America, training qualified professionals and excellence in Information and Communication Technology (ICT).

Responsibilities:
  • Automated test development for mobile devices.
6

7
Software Engineer (trainee)
FACAPE

Jan 2005 - Dez 2007, Petrolina, PE, Brasil

The Faculty of Petrolina (FACAPE) was created in the form of a Municipal Autarchy with the name Educational Autarchy of the São Francisco Valley - AEVSF, by municipal law nº 25/76 of July 19, 1976.

Responsibilities:
  • Systems development using Java language and Apache Struts.

Education

Projects

JNose
JNose
Owner

JNose Test is a tool developed to automatically detect test smells in test code, and to collect coverage metrics.

JNose-Jenkins-Plugin
JNose-Jenkins-Plugin
Owner

JNose plugin for Jenkins

M2M Frota
M2M Frota
Developer

Bus fleet management system.

SIGA EPCT
SIGA EPCT
Developer

Integrated Academic Management System for Professional and Technological Education. Developed with JSF, JPA and EJB.

Comtrol Point
Comtrol Point
Owner

A simple time attendance system made with Java, Wicket and Hibernate.

First Step In Agile
First Step In Agile
Owner

Agile project management system, made with Java and Wicket.

Print Server
Print Server
Owner

Print management system with login through LDAP.

Reserva de Recursos
Reserva de Recursos
Owner

Reservation system for laboratories and resources, which can be used in various types of institutions.

Achievements

Best Paper - CIbSE 2022

Melhor Dissertação

Best Paper - SBES 2020

CBSOFT'19 - Web Chairs

Master in Science Computer

Specialist in Agile Software Development

Publications

An empirical evaluation of RAIDE: a semi-automated approach for test smells detection and refactoring - A4

Effective test code refactoring is essential for maintaining the quality and efficiency of software development. Automated support for test code refactoring can significantly enhance its cost-effectiveness. However, there is limited evidence on the effectiveness of such automated support, especially for addressing Assertion Roulette and Duplicate Assert test smells. To address this gap, we present RAIDE, an Eclipse IDE plugin that provides an easy-to-use approach to identifying and refactoring test smells. In this study, we conduct a controlled experiment with twenty participants to evaluate RAIDE’s capability to detect and refactor Assertion Roulette and Duplicate Assert test smells. The results demonstrate that RAIDE outperforms comparable state-of-the-art approaches in detecting test smells, and can detect and refactor test smells in a fraction of the time. Our findings highlight the potential benefits of automated test code refactoring support for improving the efficiency and effectiveness of software development, and suggest avenues for future research to extend and evaluate RAIDE for handling other test smells and refactoring techniques.

Test smells can reduce the developers’ ability to interact with the test code. Refactoring test code offers a safe strategy to handle test smells. However, the manual refactoring activity is not a trivial process, and it is often tedious and error-prone. This study aims to evaluate RAIDE, a tool for automatic identification and refactoring of test smells. We present an empirical assessment of RAIDE, in which we analyzed its capability at refactoring Assertion Roulette and Duplicate Assert test smells and compared the results against both manual refactoring and a state-of-the-art approach. The results show that RAIDE provides a faster and more intuitive approach for handling test smells than using an automated tool for smells detection combined with manual refactoring

Avaliação empírica da geração automatizada de testes desoftware sob a perspectiva de Test Smells

O teste de software é uma atividade-chave para o desenvolvimento de software de qualidade, sendo tão ou mais custoso do que o desenvolvimento do código de produção. De modo a reduzir os custos de projetos de software, o uso de ferramentas de geração automatizada de testes, tais como Randoop e Evosuite tem sido fortemente encorajado. No entanto, é necessário obter evidências sobre como o uso dessas ferramentas afeta a qualidade dos testes. Neste sentido, o presente estudo apresenta uma avaliação empírica da qualidade de testes gerados automaticamente, sob a perspectiva de test smells. O estudo contemplou o desenvolvimento de uma ferramenta open source de coleta e análise automatizada de test smells, a JNose Test, no desenvolvimento da ferramenta foi realizado estudo utilizando 11 projetos open source para verificar a relação entre test smells e a cobertura dos testes, e posteriormente no segundo estudo que avaliou a qualidade de testes gerados automaticamente para 21 projetos open source. No primeiro estudo encontramos relações fortes entre métricas de cobertura e test smells, e no segundo estudo os resultados indicam uma alta difusão dos test smells e co-ocorrências entre diferentes tipos de test smells nos projetos avaliados. Além disso, foi identificada uma alta difusão de test smells nos códigos de teste gerados pelas ferramentas Evosuite e Randoop que, frequentemente, estão correlacionados.

Several strategies have supported test quality measurement and analysis. For example, code coverage, a widely used one, enables verification of the test case to cover as many source code branches as possible. Another set of affordable strategies to evaluate the test code quality exists, such as test smells analysis. Test smells are poor design choices in test code implementation, and their occurrence might reduce the test suite quality. A practical and largescale test smells identification depends on automated tool support. Otherwise, test smells analysis could become a cost-ineffective strategy. In an earlier study, we proposed the JNose Test, automated tool support to detect test smells and analyze test suite quality from the test smells perspective. This study extends the previous one in two directions: i) we implemented the JNose-Core, an API encompassing the test smells detection rules. Through an extensible architecture, the tool is now capable of accomodating new detection rules or programming languages; and ii) we performed an empirical study to evaluate the JNose Test effectiveness and compare it against the state-of-the-art tool, the tsDetect. Results showed that the JNose-Core precision score ranges from 91% to 100%, and the recall score from 89% to 100%. It also presented a slight improvement in the test smells detection rules compared to the tsDetect for the test smells detection at the class level.

Several strategies have been proposed for test quality measurement and analysis. Code coverage is likely the most widely used one. It enables to verify the ability of a test case to cover as many source code branches as possible. Although code coverage has been widely used, novel strategies have been recently employed. It is the case of test smells analysis, which has been introduced as an affordable strategy to evaluate the quality of test code. Test smells are poor design choices in implementation, and their occurrence in test code might reduce the quality of test suites. Test smells identification is clearly dependent on tool support, otherwise it could become a cost-ineffective strategy. However, as far as we know, there is no tool that combines code coverage and test smells to address test quality measurement. In this work, we present the JNose Test, a tool aimed to analyze test suite quality in the perspective of test smells. JNose Test detects code coverage and software evolution metrics and a set of test smells throughout software versions.

Developing test code can be as or more expensive than developing production code. Commonly, developers use automated unit test generators to speed up software testing. The purpose of such tools is to shorten production time without decreasing code quality. Nonetheless, unit tests usually do not have a quality check layer above testing code, which might be hard to guarantee the quality of the generated tests. A strategy to verify the tests quality is to analyze the presence of test smells in test code. Test smells are characteristics in the test code that possibly indicate weaknesses in test design and implementation. Their presence could be used as a quality indicator. In this paper, we present an empirical study to analyze the quality of unit test code generated by automated test tools. We compare the tests generated by two tools (Randoop and Evo- Suite) with the existing unit test suite of twenty-one open-source Java projects. We analyze the unit test code to detect the presence of nineteen types of test smells. The results indicated significant differences in the unit test quality when comparing data from the automated unit test generators and existing unit test suites.

Test smells are fragments of code that can affect the comprehensibility and the maintainability of the test code. Preventing, detecting, and correcting test smells are tasks that may require a lot of effort, and might not scale to large-sized projects when carried out manually. Currently, there are many tools available to support test smells detection. However, they usually do not provide neither a user-friendly interface nor automated support for refactoring the test code to remove test smells. In this work, we propose RAIDE, an open-source and IDE-integrated tool. RAIDE assists testers with an environment for automated detection of lines of code affected by test smells, as well as a semi-automated refactoring for Java projects using the JUnit framework.

Software testing is a key practice in the software quality assurance process. Usually, the quality of a test is not analyzed before its execution, i.e., there are no tests to check the tests. When the quality of tests is not guaranteed, it may impair the quality of the software. Test Smells are an alternative to indicate problems in the test code that can affect test maintainability, more specifically readability and comprehension. This study investigates correlations between test coverage and test smells types. We also introduce the JNose Test, a tool to automate test smells detection. We analyzed 11 open source projects and detected 21 types of smells and 10 different test coverage metrics to each test class. We identified 63 out of 210 calculated correlations. Our results show that there is a relationship between test smells and test coverage, in which test smells may influence code coverage. Our findings might support software testers and help them understand the behavior and consequences of poorly written and designed tests.

According to the ILO (International Labour Organisation) about 218 million children between 5 and 17 years working in the world, of which 50% have jobs at risk. On the basis of this information, arising questions on how to understand and find the factors that comprise the ratings of child labour, and which properties are important to analyze these cases.With the use of data mining techniques to find valid patterns on Brazilian social databases were evaluated data of child labour in the State of Tocantins (located north of Brazil with a territory of 277 thousand and composed of 139 cities).This work aims to identify factors that are deterministic to the practice of child labour and their relationships with financial indicators, educational, social, and regional generating information that are not explicit in the Government database, thus enabling a better monitoring and updating policies to that end.

Accomplishments

Scrum Fundamentals Certified (SFC)
SCRUMstudy May 2019

The ‘Scrum Fundamentals Certified’ course is designed to help anyone interested in learning more about Scrum; learn about the main concepts of Scrum as defined in the SBOK® Guide; and gain a basic understanding of how the Scrum framework works in delivering successful projects. The objective of the ‘Scrum Fundamentals Certified’ exam is to confirm that you have a basic understanding of the Scrum framework.

TOEFL ITP (A2)
UFBA August 2018

The TOEFL ITP test of English language proficiency is accepted by Universities around the world. In addition to being used by language schools and educational internationalization programs. Due to its academic nature, it can be used by students who want to monitor their evolution in the language and especially for those who will participate in academic exchange programs.

Oracle Certified Professional, Java SE 6 Programmer
Oracle October 2010

An Oracle Certified Professional, Java SE 6 Programmer has experience using the Java programming language, understands the basic syntax and structure of the Java programming language and can create Java technology applications that run on server and desktop systems using J2SE 6.0.

Linux System Administration: Services for Internet - RNP
RNP Nov 2017 - Mar 2018

Install and configure LDAP and DNS services, and integrate with them other services such as Email, Web, SSL and additional services such as Proxy, DHCP, SSH and FTP. Also learn how to install and operate the integration with the Windows system through the Samba software. At an advanced level, the course presents forms of integrated authentication using the LDAP service, and through practical scenarios that facilitate the understanding of the concepts associated with each of the services studied.

Recent Posts