Eugene Saturow Head of Flutter

    Test Automation Services: How to Optimize Development and Improve App Quality

    As businesses aim to improve the performance, stability, and costs of their digital products, more and more companies are looking for a reliable provider of test automation services. Since 2011, Surf has been developing and testing apps for companies in the fields of fintech, banking, foodtech, and e-commerce. In the article, we will explore the benefits and challenges of automated tests, review Surf’s QA process, and give tips on how to find a suitable provider.

    What are testing automation services about

    Test automation as a service offers a faster and more efficient alternative to manual approach, especially for applications with extensive codebase and complex logic. It allows QA specialists to run pre-written test cases, assessing software performance, stability, and functionality. Larger test coverage leads to better quality and automation tends to be cost-effective in the long run.

    Surf provides professional quality assurance and testing automation services

    Learn more

    Test automation benefits for companies

    With auto-tests, companies can improve the development process and a variety of aspects of their software.

    Reduced time to market

    One of the key advantages is how test automation speeds up the application’s building process. It allows QA engineers to be more productive and effectively supply feedback to developers. 

    Automation speeds up regression testing. Testing similar cases manually multiple times can take days and act as a bottleneck for development. Automation tools can run regression tests continuously, which allows extending their scope without postponing the digital product’s release date.

    Also, test automation increases EMTE by 80%. EMTE (Equivalent Manual Test Effort) is a metric that estimates the time needed for manual testing in each automated test run. Considering the high cost and limited availability of manual testing on each build (up to 8 per iteration), automation allows QA specialists to greatly expand the scope of their checks. As a result, the app is ready for release faster.

    Test automation service 1

    Maximized coverage

    Getting even close to 100% test coverage for complex projects is a challenging, if not impossible, task for a team that relies solely on manual processes. Automation is an apt solution to this. With reduced testing time, QA engineers can thoroughly check all features, UI, and use cases without exceeding the time and money allocated to the development. Also, full coverage makes it easier to analyze app releases and track every build cycle and project fix.

    Reduced feedback latency

    Automation reduces the time period from changing code to testing it, e.g. feedback latency. Developers can launch automated scenarios right after code commits, which provides them with prompt feedback. Since it makes it easier to run tests in parallel, the automation narrows the feedback loop, optimizing the development speed.

    effect of test automation on feedback latency

    Better ROI

    Automated tests have a noticeable impact on the ROI (return on investment). Faster processes, less repetitive manual QA operations, and higher software stability lead to shorter product release time and decreased resource consumption for the company.

    Challenges in setting up automated tests

    To get the most out of automated testing, it pays off to consider what obstacles a company might face when implementing it. Familiarizing yourself with them early on can help to avoid setbacks and extra spending later.

    • Framework issues. Automated testing relies heavily on integrations and certain functions of a framework used to build an app. This can present a challenge when setting up a testing environment. For example, while working on an app built with the Flutter cross-platform framework, we encountered an issue with the display and formatting of fonts on iOS: the text spacing was significantly wider than on Android. This led to visual bugs. The issue turned out to be within the framework, and our discovery prompted the Flutter community to release a fix for it.
    • Complex logic. Apps with complex logic are difficult subjects for automated tests because QA specialists have to identify all probable scenarios and develop scripts that cover all potential paths through the app. For example, a simple user action, such as entering a couple of digits, may start complicated internal calculations in a finance app. Also, complex apps have many dependencies between their different parts, making it difficult to isolate specific components. These result in an increased time required to develop and maintain the test suite.
    • Numerous features and third-party integrations also make testing a challenging task. This is particularly true for finance apps since their functionality encompasses account management, bill payments, money transfers, stock trading, and so on. Each of these features requires thorough testing to ensure their functionalities work as intended. The integration of third-party APIs, such as payment gateways, complicates things further as they require a deep understanding of how these systems interact with the app.

    Test automation process at Surf

    Now, let’s take a look at how the Surf team performs automated testing and explore some of our successful case studies.

    Our testing methodology is inherently universal, having evolved over a decade through diverse experience with both native and cross-platform projects. The QA team at Surf engages in various activities throughout the project’s whole lifecycle. During the design phase, our experts form a risk register, assess the feasibility of test automation, choose a framework, and define the strategy.

    During the development phase, the QA team establishes operational processes among its members, creates and implements automated scenarios, as well as analyzes reports, issues, and bugs. When necessary, we also assist with purchasing testing devices and configuring infrastructure. For example, when creating a new app for the multiplatform entertainment operator, we wrote 1149 test cases, including a set of 95 smoke tests. The testing process ran for 3 days and checked every feature of the app.

    app for entertainment operator by Surf

    As a result of the work, the client company receives detailed reports for each test run, an automated tests repository, a configured set of test devices, and comprehensive documentation on the auto-tests.

    banking app for SBI Group by Surf

    A properly tested app inevitably attracts more users and improves their satisfaction. For example, our thoroughly tested new version of a banking app for SBI Group increased the number of monthly active users by 27% and brought a 25% growth to the number of new users in six months.

    Check our success stories

    Go to case studies

    Choosing a team for test automation

    If you have decided to automate testing, choosing the team to perform it is arguably the most crucial step. A reliable and experienced automation testing company can ensure the quality of your app and do so without extra spending.

    Experience and tech skills

    Look for specialists with a proven track record and proficiency in automated testing. They should have expertise in using a variety of tools, such as Selenium or XCTest, and have a deep understanding of the technologies and platforms used by you.

    Surf team has ISTQB certification, which is a leading global certification program for software testers and includes a specialized Test Automation Engineer certificate. The skills set of our QA specialist include:

    • Building a testing strategy that considers product and project risks and choosing a suitable approach for a specific product;
    • Planning and estimating testing works;
    • Using black box, white box, and gray box testing techniques;
    • Writing checklists and test cases;
    • Performing functional (component, integration) and non-functional testing (configuration, compatibility, performance, and usability);
    • Regression testing;
    • Running automated tests for mobile and web apps and APIs;
    • Product and team audit;
    • Reviewing and reporting on artifacts and work performed.

    References and portfolio

    When zeroing in on a team, ask for references from their previous clients. Review their portfolio to get a clear picture of what apps they have tested, and the results achieved. The company’s reviews on such platforms as Clutch and CrowdReviews can also give additional insights about its capabilities.

    Automation strategy and methods

    Inquire about the team’s methodology. The QA team should be able to establish what tests to do manually and what to automate. It is also a plus to have Agile and DevOps experience, as it ensures seamless integration of tests into the development process.

    Surf often uses a model-based approach, which generates models of the system’s desired behavior to create test cases. This helps catch bugs and errors early on, optimizing the whole development process. We also adhere to a common structure for test cases and checklists, fostering consistency across projects.

    Costs and time

    Discuss your budget and pricing model with the team to ensure there are no hidden costs and the services align with your financial expectations. This way, you can make an informed decision and choose the suitable team for your project.

    Flexibility and scalability

    As software evolves and gets more complex, manual testing often becomes insufficient. This prompts companies to adopt automated testing for their long-term projects. Ensure that the team can scale their testing efforts and adapt to the changing requirements and priorities of your business. 

    With 13 years of experience in creating apps, we at Surf know that test automation is a must-have for complex and long-term projects. Here are a few main reasons why they are so important:

    • Optimized costs. As a project gets more complex, manual testing alone becomes too labor-intensive and time-consuming.
    • Scalability and regular updates. As the scope of work increases, so does the risk of errors. Automated tests ensure the stability of the code base and simplify the process of updates’ deployment.
    • Team efficiency. Auto-tests reduce the load on the team, allowing developers to focus on solving more complex problems rather than on the tasks that can be automated.