16 Oct Automated integration testing with social media Facebook and Twitter
Client provides to their customers, a complete and efficient contact center solution for voice based and non-voice-based customer service interactions. Our client is the latest extension of the range of media that their services can process. The extended system monitors a social media platform (Facebook, twitter and apple business chat), gathers items e.g. public messages, private messages, tweets and direct messages according to configured profile of the customer, and converts them into the interactions to be delivered to agents at contact center.
Fleek QA team is engaged with the client and works as their in-house QA team for their Social Engagement platform project. We deal with manual and automation testing for their web apps, desktops apps, APIs along with load testing for various social media connectors.
Our client had a desktop app which was supposed to process and receive interactions from various social media platforms like Facebook and Twitter. The desktop app users can then take various actions on those received interactions as they please. Fleek QA were responsible for manual and automated testing of these desktop apps.
Challenges We Faced
While working with this client, we faced many challenges. One of the challenges was how to not get blocked by the social media platforms.
We designed our automation tests in such a way that we had to hit the Facebook and Twitter APIs to add interactions on their platform, so that those interactions could be fetched by our client’s desktop apps and test cases could be executed against the desktop app for the received interactions.
While hitting the social media APIs to generate the interactions on their platforms, there were times during extensive testing when our test users from Facebook and Twitter gets blocked as they were detected by these social media’s intelligent algorithms as automated bots or spam. This was one of the biggest challenges that we had to overcome to avoid our users from getting blocked by Facebook and Twitter. We tried all sorts of possibilities like adding some waits before hitting APIs, using close to real life test data, randomize the API calls and so on. But nothing eventually helped. For each test run, we were forced to create new test users as old ones always got blocked.
How We Solved
Sooner or later, we realized that it was not Facebook or Twitter that we need to test. Our primary focus is to test the client’s desktop application. How the application under test would behave with different types of interactions received from different social media platforms. The origin of these interactions was not necessarily needed to be real Social Media until and unless we could replicate the exact data and formats.
So, we decided to create the mock APIs for Facebook and twitter which were as close as the real APIs from Facebook and twitter. We created our own set of API endpoints hosted on our test server which would act the same way as the real APIs. The interactions generated from these APIs were automatically sent to client’s desktop apps and our automated tests would take test actions against the app using the mock interactions.
As soon as we started using our mock APIs, we never had anymore blocked user. This saved us a lot of efforts and time which we used to spend for creating new users repeatedly on the real social media. Our mock APIs were limitless, and we could do as much requests/second to our APIs as we want. This also helped us to improve the test duration of our automation suites. Thus, a happy client!
Statistics about improvement in test reliability
Statistics about improvement in test execution speed