Improving End to End Testing of a Complex Full Stack Software
Loikkanen, Ildikó (2024)
Loikkanen, Ildikó
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024060721946
https://urn.fi/URN:NBN:fi:amk-2024060721946
Tiivistelmä
A full stack application is a complex software, typically developed by multiple teams. If each team tests only its own part, some integrations and the full end to end process won't be verified before the application goes to production, and severe malfunction, usability, performance or security issues might be uncovered in time. Having a well-designed and holistic testing protocol will save time and money to any development team.
The main goal of this thesis was to understand what are the best practices for holistic full-stack testing. The following questions were investigated: how communication between teams can be improved, how overall testing status can be followed up, and how to make testing more efficient in an instable test environment.
After mapping current testing practices in form of a questionnaire, several testing workshops were held, and their output analyzed. Questionnaires contained multiple choice and open-ended questions, to get both qualitative and quantitative information. To make testing more efficient in an unstable test environment, a monitoring dashboard and alert has been developed in Jenkins by sending health checks to the main integration services and receiving an alert to Teams when a service is down for any reason.
It was found that by organizing on-site testing workshops improved communications between teams and improved overall product knowledge. The best results were achieved when the number of partic-ipants was limited, but support was available online.
Follow up of the testing status of a product that is developed by multiple agile teams is a challenging task. However, linking test plans and test cases to the business requirements in Jira, with proper label-ling improves project transparency and helps to track project progression.
Disturbances in the test environment should be monitored automatically. Alerts that notify changes in service status can reduce debugging time and the occurrence of duplicate bugs, thus improving test-ing efficiency.
The main goal of this thesis was to understand what are the best practices for holistic full-stack testing. The following questions were investigated: how communication between teams can be improved, how overall testing status can be followed up, and how to make testing more efficient in an instable test environment.
After mapping current testing practices in form of a questionnaire, several testing workshops were held, and their output analyzed. Questionnaires contained multiple choice and open-ended questions, to get both qualitative and quantitative information. To make testing more efficient in an unstable test environment, a monitoring dashboard and alert has been developed in Jenkins by sending health checks to the main integration services and receiving an alert to Teams when a service is down for any reason.
It was found that by organizing on-site testing workshops improved communications between teams and improved overall product knowledge. The best results were achieved when the number of partic-ipants was limited, but support was available online.
Follow up of the testing status of a product that is developed by multiple agile teams is a challenging task. However, linking test plans and test cases to the business requirements in Jira, with proper label-ling improves project transparency and helps to track project progression.
Disturbances in the test environment should be monitored automatically. Alerts that notify changes in service status can reduce debugging time and the occurrence of duplicate bugs, thus improving test-ing efficiency.