Backstage Blog

RSS logo

You're browsing posts of the category Testing

Tests Under the Magnifying Lens

February 2nd, 2021 by Julio Zynger

We take software testing very seriously at SoundCloud. As we scale our codebases and vary the testing harness, we've also faced some challenges with maintainability. Take a look at this post to learn about some of the tooling we've built to help us manage the execution of and derive insights from the dozens of thousands of tests every day.

Read more…

Testing SQL for BigQuery

October 16th, 2020 by Barbara Scherlein

“To me, legacy code is simply code without tests.” — Michael Feathers

If untested code is legacy code, why aren’t we testing data pipelines or ETLs (extract, transform, load)? In particular, data pipelines built in SQL are rarely tested. However, as software engineers, we know all our code should be tested. So in this post, I’ll describe how we started testing SQL data pipelines at SoundCloud.

Read more…

Release Quality and Mobile Trains

April 3rd, 2019 by Julio Zynger

Once every two weeks, we prepare new versions of our mobile apps to be published to the app stores. Being confident about releasing software at that scale — with as many features and code contributions as we have and while targeting a wide range of devices like we do at SoundCloud — is no easy task. So, over the last few years, we have introduced many tools and practices in our release process to aid us.

In this blog post, I’ll cover some of the techniques we use to guarantee we’re always releasing quality Android applications at SoundCloud.

Read more…

Integration Testing for Memory Leaks

November 23rd, 2018 by Matthew Healy

Memory leaks are a common problem when writing iOS applications, and while we all know we should be on the lookout for them, it’s often too easy to miss a vital weak reference. By leveraging integration testing, we can catch these issues and spend more time actually building features.

Read more…

Hands-Off Deployment with Canary

August 29th, 2018 by Jorge Creixell and Tobias Schmidt

At SoundCloud, we follow best practices around continuous delivery, i.e. deploying small incremental changes often (many times a day). In order to improve the user experience, we’ve been exploring different ways of reducing the impact and the Mean Time to Recovery (MTTR) of faulty deployments. Enter canary releases.

Read more…

Running Android UI Test Suites on Firebase Test Lab

May 4th, 2018 by Marvin Ramin

Testing mobile applications is not always an easy feat. In addition to defining what to test and determining how to write those tests, actually running tests can also be problematic — in particular, UI test suites running on real mobile devices or emulators sometimes run for an extensive amount of time.

Read more…

Automatic Stubbing of Network Requests to Deflakify Automation Testing

January 26th, 2018 by Donal O'Brien

Apple introduced automated UI testing in Xcode 7. This was a great addition for developers because this native support promised, among other things, an improvement in the flakiness notoriously associated with automation tests. As many of us developers have experienced, tests can sometimes fail even when there has been no modification to the test or underlying feature code.

Read more…