\ /
Sircle  Meet the team  Case study  Quality Assurance 

Case study: Automated tests for a certified webmail client

English version below

Questa intervista/case study si concentra sulle attività di test automation svolte per una soluzione di posta elettronica certificata nella quale è stata recentemente rivista la parte front end. Lisa Scarpellini ci ha raccontato come ha supportato il cliente durante l'intero processo di testing.

Premessa

La necessità di adottare un approccio strutturato al testing è emersa quando in passato sono stati trovati numerosi bug in produzione. Il cliente ha tentato diversi approcci risolutivi (tra cui assegnare le attività di test agli sviluppatori) ma nessuna delle soluzioni sperimentate ha avuto i risultati sperati.

Nel 2022, il cliente ha quindi deciso di avviare un progetto dedicato al testing con la creazione di team specializzati.

Per quanto riguarda questo case study, Sorint è entrata in gioco nel febbraio 2024 quando Lisa ha iniziato a concentrarsi sulle attività di test specifiche per la nuova webmail.

Ruolo della Tester

Lisa Scarpellini, sviluppatrice e tester esperta, ha svolto un ruolo cruciale nel progetto. Si è occupata della progettazione e della scrittura degli scenari di test, della strutturazione delle attività di automazione e ha collaborato alla creazione della pipeline. Il suo contributo è stato fondamentale per garantire un testing strutturato ed efficace.

Obiettivi del Progetto

L'obiettivo principale era sviluppare una suite di test standardizzata, integrata con Jira per la gestione delle issue e con un testware a bassa manutenzione per supportare gli aggiornamenti futuri dell'applicazione.

Tecnologie e Metodologie Utilizzate

Per garantire un approccio completo, sono stati utilizzati diversi linguaggi e tecnologie:

  • Per i Test Front-end: JavaScript, Cypress e Gherkin (per separare chiaramente gli scenari di test, gli script di esecuzione e i dati di test).
  • Per i Test Back-end: Maven, Java e Gherkin.
  • Per la Gestione dei Test: È stata utilizzata l'integrazione con X-ray per gestire la documentazione dei test case e ricevere su Jira gli output della pipeline di test.
  • Per le Pipeline: Jenkins, sia per l'automazione delle esecuzioni dei test, sia per l'archiviazione degli output e del testware stesso, e sia per creare un'integrazione con Teams, attraverso la quale ricevere notifiche in tempo reale.

Implementazione e Ostacoli Affrontati

Durante l'implementazione dei test, la sfida principale da superare è stata la mancanza di documentazione in merito alle funzionalità da testare. Inoltre, sebbene esistesse una test suite pregressa, questa utilizzava codice troppo personalizzato, non conforme agli standard di audit interni. Per questo motivo è stato necessario ripartire da zero.

Grazie all'adozione degli scenari Gherkin (che ora si pensa di riutilizzare come documentazione dei requisiti), è stata migliorata la gestione delle funzionalità da testare, garantendo tracciabilità tra funzionalità, requisiti, condizioni e base di test.

Risultati

“Il progetto è ancora in corso, ma abbiamo già una suite di test operativa che copre le funzionalità principali, eseguita ogni notte e ad ogni rilascio nel contesto del CI/CD. È anche possibile lanciare serie specifiche di test raggruppati per macro-funzionalità. L'output delle run viene poi versionato, salvato e archiviato in modo da essere disponibile per audit future, sempre tramite pipeline.”

Lezioni Apprese e Best Practices

Durante il progetto Lisa è cresciuta professionalmente nello sviluppo dei test back-end, migliorando i controlli sulla robustezza e l'affidabilità dell’applicazione. D'altra parte, il cliente ha acquisito una maggiore competenza sulla parte front-end e su Cypress, un framework che ha scoperto durante il progetto.

Grazie al lavoro di squadra, il cliente ha compreso meglio i problemi più comuni legati ai selettori e le potenzialità dell'Page Object Model (un design pattern in cui i selettori degli elementi del DOM, ma anche altre informazioni come le traduzioni, vengono centralizzati in un'unica posizione).

Lisa ha sottolineato quanto sia stata cruciale la comunicazione efficace e l'ascolto reciproco. La determinazione e la passione nel lavoro collaborativo hanno contribuito in modo significativo al raggiungimento degli obiettivi prefissati, che sono anzi stati superati.

Queste lezioni apprese sottolineano l'importanza di un processo di test ben strutturato e collaborativo, per migliorare la qualità e l'affidabilità delle applicazioni.

Oltre al suo eccellente lavoro, un ringraziamento speciale a Lisa per aver accettato di essere intervistata per la stesura di questo case study.


English version:

This interview/case study focuses on the test automation activities carried out for a certified email solution where the front end was recently revised. Lisa Scarpellini shared how she supported the client throughout the entire testing process.

Introduction

The need to adopt a structured approach to testing arose when numerous bugs were found in production in the past. The client tried various solutions (including assigning testing tasks to developers), but none of the attempted solutions yielded the desired results.

In 2022, the client decided to initiate a project dedicated to testing by creating specialized teams.

For this case study, Sorint came into play in February 2024 when Lisa began focusing on specific testing activities for the new webmail.

Role of the Tester

Lisa Scarpellini, a skilled developer and tester, played a crucial role in the project. She handled the design and writing of test scenarios, structured the automation activities, and collaborated on the creation of the pipeline. Her contribution was essential in ensuring structured and effective testing.

Project Objectives

The main objective was to develop a standardized test suite, integrated with Jira for issue management and with low-maintenance testware to support future application updates.

Technologies and Methodologies Used

To ensure a comprehensive approach, various languages and technologies were used:

  • For Front-end Tests: JavaScript, Cypress, and Gherkin (to clearly separate test scenarios, execution scripts, and test data).
  • For Back-end Tests: Maven, Java and Gherkin.
  • For Test Management: Integration with X-ray was used to manage test case documentation and receive test pipeline outputs in Jira.
  • For Pipelines: Jenkins was used for test execution automation, output and testware archiving, and creating integration with Teams for real-time notifications.

Implementation and Challenges Faced

During test implementation, the main challenge was the lack of documentation regarding the functionalities to be tested. Additionally, although there was a previous test suite, it used overly customized code that did not comply with internal audit standards. Therefore, it was necessary to start from scratch.

Thanks to the adoption of Gherkin scenarios (now considered for use as requirements documentation), the management of functionalities to be tested was improved, ensuring traceability between functionalities, requirements, conditions, and test bases.

Results

"The project is still ongoing, but we already have an operational test suite that covers the main functionalities, executed nightly and at every release within the CI/CD context. It is also possible to run specific sets of tests grouped by macro-functionality. The output of the runs is versioned, saved, and archived to be available for future audits, always through the pipeline."

Lessons Learned and Best Practices

During the project, Lisa grew professionally in back-end test development, improving controls on the application's robustness and reliability. On the other hand, the client gained greater expertise in the front end and Cypress, a framework they discovered during the project.

Thanks to teamwork, the client better understood the most common issues related to selectors and the potential of the Page Object Model (a design pattern where DOM element selectors, as well as other information like translations, are centralized in one location).

Lisa emphasized how crucial effective communication and mutual listening were. Determination and passion in collaborative work significantly contributed to achieving and even surpassing the set goals.

These lessons learned underline the importance of a well-structured and collaborative testing process to improve the quality and reliability of applications.

A special thanks to Lisa for agreeing to be interviewed for the creation of this case study, in addition to her excellent work.

comments powered by Disqus