How We Tackle Quality Assurance at Clearbridge
In the mobile application market, there are millions of apps for users to download on their devices. Last June, Apple announced that its App Store hit a shocking 130 billion downloads. Mobile apps are used in millions of users’ daily lives, but what makes forerunning apps dominate the app market? The difference in quality is either a make or break point during the user’s decision-making process. Most users will delete an app if a) they find an error b) the app is too slow to launch c) the app didn’t function as expected.
In this competitive market, consumers want the best application, which includes a seamless experience, intuitive interface, and beautiful design. At Clearbridge, quality is top-of-mind from the beginning of the project lifecycle, right to the end. To achieve this, we follow an integrated quality assurance (QA) process to ensure that all of our products are entirely bug-free and properly functioning. Our process wins over millions of users and makes the difference between a high-quality, valuable app and one that has errors.
Our app development services include full QA testing on several different devices, in multiple environments. We conduct extensive mobile app testing throughout the entire development cycle, including manual testing, visual QA, and automated testing to ensure that our products function flawlessly. Our QA process includes many aspects:
- Manual testing by in-house test engineers
- Automated testing
- Full visual QA
Our agile process allows us to test, locate, and fix issues that arise throughout the project lifecycle, sooner rather than later. Using a combination of manual and automated testing, we thoroughly test all use cases, problematic edge cases, and all visual and functional aspects.
While having a QA engineer governing the project is methodical, there are many disadvantages that arise from an overwhelming amount of work within the span of one sprint. The responsibility of the project is shared among everyone when all members of the development team are inspecting for faults. With this method, there are fewer bugs, the development cycle is shorter, and there is a more even distribution of work.
Our QA process ensures that all developers are responsible for writing source code, control of source code, reviewing code, and configuration management. We also ensure that the software adheres to guidelines set by the client and that it is released within the time given. Delays can be very costly for both the company and the client, which is why our QA process is designed to catch and fix issues faster, saving on budget.
Here’s a look at our integrated and intensive QA process:
First, the visual and business aspect of the project lifecycle is completed by the product team during the product discovery. During this phase, stories are organized in preparation for development. Next, the developers complete the functionality portion of the product.
Step One: Write Tests
Once the functionality of the app is completed, the developers will then write tests for different features or units of their own work. Every time a developer makes a commit, all the tests the developer wrote are run on the build machine and we receive a report. If they all pass, then we get a green light to move forward, and if they fail, then we determine what’s causing the issue, fix the error, and rerun the tests. To test our own code, we typically insert a specific feature in the code and write a test for that feature. It’s important for the developer to write the tests for the code they worked on because they’re most familiar with it. We test the smallest testable units of the application for proper functionality. This encourages the developers to modify the source code without immediate concerns about how such changes might affect the functioning of other units or the program as a whole.
Step Two: Peer Tests
Once the developer has tested their own work for all possible bugs, a peer developer will verify the tests. Having more people testing reduces the number of bugs that get through as the product moves through our QA process. A peer developer will run through all the tests, as well as identify the need to conduct further testing to cover all possible scenarios. Once the developer comes up with more unit tests, they will do another run through to double check if there are any bugs. It’s important for the peer developer to run as many tests as possible to achieve proper quality assurance.
Step Three: Code Review
After the second developer has built tests to prove their work is done right and it has been peer tested, a third developer will move into the code review phase. In this phase of our integrated QA process, the developer makes sure the code is easy to read, inspects for bugs, and makes suggestions or changes themselves. This is a crucial step in our cross-developer verification process to ensure that all code is examined by a peer that didn’t write the code themselves. Feedback is provided to either move forward or fix any errors. The developer might make some changes, but since they have the automated tests that have already been written, they can run those to make sure the changes they’ve made won’t break anything. With this knowledge transfer, developers are more familiar with areas of the project other than their own: every team member knows the code base and can take over when needed.
Step Four: Product Verification
During the last step of our QA process, the product is handed over to the product team who ultimately represents the client. They complete a final round of testing and will verify the final product through UI testing. During this phase, each requirement is checked to confirm that the product adheres to the acceptance criteria.
Most importantly, our process allows for complete transparency and encourages collaboration with our clients throughout the entire QA process. We use effective team collaboration tools, such as JIRA, to maximize efficiency and distribute the workload evenly. Furthermore, clients are also invited to all boards on our issue tracking tools so they can see any bugs that have been identified, how we are triaging the issues, their status, and how they will be fixed. Designated Project Managers interface with the clients regularly to discuss project status and ensure all goals and requirements are being met. Our process helps to streamline the development cycle and encourages knowledge transfer and flexibility within the project lifecycle – all while maximizing quality.