About
This project was created for the Kontaktstudium Informatik and provides a way to unit test programs written in the Scratch programming language that are submitted by students to defined algorithmic exercises.
Note
Algorithmic is important here as this project considers sounds, images, movement, other sensing functionality and concurrency (whose order is undefined in Scratch) out-of-scope, ignores it where possible and rejects whole files where ignoring is not possible.
Repositories
Bast3St is split into multiple repositories that build on each other, the most important ones are:
github:marcel-scherzinger/bast3st-scratch: direct handling of Scratch semantics and files
scratch-test-value: implements how Scratch defines computations like arithmetic operations or coercions
scratch-test-model: parses the Scratch-file-format
sb3scratch-test-interpreter: allows running a parsed Scratch program with given inputs and defined limits
github:marcel-scherzinger/bast3st-eval: takes JSON data that describes what a program should be tested for and creates a detailed report
github:marcel-scherzinger/bast3st-web: listens for requests to analyze programs, responds with reports and stores everyting in a Postgres-database
github:marcel-scherzinger/bast3st: Python library to generate JSON specifiactions by writing scripts with type hinting support and CLI program that allows interacting with a server
What’s with the name?
| Bast3St | The project is about Scratch and it starts with S |
| Bast3St | The file extension of Scratch is sb3 |
| BasteSt | Bastet is the egyptian god of cats |
| BasteSt | This project is about testing |