Testmunk joined Snapchat. For testing services, check out TestObject.

Articles


How 3nder – the threesome app – is using automated testing

Posted by on October 8th, 2015

3nder is a dating app that focuses on people that are looking to find multiple partners for a threesome. It is designed to allow singles to find couples looking for that extra person to spice up their love life, couples to find a third wheel (one they actually want), or for random singles to hookup in a no-strings 3-way melee. It is designed to offer complete privacy to its members, sort of like Ashley Madison, but without the data breaches and the stigma of cheating – instead you are looking for a +1 to a rather exclusive party. It uses Facebook login to avoid the scammers, but the app does not share anything through social media.

How 3nder got started

dimo

Dimo Trifonov, founder of 3nder

Dimo Trifonov, originally from Bulgaria, is currently based out of London, UK and is the founder of 3nder, an app designed to make discreet hookups for threesomes easier. 3nder was initially created as part of a hackathon and was basically born overnight by a team of four, led by Dimo. The idea was inspired by Ana Kirova and an undisclosed relationship partner because of a fantasy of having a threesome.

“I had a fantasy I am having a threesome. I shared this with my boyfriend and we decided whenever an opportunity comes up, we might do it. I also shared this with my friends and had this ball in my stomach they would consider me being too strange and nasty.”

Ana, upon considering the matter further, was convinced that there should not be any more of a stigma to wanting a threesome than there should be towards wanting to visit New Zealand. A technological solution towards discreet hookups seemed like an excellent idea.

Dimo is a designer and entrepreneur and has long been interested in helping form social connections through technology. He co-founded a previous application, Pokke, an app designed to help newcomers to a given city find people of similar interests. When the idea of a dating app like Tinder, but for discreet, multiple-partner hookups came up, it was a natural fit.

Dimo thought that society should evolve and start accepting couples in open relationships and humans who don’t identify themselves as straight or gay. 3nder is on a mission to open up our society and embrace the kinky side in each one of us. The app offers a discreet, simple way to make connections with like-minded individuals or couples, much like the dating app the name is inspired by, Tinder. In this sense, it follows suit after Grindr, which took the conventional dating app concept and geared it towards gay, bi, or curious men.

A look at the 3nder Twitter feed shows an interest in differentiating itself from competitor sites like Adult Friend Finder or Ashley Madison by suggesting that couples share rather than cheat, and chastising Tinder for banning transgender members, insinuating that their app, while focused towards threesomes, is more inclusive and more socially progressive than some of their competitors.

3nder-screen-shots

The testing challenge

As the 3nder team prepared to launch their app, they realized that they needed a major overhaul as they neared the latter half of the project. In particular, the initial back-end was not able to scale as needed in order to accommodate a large number of potential users.

Because of the small size of their team, testing the app was primarily a manual process. This allowed for intimate knowledge of the app’s flow and conceptual identity, but made testing on multiple devices or repeated regression tests a chore.

“The automation tests are a huge help. I was getting sick of doing the same tests by hand, it made me feel like a robot.” – Dimo Trifonov

Besides manual testing, the team relied on Crashlytics, which is a great way to get crash reports when your app is in the field and already being used. But, as Dimo said:

“…for a new app version where you potentially just have a handful of power users to give you feedback, just relying on crash reports only doesn’t do it and it takes to long to collect them. We also don’t want to annoy them with new builds sometimes several times per day.” – Dimo Trifonov

Dimo was initially skeptical about introducing automation at this stage. However, testmunk convinced him it was worth trying something new. The testmunk team previously worked on consumer apps, so we understand the pressure on small startups to provide fast iterations and be agile. As Dimo outlined:

“We had an initial chat with testmunk, then collaborated with Lukas, an Automation Engineer in their team, to set up a test plan and automated test cases. Whenever there was a change needed we had a quick iteration. This meant we could always rely on our test cases to save us a lot of time over manual testing.”

Issues identified

Crashes/critical issues

Crash just before seeing People Screen

Upon running automated testing of the 3nder app, the team was surprised to learn that the core functionality was not working as expected. More surprising was that Crashlytics (Fabric) did not report the same error. The error discovered was essential to the user’s experience: the ability to seek out nearby individuals with the same application and view their profiles. As you can see in the image and video below, the test run failed at the point of displaying the image of a matching profile.

3nder-profile-issue

By receiving an image of each step of their app’s process, 3nder had nearly instant visual confirmation of the issue. This feature has also helped numerous companies discover UX issues that are less obvious, such as keyboard menus that obscure the button or icon.

In the Dashboard Logs

One of the most-used features in our platform is the ability to access detailed logs whenever an issue is found, allowing developers to track and troubleshoot the issue. This is invaluable when troubleshooting such problems:

