External and Internal Testing in iOS

Ashish Malik
5 min readNov 30, 2020

Testing has always played a vital role in app development. Currently, in iOS apps, we can go for external and internal testing. In testflight, we have two types of testers:

  • Internal Tester: This kind of user who has an Admin, App Manager, Legal, Developer or Marketer role with access to the application. The account’s owner can add up to 100 internal testers, and each member can test up to 30 devices.
  • External Tester: This kind of user is not a part of the organization. They have no access to your App Store Connect account, and they can only download and install the app. The account’s owner can add up to 10,000 external testers.

This kind of testing can only be performed once the user submits the app for review in a same way as regular app is submitted on the store. These reviews are generally quicker than normal app review and once the app is approved, external testing can start testing.

Whenever the app store connect completes processing the build, all internal testers are notified.

Details about Internal Testers:

Adding Internal Testers: Open the users and Access section post logging into App store connect. Once the internal tester’s email ID is added, she/he will receive an invite for the same.

Click the + button to add a new internal tester. Make sure the user has an apple ID else they have to create an apple account to access the same. Only internal tester needs to have an apple ID, external tester can refrain from this requirement. Assign the appropriate role to the tester. If you are not sure about the role, choose App Manager. This option allows beta testing management and the ability to download apps.

Once the setting up of new user is done, click invite. User thus, gets an invite and post accepting the same, she/he can test the application.

Now we are done with creating a new internal beta tester. Next step is to start the beta testing. For this, user can go to ‘My Apps’ section on the app store connect home page and click on the required app:

Then, select the Activity tab. Activity tab contains all the builds uploaded by developer so far. If the build is in processing state, tester might have to wait for sometime before the status changes to processed.
Now, click on testflight tab. Click on the yellow warning sign which might appear next to the build. Complete the required steps and then the build status will change to Ready to Test.

Next, click App Store Connect Users from the menu on the left. A searchable list of all internal testers is shown. You can click and add that tester as an internal tester to the particular build.

All selected testers will receive an email with a link to download and install this build via the TestFlight app.

Details about External Testers:

We can use a similar way to add External Tester. Let us dive into the process.
Firstly, click on testflight and click Test Information on the left. Provide all necessary details as shown in the below screenshot and click Save. This information is required to initiate the external testing process.

Once the information is saved, click + sign on the right of External Groups. Create a new group with a name, for instance ‘abc’ as being used in the below screenshot.

Once you’ve created the group, you can start adding external testers to it. Click + next to Testers(0) under Testers:

You can choose between adding new testers manually, adding existing testers — people already testing another one of your apps or builds — or importing testers from a CSV file. For this tutorial, you’ll add new testers manually. Choose Add New Testers and click Next.

Add the email address, first and last name of any required external tester. Keep in mind that we have a limit of 10,000 external testers.

Selecting a Build
You now need to select a build for your external testers to test. On the Builds tab, click the + button:

Then, select your build and click Next:

Note: The reason why a separate build is selected for internal and external testing is that you might want them to test separate builds. One might be testing the master release and the other might be working on next feature testing.
There could be more questions while selecting the build such as app requires sign-in or not.

Once all the steps are completed, the build can be provided for testing.
Post this, the app is added to be reviewed and its current status changes to ‘Waiting for Review’. You need to make sure that the build must comply with the App Store Review Guidelines. Once Apple approves the current build, subsequent builds won’t need any review if the developer doesn’t change the version number of app.

Post the review, an email is sent with confirmation that external testing can be done. If you select to notify external testers automatically, the external testers receive the mail directly to start testing. Else, you will have to open App Store Connect to select the build and notify external testers.

Note: A build is only valid for 90 days. If you want your testers to use the app beyond that, you’ll have to upload a new build before the expiration date and your testers will have to download that new build.

--

--