The Railgun online judging system is designed for software engineering courses. It can automatically grade programming assignments like white box testing, black box testing, unit testing, and many other software programming related topics. The homework is customizable, and all the components are well documented.
You may navigate to https://railgun.secoder.net/ for a running example.