Continuous Integration and Continuous Delivery for Flutter: A Case Study of Promoty’s Mobile Application

Name
Said Kazimov
Abstract
Companies today are under heavy pressure to deliver software faster and with more quality than their competitors to survive in the market. As a result, organizations embrace Continuous Integration (CI) and Continuous Delivery (CD) practices to improve their ability to plan, build, test, and increase the frequency of software releases to customers. This study presents an overview of an existing CI/CD pipeline in Promoty's mobile application, built using an open-source, cross-platform development framework called Flutter. Based on the overview, we revealed that the testing stage of the pipeline has only Unit tests, and UI tests are missing. As the Flutter framework is still new and mature solutions are not available, the goal was to determine the possible limitations of UI testing in this technology. Moreover, we identified that the code review process slows down the whole deployment pipeline. Hence, we introduce the UI tests into the CI/CD pipeline, which brings more confidence in having bug-free releases in the context of our product. It was identified that the current tooling for UI tests in the Flutter framework is not sufficient because of the limited possibilities to interact with native components. Therefore, UI tests were implemented using Android and iOS native UI testing libraries and integrated into the deployment pipeline as separate jobs. Secondly, our study focused on accelerating the speed of the code review process. We were successful in achieving the goal by integrating the Slack notifications into the workflow.
Graduation Thesis language
English
Graduation Thesis type
Master - Computer Science
Supervisor(s)
Jakob Mass
Defence year
2021
 
PDF