Our Test Engineer Adam points out the challenges of working with React Native, along with some tips on how to solve them. Plus a short guide to Detox.
Agile Approach to Testing: Why Do You Need It in Your Digital Project?
Have you ever wondered why some mobile applications are successful, while the others are only... good enough? The overall concept is what really matters here. The general idea has to answer a client's need, it has to be researched and documented during the workshops. What’s even more important, is the first impression of the product: how was it designed and how user-friendly it really is. This is how you distinguish a standard app from an awesome app. The quality of an application can be evaluated with the above criteria through testing. In our office, testers participate in every part of the app development process to achieve an optimal and usable end-product. In this article, we will unveil some lesser-known testing operations that take place during the app development one step at a time… And who knows, you might find some of them useful for your business.
Testing in Polidea
Polidea operates as one, big organism. If designers are the brain, developers are the muscles and testers—the senses. As testers, we are here to report when we find discrepancies between the core idea of a product and the final implementation of mobile apps, but also to participate in the development process itself. We uphold the quality of every single element crafted by the team to fully satisfy our partners’ needs.
It is very important for us to have a deep understanding of what the end-product should look like. We need to fully visualize the concept idea, the project goals and requirements. This is why we get involved in the project from day one, till the finish line and the product release. When it comes to projects with a parallel development on different platforms (backend, web apps, Android, iOS etc..) we work on two operating systems at the time to easily spot the differences between user interfaces or functionalities. At first, everything can seem fully functional, only a thorough comprehension of the ins and outs of a product enables us to visualize the differences, which we can then signal to the developers or designers to correct.
Software development and design process are team sports and so is testing. Only the best teams consist of different individuals and their specific set of skills and abilities. But the whole is always greater than the sum of its parts. That's why in Polidea we practice several testing activities to spread and share our knowledge with members of the tester team. Once a week, all the testers organize a meeting, where they discuss what’s happening in each project we are reviewing. And the second point is to share knowledge, tools, best practices and news from the testing world. Moreover, during our daily work we do pair testing sessions and testing code reviews.
The tech world around us is constantly evolving. Consequently, the whole testing know-how about solving new challenges becomes more and more complex. Each project is different and we have to fit all clients’ needs. If a client prefers to work in a slightly different way than what we are used to, then we are always trying to adjust as much as possible. We are agile. We strongly believe that the best practices emerge from this way of working in a dynamic environment; project-related rather than a strict testing process. It’s not only about the methods that we implement but also about the frameworks and tools that we use.
Think out of the box
Here in Polidea we, testers, check the overall look and usability. The user experience is the strongest factor that will determine if the app will be successful after its market release. We check all the possible paths and events that may occur. The first part of our working process is to recreate the “happy” path—or when the flow that was described by the client is taking place. However, this is only the tip of the iceberg and when building mobile applications that are spread to large audiences, you will always find users who interact wth them in their own way. That is why we need to focus on all possible user's scenarios. Handling exceptions is key here. We have to secure all possible paths, provide exception errors and feedback to the end users.
Manual tests are very useful in terms of exploratory testing and finding edge cases while thinking out of the box, but actually, the most powerful tool that we’re using is test automation. When it comes to complex projects, a test automation helps you avoid regression issues. Additionally, it can also examine the solution security and perform load tests. While performing integration tests we are checking all mobile platforms, backend and web apps at the same time. As we have already defined what is stable and what is a desirable behavior, we can easily check if a new implementation has any influence on what was already delivered and accepted.
You can read about UI test automation in React Native Apps in our previous blog post.
Testing like an end user
In order to discover all those edge cases, we need to put ourselves in the shoes of our end-users. This is the number one methodology to develop our understanding of a product and how to test it. In order to see with our users’ eyes we need to ask ourselves:
- How will the application be used?
- Who are our end-users?
- What are the users’ needs?
- What is the end user environment?
- And finally, why would they pick our client’s product rather than a competitor’s one? Is it because it’s unique and one of a kind or is it user-friendly, stable and well tested?
Usually, software development teams test application behavior with ideal network conditions, such as a broadband Wi-Fi. But in reality, ideal conditions aren’t always met. At Polidea, we have developed a cellular network simulator that allows us to recreate various real-life conditions of the Internet connection (full, over-limit, no In Traffic, 4G, 3G, 2G, Disabled, Fatality, etc.). On top of this, we perform a field testing as well to make sure our application works as expected and meets user expectations in real life.
This post summarizes the main concepts of Polidea’s testing approach. You can check out all of our projects up to date here. And if you’d like to see our testing methods in action—get in touch! We’ll design and develop an awesome mobile app solution together;).
*This is a refreshed version of the article published on our blog back ~in 2016.
- TomekLead Test Engineer
- SławomirProject Manager