CONSULTANCY: Python Test Engineer (Remote)

Tags: Russian English Spanish
  • Added Date: Wednesday, 27 March 2024
5 Steps to get a job in the United Nations

DUTY STATION

Geneva, Switzerland

COMMENCEMENT OF DUTY

To be determined
NATURE OF APPOINTMENT

Variable (depending on needs of Department/Division)
90 days

Organizational Unit

WIS Branch Data and Information Management Division / Member Platform Unit
Infrastructure Department WMO is committed to achieving diversity and a balanced workforce. Applications are welcome from qualified women and men, including those with disabilities. The statutory retirement age after 1 January 2014 is 65. For external applicants, only those who are expected to complete the term of appointment will normally be considered. DUTIES AND RESPONSIBILITIES

BACKGROUND AND PURPOSE OF THE ASSIGNMENT:

WMO develops WDQMS, a Python/Django, React/Leaflet and PostGIS based monitoring system (https://wdqms.wmo.int). The core part of the system are periodic and complex ETL processes aggregating data which is downloaded from external systems, and then aggregated in the database with Python based scripts. The system is deployed in Kubernetes and developed using a Docker Compose based approach. Unit and integration tests are run with Pytest as part of the CI/CD pipeline, also using Docker Compose.
WMO is seeking a qualified Python Testing Engineer to enhance the integration testing framework of WDQMS. This document outlines the scope, objectives, and expectations for the consultant's engagement.

ACCOUNTABILITIES/RESPONSIBILITIES:

The current approach to integration testing is to execute the ETL scripts in isolation on a fresh database, and to compare the resulting database tables with the baseline. There are currently around 30 integration tests, each executing the same aggregation logic, but based on different input files.

This approach has several drawbacks;
a) Not end-to-end: Since the test are based on database content, key parts of the application such as API and processing in the react frontend are excluded from the testing. The integration testing also does not fully mock the upstream systems from which data is downloaded.

b) Maintenance: The baseline files are big (several MB and consist of thousands of rows), which makes maintaining the baselines difficult.

c) Interpretation: The big size of the baseline files makes interpreting errors in the testing difficult.

The consultant will help the team review the current integration testing architecture, identify and implement improvements to address the identified shortcomings.

DELIVERABLES AT THE END OF THE CONTRACT:

- Review of the current integration test architecture and validated approach to improve it.

- Implemented end-to-end testing
• Adjusted the existing test framework to obtain test data via the React frontend, instead of directly from the database. Possible approaches are either to take screenshots via Selenium, or, preferably, to obtain information by decoding vector tiles in the map component (PoC python code available).

• Extended the Docker compose testing setup by additional containers mocking the external HTTP and FTP servers from which data is downloaded.

- Migrated existing tests
• Migrated existing tests to use the new framework.

- Automated maintenance
• Created a script which automates the re-creation of baseline files (sometimes required when the processing logic changes are part of the evolution of the system).
QUALIFICATIONS
Education
Bachelors (or Masters) degree related to software engineering / development.
Experience
- Strong Python development skills, ideally with a DevOps background.

- Strong experience with unit and integration testing using pytest or unittest.

- Experience with Python mocking frameworks in the context of testing (mock, freezegun).

- Familiarity with Docker.

- Experience with web technology.

- Experience with API Testing.

Languages
Excellent knowledge of English (both oral and written). Knowledge of other official languages of WMO would be an advantage.

(Note: The official languages of the Organization are Arabic, Chinese, English, French, Russian and Spanish.) Additional Information:
FOCAL POINT/EMAIL: tproescholdt@wmo.int

Only applicants in whom WMO has a further interest will be contacted.
Shortlisted candidates may be required to sit a written assessment and/or an interview. Date of issue of vacancy notice:

Recommended for you