In today’s fast paced world; consumers want their products created and updated faster than their competitors. In turn the customer will always want more software releases with new features implemented in the shortest time frames possible. Now the priority for the developers becomes to get a functional build out to the customer. This is where quality is compromised, in the war between time and testing.
The question arises of conducting a thorough quality analysis of the product in the limited time frame given. We found the most effective way of testing was to do it concurrently with the development using an Agile Testing method. This way, the bugs, if any, are detected early on in the development of the project/build which helps save a significant amount of time and money. In our previous article, we introduced Agile testing as well as the methods we use. However, even with Agile methods, time constraint was a constant struggle.
One of the projects we were working on was a business messaging application, known as Avaamo. When the project began, we had some stable features such as ‘Create Group’, and sending text/image/emoticon/video files to another user. Additionally, we had key features yet to be implemented, such as the ‘Online/Offline Mode.’ The Online/Offline Mode refers to the feature that ensures that a user who has gone ‘offline’ (phone switched off/airplane mode) receives all of his/her messages that were sent while the user was offline, when they come back online. The feature also ensures that the unread message count and message sequence in the chat window are correct.
In order to test this feature, we had to send 500 – 1000 messages within a time-frame, with a specific delay between each message, then check on the receiver side whether all conditions of the test case were met. This required extensive regression testing and re-testing which was time-consuming when done manually and consequently resulted in a delay in the delivery in the agile scrum. As this was a native mobile app, we were simultaneously doing POC (proof of concept) for an open source tool that would help us automate this feature, and upcoming ones, to help with the regression testing.
After exploring 2-3 different tools, we found Appium, an open source test automation tool developed by Sauce Labs, used to automate native and hybrid mobile apps. The tool was easy to learn, supported Java, and easy to integrate with the selenium web driver. The fact that there was a good community support available for it online was the cherry on top.
This ‘Online/Offline’ feature was the first we automated using Appium. We only automated the sender side for this feature and realized we had struck gold. It proved to be highly efficient and helped us uncover a higher no. of bugs that could have been otherwise missed. It helped save a lot of time, and allowed us to work on other test cases while the automation was in progress. The client was also satisfied with the given results, thus we continued to use Appium to automate testing of other stable features of Avaamo.
Over time, we have perfected the art of testing and quality analysis, built a strong team and an extensive knowledge on automation. We also understand the importance that quality analysis and testing has in a project, and the benefits that automation provides. It is crucial as it helps uncover defects in the software that the user could later face. It tells you about the reliability of the software, and ensures that the product works as the user expected it. Not to forget, it helps you avoid any lawsuits! Thus we have ventured into providing our clients with QA and automation services.