usegalaxy-eu / project-ideas

A collection of project ideas suitable for Master and Bachelor students
MIT License
9 stars 2 forks source link

Improving tool wrapper testing contraptions #38

Open tuncK opened 1 year ago

tuncK commented 1 year ago

Supervisor: Tunc Kayikcioglu For degree: Bachelor/Project/Master Status: Open Keywords: testing, linter, compiler, wrapper

Project context

Galaxy is a user-friendly computing platform to analyse various types of scientific data via pre-installed bioinformatics tools. Most published scientific software are command-line only, but to make them accessible to a broader audience, Galaxy provides a GUI. There already are tools to assist with writing and the maintenance of such "Galaxy wrappers", which can auto-perform certain tasks involved or test against some common pitfalls. However, the users still sometimes encounter errors when trying to execute the tools in certain ways that the tool developers did not think of checking. Addressing such error reports costs time and resources, which can be avoided by more sophisticated testing before deployment, if it can be developed.

Objectives of the project

This project aims to explore potential ways to improve the existing tool wrapper testing system. Depending on individual interests, the project can be limited to implementation of a (brute-force) solution or can include exploration of more conceptual aspects (graphs, decision trees, ...). Source code to machine code translation is highly advanced and can serve as a potential inspiration source.

Proposed agenda for the project

  1. Assessment of the status quo, and manual solution of toy examples for pedagogical purposes.
  2. Debugging the current system with known failure cases.
  3. Attempt to add new functionality that auto-tests disallowed commands
  4. Assess if a set of wrapper tests can be checked w.r.t. their functional diversity
  5. Test the "product" against the current tool repository.

This list is likely over-ambitious and might need to be split into multiple consecutive projects, depending on the agreed upon project type.

Prerequisites

A STEM-level mathematical background, working-level knowledge of git and a programming language is required. JavaScript, XML, BASH and a compiled programming language (C/C++, Java, FORTRAN, ...) would be helpful.

Further reading and useful links