Software QA System
Online examination system built for the Software Basis Knowledge Contest.
Introduction
The Software QA System is a network-based online examination suite developed for the Software Basis Knowledge Contest (软件基础知识竞赛), part of the 3rd “Software Festival” (软件文化节) hosted by the School of Software at Hefei University of Technology. Initially developed in 2011 and later refactored in 2013, the system is built using VB.NET with a Microsoft Access (.mdb) backend, and uses UDP sockets for real-time client–server communication.
The system was officially deployed at the contest held on March 25, 2012, replacing traditional paper-based exams for over 70 participants from multiple departments. The use of this custom-built software was highlighted in the university news as a demonstration of the school’s professional expertise.
Architecture
The project is structured as a client–server system consisting of three subsystems that communicate via UDP sockets:
Software Enrollment System (Client): Collects and registers participant information (student ID, name, school, department, and contact details) before or during the contest. Registered data is stored in the Access database and used by the management server to authenticate contestants.
Software Management System (Server):
Acts as the central coordinator of the entire contest.
It broadcasts a start signal to all connected clients when the administrator initiates the contest, enforces a configurable time limit with a real-time countdown, and tracks live submission counts.
Each incoming submission carries a serialized SocketMessage containing the student ID, score, and elapsed time; the server de-duplicates entries and displays them on a live scoreboard.
Administrators can force-logout any active client, sync data to a standby backup server, and export the full results to a formatted Excel spreadsheet.
A separate question library editor (Frm_QuestionLibrary) allows managing the question bank stored in Access.
Software QA System (Client): The exam client used by contestants. On launch it authenticates against the server via UDP and fetches questions from the local Access database using OleDB queries. Question order is randomized via a shuffle algorithm so each contestant sees a different sequence. The UI renders single-choice questions as radio buttons and multiple-choice questions as checkboxes; navigation between questions preserves the user’s in-progress answers in memory. After the participant submits (or when the server broadcasts a timeout), the client scores the answers locally by comparing each response against the stored correct answer, then transmits the final score and elapsed time to both the primary and standby servers with up to three retry attempts.
Technical Highlights
- Network protocol: UDP sockets with a shared
SocketMessageserialization class (ClassMessage.vb) used across all three subsystems to ensure a consistent wire format. - Dual-server redundancy: The QA client targets a primary server (port 8081) and falls back to a standby server (port 8082), with automatic retry logic on each transmission.
- Configuration security: All sensitive settings (database password, admin credentials, FTP credentials, server addresses) are stored in an XML config file with values encrypted using TripleDES and an MD5-derived key.
- Question randomization: A shuffle algorithm generates a unique question order per session, preventing contestants from sharing answers based on question position.
- Excel export: The management server programmatically generates formatted Excel workbooks from submission records, with auto-fitted columns and structured headers.

The Disqus comment system is loading ...
If the message does not appear, please check your Disqus configuration.