dodona-edu / universal-judge

Universal judge for educational software testing
https://docs.dodona.be/en/tested
MIT License
9 stars 4 forks source link

Verification if submission programming interfaces are implemented #414

Open pdawyndt opened 10 months ago

pdawyndt commented 10 months ago

Reasoning: Dynamic testing hooks into the required programming interfaces implemented by the submission. To enable this, the task description must specify what programming interfaces must be implemented by submissions. Test suites could specify what programming interfaces must be implemented (for the whole submission or for a single test unit), so that TESTed could verify (static testing) if the necessary interfaces were implemented prior to starting dynamic testing.

Advantages: No CPU cycles are waisted on dynamic testing for a unit whose programming interfaces have not been implemented by the submission. More specific feedback can be reported to students.

pdawyndt commented 10 months ago

Language-specific modules must implement introspection to detect if the following programming interfaces have been implemented:

pdawyndt commented 10 months ago

Clean format for specifying programming interfaces needed in test suites. TESTed could provide helper subcommand to derive test suite specification of programming interfaces from sample solution (e.g. sample Python implementation usign type hints).