
This was no small feat, as we had to test over 40,000 stories, each available in 13 languages, and each language containing around 250 files. Moreover, we had to come up with a solution within 7 days before the live release.
To tackle this challenge, we proposed two approaches:
The first script focused on testing all the data stored in Amazon S3. The advantage of this approach was its speed, as it allowed us to quickly validate the stories before the devops team updated the pipeline.
The second script involved testing all the APIs required for the stories. This approach was slower compared to Script 1, as it relied on the end-user rate limit set by Ferrero WAF. We had to run the tests gradually until all the stories were covered.
During the testing process, we encountered a roadblock when we got blocked by Ferrero WAF. This was due to our initial lack of understanding of Ferrero's rate limit setup.
After discussing with the Ferrero team and analyzing their rate limit configuration, we gained a better understanding of how it worked. We realized that we needed to adjust our testing approach to comply with the rate limits in both the pre-live and live environments.
One important aspect of this testing process was estimating the costs associated with using services like Cloudfront, Akamai, and AWS. We created a detailed spreadsheet to calculate the projected expenses based on the number of requests, data transfer, and storage requirements.
This cost analysis helped us make informed decisions about resource allocation and optimization, ensuring that we could efficiently test the stories while keeping the costs under control.
To streamline the testing process, we decided to set up a dedicated Linux machine. This machine served as the central hub for running the testing scripts and processing the code.
We carefully configured the Linux environment, installed the necessary dependencies, and optimized the system for performance. This setup allowed us to efficiently execute the testing scripts and handle the large volume of stories and files.
Retesting all the stories in the "Let's Story" feature after the introduction of Ferrero WAF was a significant challenge. However, by proposing two testing approaches (Script 1 and Script 2), understanding the rate limit setup, calculating the associated costs, and setting up a dedicated Linux machine, we were able to overcome the obstacles and ensure the quality and reliability of the stories.
This experience taught us valuable lessons about adaptability, collaboration, and the importance of thorough testing in the face of changing requirements. It also highlighted the need for effective communication with external teams, such as Ferrero, to align our efforts and find solutions together.
As we move forward, we will continue to apply these lessons learned and strive to deliver the best possible experience to our users through the "Let's Story" feature in the Applaydu application.
Stay tuned for more insights and stories from our development journey!

Event-driven architecture, Reactive programming, and technologies like NodeJS, Play, and
Beiryu
Contributor

Làm việc trong ngành phát triển phần mềm được một thời gian, tôi nhận ra một điều thú vị: không phải lúc nào code đẹp cũng đồng nghĩa với thành công về mặt kinh doanh. Hãy cùng tôi đi sâu vào một vài ví dụ điển hình và bài học từ thực tế.
Beiryu
Contributor