Online CodeRefinery Workshop and Hackathon on Software Testing

CodeRefinery - Online CodeRefinery Workshop and Hackathon on Software Testing

March 17 and 24, 2021, 9:00-12:30 CET

Bring your code and start writing tests with the help of a mentor!


Sign up here!

Soft deadline on March 3! To make it easier for hackathon mentors to prepare we prioritize early registration. If there are still free seats after March 3 we will keep accepting participants.

Who the event is for

Are you doing any of these things?

  • You write scripts to process data.
  • You change scripts written by your colleagues.
  • You write code that is used in research by you or others.
  • You are not already extensively testing your code or scripts.

If yes, then the CodeRefinery testing workshop and hackathon is for you!

Goals and format

In this event, you will become familiar with tools and best practices for testing research software and get help in adopting these in your own projects.

Day 1: Workshop

Day 1 will be devoted to learning - we go through the CodeRefinery lesson on automated testing and work on exercises in breakout rooms where you can use your favorite programming language.
It is possible to only attend day 1 and not take part in the hackathon.

At the end of day 1, hackathon participants will be paired up with a mentor and pitch their projects in small groups.

Between Day 1 and Day 2

In between the workshop and hackathon days you will get help from your mentor to design tests, implement them in your code or set up automated testing. Participants can communicate with mentors by email, Zoom meetings or the CodeRefinery Zulipchat and ask questions.
You will be expected to spend at least 5 hours on your project during this time.

Day 2: Hackathon

During the hackathon on day 2, we split participants into groups and they work in a sprint together with their mentor. At the end of day 2, we briefly summarize the progress made for each project and discuss lessons learned.

Participants in teams will be together in a breakout room.

How to join

Either A. Both workshop and hackathon, or B. Only workshop

  • There are two ways to attend: only workshop on day 1 or both workshop and hackathon on days 1 and 2.

  • It is not necessary that all team participants choose the same option.

Participation as a team

  • If you collaborate with other people on writing code, we recommend that you all register to the event as a team. You can also sign up as a team even if you don't directly collaborate on coding.
  • Teams will be working together in breakout rooms during the event and get paired with the same mentor. Team members should preferably use the same programming language.
  • Decide a team name, and when registering, everyone enters this team name so that we can link you together. Note that everyone on the team must register separately.

Participation as a single learner

  • Single learners are welcome! You don't have to write anything to the "team name" question in the registration form.
  • During the exercise sessions in the workshop, 5-6 single learners are grouped into a breakout room to work together. Our instructors and mentors will be jumping around breakout rooms and answer any questions.
  • However, please note that hackathon participants in teams will get more mentor time than single participants.

To maximize benefit of the Hackathon

  • When registering, please write a description of the project you want to work on together with a mentor. Write what your code does, what language it's expressed in, whether it already has some tests, and what you would like to accomplish in the hackathon.
  • To derive maximum benefit from the hackathon, we recommend that you make your code available in some form so that mentors can prepare.
  • In the registration form you can provide a web address to your code repository if it's publicly available. If your code is not public, we will ask you to share it with a mentor before the hackathon.


  • If you will attend the Hackathon, you are expected to bring a code project to the event in which you want to implement testing functionality. It does not need to be a large complicated codebase, just something you use or intend to use in your research. If it's not your own code, make sure that it has a license which allows you to modify it.
  • You may need to install some software - see the Software Requirements section on below.
  • It is somewhat important that you have a basic idea of how Git works. Please go through this Git-refresher material for a basic overview and important configuration steps.

Software requirements

You are assumed to have everything installed that you need for running code in your preferred programming language, e.g. Python, Matlab or R interpreters, or compilers for C/C++, Fortran, Julia, Rust, Go etc.

You also need to have a testing framework available for your preferred language. Some languages need a package installation while others have a framework built into their standard libraries. A list of recommended tools and frameworks will be published here soon.

Other requirements:


Day 1, March 17

  • 9:00 - 9:15 Welcome and practical information
  • 9:30 - 12:00 Software testing workshop
  • 12:00-12:30 Project pitching and introductory meeting with mentors

Day 2, March 24

  • 9:00 - 09:20 Introduction
  • 9:20 - 12:00 Project work with mentors
  • 12:00 - 12:30 Presentations of progress made and lessons learned


The hackathon will be held online, a Zoom link will be sent to accepted participants.

Price and priority policy

Free of charge, funded by the Nordic e-Infrastructure Collaboration and the EuroCC National Competence Center Sweden.

When we have more sign-ups than our capacity allows, the following priority criteria apply.

  1. National universities or research institutes in Nordic countries and Estonia
  2. Private companies and government agencies in Nordic countries or Estonia
  3. European national universities or research institutes from outside the Nordics.
  4. Others

Therefore it is very important that you use an email address corresponding to your affiliation.

Instructors and mentors

  • Anne Fouilloux
  • Diana Iusan
  • Emilia Lipponen
  • Johan Hellsvik
  • Mark Abraham
  • Qiang Li
  • Radovan Bast
  • Roberto Di Remigio
  • Samantha Wittke
  • Thor Wikfeldt

Coordinator and host

  • Naoe Tatara


  • Why should I join with a team? If you will work together later, learning the tools at the same time is a great way to do it.

  • How does the waitlist work? Anyone can register, but everyone goes to the waitlist. After the 3rd March, We'll continually approve people as we get space.

  • Does it matter where I work or study? Because of the Nordic funding of CodeRefinery by NeIC and Swedish funding of ENCCS we need to have a priority list described above.



CodeRefinery is a project within the Nordic e-Infrastructure Collaboration (NeIC). NeIC is an organisational unit under NordForsk.


Privacy policy

Follow us

CodeRefinery GitHub account CodeRefinery Twitter account