Graduate Project

Implementation of test run feature for PC2 web version

This project is the implementation of Test Run, a test-run feature for the web version of PC2. PC2 is a programming contest control system developed at California State University, Sacramento. PC2 is widely used for conducting programming contests including the annual world-wide International Collegiate Programming Contest (ICPC). The web version of the client software a contest team used in PC2 is the EWTeam Web Client, which allows the network connection to the PC2 server software and the contest participation on a web browser. The existing version of EWTeam Web Client does not provide a test-run functionality that the locally-run client software Team Application has. Therefore, this project is to complete the missing test-run feature in the EWTeam Web Client. With the Test Run feature implemented, a team can submit a test run to the PC2 server. The program will be tested using the same environment that is used for a formal run submission but the test outcome will not affect the team's standing in the contest. The purpose of the project is to help improve contestants' performance in the contest, extend the usability of PC2 and raise the awareness of software testing. The project started with an analysis of the existing PC2 architecture and the workflow of handling a formal run submission. Using the analysis as a reference, the Test Run feature requirements were determined from three main perspectives: a team client, a server, and a judge client. These three modules are the essential components for handling and processing a test run submission. The design criteria of the Test Run feature was proposed based on the software requirements. The implementation of the Test Run feature is full stack development that involves both front-end and back-end modification. It started with the back-end modification on the PC2 system. A set of new classes and functions were implemented to handle a test run from submission to execution, and eventually collect the test run results. The PC2 API that connects the EWTeam Web Client and the server was modified to facilitate the communication between the two modules. When the back-end architecture was set up, the front-end modification on the web-based interface was implemented to complete the Test Run feature. The back-end development was written in Java. The front-end development involves the use of HTML, CSS, JavaScript and PHP scripts. The implementation was tested by JUnit tests and a simulated programming contest. The results of the testing proved that the implementation had satisfied all the software requirements identified in the project. The project also proposed several enhancements that can be implemented with future development to extend the functionality of the Test Run feature.

Items in ScholarWorks are protected by copyright, with all rights reserved, unless otherwise indicated.