adamatousek / hsExprTest

Automatic testing of small programming assignments and comparison of Haskell expressions and types based on QuickCheck. Intended for automated testing of homeworks on FI MUNI.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ExprTest

Build Status

Automatic testing of small programming assignments.

This project consists of two parts, an programming-language-agnostic driver for testing which invokes teacher-provided script on student's solution and a tool for comparison of Haskell expressions and types based on QuickCheck.

This tool was initially used in the Non-Imperative Programming course on Faculty of Informatics, Masaryk University (FI MU) and is now used in 3 more courses on the same faculty (with different-teacher provided components). It can be used either locally (but that is not very useful) or connected to a testing frontend, such as the frontend of IS MU. In either case, testing requires assignment files.

The work began with a bachelor thesis of Martin Jonáš on FI MU, the code was later extended by Vladimír Štill and is used in the couse from autumn 2014. As of autumn 2018, a complete rewrite (version 3) of Haskell testing framework is going to be used.

Evaluators / Language Backends

There is support for multiple evaluators. The original & residing in this repository is Haskell evaluator: hsExprTest (documentation).

Other evaluators are mostly private to the courses which use them. Documentation for writing evaluators will be added.

IS MU Integration

For integration with IS MU, you will need a server capable of running a web server, the exprtest service (documentation) and your language backends of choice. For running the service, you can start with the systemd unit file.

Questionnaire Frontend

The original frontend is the questionnaire frontend which uses ability of IS to send questionnaire evaluation to an external server.

TODO: doc

Submission Folder Frontend

The ispol (documentation) is an alternative frontend/glue for IS MU. It allows students to submit a file to submission folder which is checked by ispol and evaluated using ExprTest service. The results are written to student's notebooks.

Writing questions for IS MUNI integration

Questions are stored in question directory (defaults to /var/lib/checker/qdir), they have extension .q.hs, or other .q.?? extension.

Bug Reporting

Use GitHub bug reporting for bugs (I'm sure there are some).

About

Automatic testing of small programming assignments and comparison of Haskell expressions and types based on QuickCheck. Intended for automated testing of homeworks on FI MUNI.

License:Other


Languages

Language:Haskell 55.0%Language:Python 37.6%Language:JavaScript 3.2%Language:Shell 2.7%Language:Makefile 1.2%Language:HTML 0.4%