Title
Semi automated tests for a network programming coursework
Supervisor
Dr Ludovic Magerand
Project description
The programming project of the third year network module focus on implementing a text-
based protocol (IRC) to help students understand how protocols are defined and
implemented, especially in order to maintain interoperability with other implementations. To
ensure the compatibility of students implementations with the protocol, automated tests can
be used.
However in order to provide the marker with enough information to give students appropriate
and meaningful feedback, these tests would need to be supervised by the marker. The goal
of this project is to develop such semi-automated tests, which would need to be fully
compliant with the main protocol while allowing insight into what is causing problems when a
failure occurs. The resulting tests would also allow the marker to guide the process.
Students production are tested in two virtual machines, one acting mainly as the server and
the other one as the clients. The tests are thus distributed among them and needs to be
coordinated.
Skills the student will develop and any prerequisites
Network programming and asynchronous event driven programming
Distributed computing, message passing and/or RPC/RMI
Standards and protocols specification
Automated and Semi Automated tests
Industrial Relevance
From small to large software, fully or semi automated tests are more and more used in the
computing industry to validate functionalities. Most software nowadays also contain network
related functionalities which need to comply with existing protocols making it crucial to test
their compatibility.