A System-Level Testing Framework for Automated Assessment of Programming Assignments Allowing Students Object-Oriented Design Freedom | IEEE Conference Publication | IEEE Xplore