Noah Seligson is entering his senior year at the University of Central Florida studying Computer Science. Noah acquired his love for coding and computer science in college, where he shared and taught his knowledge to others as a teaching assistant. His interests include gaming, coding problems and exercising. Noah joined the 2023 HPCC Systems Intern Program as a returning intern. This summer, he worked on a project that involved converting the primary testing systems from Python 2 to Python 3 and cleaning up the testing system code to become more readable. During his internship, he ensured that every Python file in the Overnight Build and Test System and Smoketest can be successfully executed in Python 3. In addition, over 2000 lines of code were saved throughout the systems, making them easier to read and navigate for future updates. |
Poster Abstract
HPCC Systems maintains a robust testing environment, composed of two systems, the Smoketest and the Overnight Build and Test System (OBT). These systems are used for regression testing and ensuring that the source code of the HPCC Systems platforms generates accurate results. Files from these systems are operated automatically throughout each day, so it is crucial that they are on par with modern computing standards. These systems were developed over 7 years ago and thus have some features that are not up to date in the current landscape. This primarily relates to the Python files, developed in Python 2, a version no longer supported. The main objective for this project is to convert the Python files from the Smoketest and OBT
from Python 2 to Python 3. There are tools such as 2to3 that automate the conversion process by changing segments of codes based on pre-existing conditions in its algorithm. This tool is not enough to ensure a healthy conversion, which is why manual review and testing are a mandatory part of this project as well. In addition, another principal goal is a clean-up of both the Python and Bash files for the testing systems. This involves removing commented code that does not serve a purpose to the file anymore, unused variables and uncalled functions. This also entails reducing duplicate code through creating functions, default parameters and constants. Finally, all modifications made to a file are documented in a corresponding text file. This is done to ensure that if any issues come up the base implementation can be retrieved for investigation. This also provides the opportunity for an original feature to be utilized if needed in a future version.
Smoketest: https://github.com/HPCCSmoketest/scripts
OBT: https://github.com/AttilaVamos/OBT
Presentation
In this Video Recording, Noah provides a tour and explanation of his poster content.
Convert Automated Test Systems from Python2 to Python3
Click on the poster for a larger image.