We conduct business requirement analysis based on the Guide to the Business Analysis Body of Knowledge®, which results in a specification and wireframes. Our QA specialists validate the requirements before development begins.
We apply quality assurance and testing services to all software we write, checking the quality of mobile and web apps as well as server-side software.
We run your app on a variety of real devices that we select based on manufacturer, operating system, and popularity in your target market.
To quantify the results of our work, we use non-functional requirements that characterize the overall quality of the system based on so-called quality attributes.
Requirements validation
We conduct business requirement analysis based on the Guide to the Business Analysis Body of Knowledge®, which results in a specification and wireframes. Our QA specialists validate the requirements before development begins.
Test design & planning
All QA and testing activities are documented in the test strategy document that lists test environments, types of testing, and criteria for the start and end of testing. We store all information about tests in TestRail.
Test environment setup
The test environment includes test devices, OS versions, and apps that are involved in the testing process and have to be installed on devices. During this stage, our QA specialists ensure that the testing environment is ready.
Test execution
As soon as a chunk of functionality is implemented, we begin testing new features to verify that they work properly. We run functionality testing, regression testing, smoke testing, and a number of non-functional tests according to the test plan and checklist.
Automated testing
For projects that take more than six months to develop, we automate smoke testing, regression testing, and performance testing. We choose the most cost-effective test automation tools and processes.
Test reporting
We use Jira and TestRail to make our testing process visible. After each sprint, we present builds to our clients along with release notes showing our progress. We’re open with our clients about our development challenges.
We make our testing process clear and transparent to our clients with the help of regular progress reports and test tracking tools.
Regular TestRail reports show the number of test runs and their results: passed, blocked, retest, failed, not ready, skipped, or fix in progress.
With Crashlytics, we get crash reports that provide us with deep insights into the number of crashes and the issues that caused the app to crash.
We use Fabric to track metrics on users, sessions, and crash-free users, or the percentage of daily active users that had a crash-free experience on a given day.
We choose types of testing depending on the project specifics. Our QA specialists test both frontend and backend components.
Functionality testing
Functionality testing verifies that features look and work as expected according to design specifications and ensures that bugs are caught quickly. Functionality is tested by feeding the app input and examining its output.
Compatibility testing
Compatibility testing evaluates the application’s compatibility with different devices, operating systems, browsers, and platforms. We also check how the app performs under different network conditions.
UI testing
UI testing checks if a product’s graphical user interface meets the specifications and corresponds to iOS or Android guidelines. We evaluate design elements such as layout, colors, fonts, font sizes, buttons, icons, links, and content.
Installation/update testing
If an app is already released, we perform update testing. With update testing we make sure that existing users won’t be adversely affected by a new version of the app – that their data won’t be lost and that both old and new features will work as expected.
Interruption testing
Interruption testing is performed to test how an app will react to an interruption and how it resumes its previous state. Interruptions can include incoming phone calls, low battery, network connection loss and re-connection, update reminders, etc.
Localization testing
We provide localization testing after a product’s content has been translated to another language. This type of testing ensures that the localized product functions as expected for the target market and that no new bugs have appeared.
Automation testing
Test automation automates some repetitive but necessary parts of the testing process. Automated testing takes less effort than manual testing, but we use automation tools only on large projects and always combine them with manual testing.
Performance testing
The goal of performance testing is not to detect bugs but rather to eliminate performance bottlenecks. The focus of performance testing lies on speed, scalability, and stability. The testing process ensures that the app performs well under expected workloads.
We use a variety of tools and technologies for API testing, automated testing, visualization, and reporting.