Fri 15 March 2024

Outreachy internship: Improving end-to-end testing for GNOME

Outreachy is an organisation providing open source internships to people who are subject to systemic bias and underrepresentation. The latest cohort of interns ran from Dec 2023 to Mar 2024, and I helped to run one of the projects: "Improve end-to-end testing for GNOME".

About the project

The openQA tests for GNOME OS were originally developed at Codethink, see our article from 2021. Since then I've been maintaining them in bits and pieces of downtime from other things, with help from a few other volunteer developers who contribute to GNOME OS.

My long term aim is to make openQA-style end-to-end testing available to all GNOME module developers to use in their module CI pipelines. This will scale better than trying to test every module as part of GNOME OS's own CI.

In the meantime, I didn't plan to extend the GNOME OS tests myself. Then I realised there are some more "cross cutting" concerns which are best tested on the final, integrated OS. We were particularly interested in the following:

  • Testing accessibility features such as the screen reader
  • Testing that GNOME apps work on small form-factor devices (i.e mobile phones)

At this point, I realised we had an ideal project for an internship of 2-3 months, where we could be flexible in terms of team size and technical skills of the interns. As it happened, the GNOME Foundation was funding up to 3 interns in the late 2023 Outreachy cohort, but didn't have any project proposals or mentors. Codethink agreed to fund an hour a day of overtime for me to lead the internship, and with some help from Sonny Piers (my co-mentor) and Felipe Borges (GNOME internship committee) the pieces fell into place for the project to start.

The team

Getting started

Each Outreachy cohort passes several preliminary stages: the initial application to Outreachy, followed by the contribution period and then intern selection.

The contribution period is where applicants get to know the different participating communities, and try to follow their "Getting Started" guide and propose a real change to the project. This process is very helpful to see which applicants will be a good fit for the project, to solve any setup issues they might have, and to generally check the project has a good "on-ramp" for newcomers.

We were lucky to have around 20 people participating in this stage. The GNOME OS tests have some quite specific hardware and OS requirements, we learned a lot about how accessible this project is for newcomers, and I'm happy that we got a couple of applicants who were using Mac OS to try real desktop Linux for the first time. We updated the openqa-tests guide several times based on feedback. I'm happy that during the contribution stage we had several contributions that made it through code review and were good enough to merge into the 'master' branch.

After a month of contribution period, it was time to select interns from the final applicants. This proved tricky but we got two great contributors: Dorothy Kabarozi in Kampala, Uganda and Tanju Acheleke from Bamenda, Cameroon.

What we achieved

The most important achievement for an internship is bringing new people into the GNOME community who have fun and decide to stay involved. I'm happy that Tanju and Dorothy got involved in a few different areas and learned a lot about how the remote, distributed community of GNOME contributors work together to release high-quality, modern desktop software every 6 months.

We're waiting on a sponsorship confirmation that will allow them to meet GNOME community members in person and run a workshop on openQA testing at this year's GUADEC conference in Denver.

Denver skyline

On the technical side, we completed some major new openQA testsuites:

gnome_accessibility: as seen here this tests some visual accessibility features, and the on-screen keyboard.. We also prototyped a deeper tests of the screen reader, which didn't make the cut due to issues with the chosen approach.

gnome_locales: GNOME is translated into many languages, including some minority languages that Micrisoft and Apple don't support. As seen here, we now have a simple test for the installer to select 3 different languages with non-Latin alphabets. The Arabic test is particularly fun as it tests the "right-to-left" support of GNOME.

gnome_mobile: community members are working hard to make GNOME suitable as a mobile phone OS. Much of this work is not yet merged upstream and isn't available in GNOME OS. What we can test is the core apps, most of which have responsive UIs that can adapt to common phone screen sizes. See an example test run here.

Screenshot of gnome_mobile testsuite

What's next

The work that Outreachy are doing is invaluable as a way to target issues of under-representation and systematic bias in the tech industry, and to ensure healthy, diverse open-source communities by bringing newcomers on board. Codethink is committed to sponsoring future Outreachy cohorts, and we'll be encouraging more of our engineers to consider mentoring future cohorts.

We'll also continue pushing forwards our goals of improving developer workflows and end-to-end testing across the software industry. Make sure to follow us on LinkedIn, Mastodon or X to find out more.

Image credits: Full Denver skyline from Wikimedia Commons, used under CC-BY 2.0 license.

Other Content

Get in touch to find out how Codethink can help you +44 161 660 9930

Contact us