Jul 17 14:14:37 iPhone threender[1325] : *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no current user ID set. Can't create fetch request for current user without ID'
    *** First throw call stack:
    (0x182b0c2d8 0x1947d80e4 0x182b0c198 0x1839c0ed4 0x10010b2d8 0x100127758 0x100126ec4 0x100126850 0x10016b72c 0x187584c18 0x187584928 0x10014c5b0 0x10014c338

Reason

From the above logs, we can determine that the issue is due to a problem retrieving the current user ID, causing an exception. Through the use of both a visual-interface confirmation of an issue and quick access to error logs, 3nder was able to speed up testing through automation and diagnose and fix issues more quickly. In this case, it was a matter of improving how the app handles exceptions in that part of the code.

UI issue

Automated testing is not just for regression testing and finding exceptions and crashes, it can also be very helpful in finding user interface issues. Because our test steps are written in Calabash, an intuitive, human-readable format, UI and UX issues can be modeled relatively easily.

Testmunk 3nder Case Study from Testmunk on Vimeo.

Page indicator didn’t show the correct page

One such UI issue discovered via Testmunk was a malfunctioning page indicator during the tutorial, which in turn prevented people from getting through the tutorial.

3nder-page-indicator-issue

UX issue

Alert on Profile Details that prevented user creation

Another error discovered included an alert that appeared on the Profile Details page. The issue would occur if the user selected the Imaginary Name field and then skipped to the About Me section. In a sense the alert did belong and appear when it should, however, it failed to disappear once the Imaginary Name field was filled in. The only way to get rid of the alert was to go back to previous screen and open Profile Details again. This would have quickly grated on customer nerves.

3nder-profile-detail-issue

Creating Test Steps

Because of Testmunk’s intuitive and human-readable test step language and our library of over 50 pre-configured test cases, 3nder was able to cover much of their automated testing “out-of-the-box.” Test cases specific to their app were covered by collaboration with Testmunk’s QA engineers, ensuring as close to full test coverage as possible. Below you can see a few samples of our Calabash testing language, which has the added benefit of being cross-platform capable, for when 3nder is ready to test their Android version.

 Scenario: As a new user I'd like to quickly see who is around me
   Given I am on the Welcome Screen
   When I press "See people around"
   And I press "Male"
   And I press "Male + Female couple"
   And I press "Male + Male couple"
   And I press "Female + Female couple"
   And I press "TS / TG / TV"
   And I press Orange Next button
   Then I should see "Tutorial"
   And I press Orange Next button
   And I enable location if needed
   Then I should see "People around"
   When I wait for 3 seconds
   Then I see a person


 Scenario: Terminate an account from Settings
   Given I am on the Welcome screen
   When I press "Login / Register"
   And I log in as "XXXXXX" with "XXXX" as the password
   When I set my profile
   And I wait for 3 seconds
   And I enable location if needed
   And I pass the tutorial
   And I wait to see People
   When I press Settings icon
   And I wait to see "Settings"
   And I press "Settings"
   And I wait to see "Terminate"
   And I press "Terminate"
   Then I wait to see "Can we at least hug goodbye?"
   When I press "Terminate"
   Then I wait to see "You will loose all purchases, matches and swipes!"
   When I press "Yes"
   Then I wait to see "Goodbye"
   And I wait to see "Hello! Nice to meet you"


 Scenario: Dislike / like a person in Lookaround by swiping the screen
   Given I am on the Welcome screen
   When I press "Login / Register"
   And I log in as "XXXXXX" with "XXXXXX" as the password
   And I wait to see People
   And I wait for 5 seconds
   When I see a person
   And I swipe the screen "down"
   And I wait for 2 seconds
   Then I should see another person
   When I swipe the screen "up"
   And I wait for 2 seconds
   Then I should see another person


 Scenario: Free user who wants to go incognito should be redirected to Majestic screen
   Given I am on the Welcome screen
   When I press "Login / Register"
   And I log in as "XXXXXX" with "XXXX" as the password
   And I wait to see People
   When I press Settings icon
   And I wait to see "My Profile"
   And I press "My Profile"
   And I wait to see "Edit profile"
   And I press "Edit profile"
   Then I should be on Edit Profile screen
   When I switch to incognito mode
   And I wait for 3 seconds
   Then I should see "Majestic"
   And I should see text containing "Enjoy many premium features"

Outlook

At the moment, Dimo and his team already have 10 automated test cases in place, however, their app has many more features that they’d like to cover and the extension of new testcases is on the todo. Also, up to this point the testing has mainly been executed on the production database, which has certain limitations, especially evolving around changing data. In order to have more reliable data and cover more testcases, 3nder is in the process of creating test profiles which will be linked to a staging database. Further down the road, 3nder may consider setting up a continuous integration server. We here at testmunk look forward to continue working with 3nder to spice up their mobile app testing.

Are you interested in finding bugs in your app like the ones we found here? Let us know!

martin_poschenrieder About the author:
Martin Poschenrieder has been working in the mobile industry for most of the past decade. He began his career as an intern for one of the few German handset manufacturers, years before Android and iPhone were launched. After involvement with several app projects, he soon realized that one of the biggest pain-points in development was mobile app testing. In order to ease this pain, he started Testmunk. Testmunk is based in Silicon Valley, and provides automated app testing over the cloud.
Follow Martin on twitter

Testmunk automates mobile app testing

LEARN MORE

Read next


Managing a Mobile Device Lab

Posted by Martin Poschenrieder on October 14th, 2015

iOS 9 Testing Available

Posted by Robert Bayer on October 1st, 2015

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>