Functional Testing for a Custom Skill


The functional tests verify that:

  • The skill's basic functionality matches the information displayed on the skill's detail card in the Amazon Alexa app. You enter this data on the Distribution page for the skill on the developer console.

    See Define Skill Store Details and Availability for more details about defining this card.

  • The skill's core functionality works and provides useful cards to the Amazon Alexa app.

Use the Amazon Alexa app for these tests. The Alexa app is available for Fire OS, Android, iOS, and web browsers. The Alexa app displays all of your skills currently under development, as well as all published skills.

To return to the high-level testing checklist, see Certification Requirements for Custom Skills.

3.1. Review and test example phrases

Example phrases are shown on the skill's detail card in the Alexa app to help users understand how to interact with the skill. You select these phrases from your sample utterances to ensure accuracy.

These are the phrases users are most likely to try the first time they interact with the skill. Therefore, make sure that they work well and provide a good user experience.

Detail Card for a Skill in the Alexa App
Detail Card for a Skill in the Alexa App

The example phrases you enter on the Distribution page are automatically validated against several criteria after you enter them. Correct any errors or warnings before your submit. Note that this does not check for all possible problems, so review the tests below as well.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll or search to find your skill.

Review the skill's detail page. Inspect all example phrases listed in the skill's detail card.

  • At least one example phrase has been provided.
  • The first phrase clearly indicates how to begin using the skill, and includes both the wake word "Alexa" and invocation name.
  • Example phrases containing the wake word "Alexa" and invocation name must use a supported format for invoking a skill. For a list of supported formats, see Understand How Users Invoke Custom Skills.
  • The example phrases do not contain any additional information that is not intended to be spoken by users. The example phrases must function exactly as they are written.
  • The invocation name uses title case.
  • The example phrases do not contain any emoticons, symbols, or grammatical errors.
  • Each example phrase ends with punctuation.
  • The example phrases show how to launch the skill. They do not illustrate enabling the skill by voice. For example, the phrase must not be something like "Alexa, enable <skill name>."
  • The example phrases are all written in the same language used by the Alexa account. For instance, when using an account configured with German, the phrases are written in German.

2.

Edit your skill in the developer console. Your sample utterances are defined within each intent. Click the intent, review the utterances, and verify that your chosen example phrases match existing sample utterances.

For more about defining example phrases, see Define Skill Store Details and Availability: Example Phrases for Custom Skills.

If you are using the utterance for a built-in intent for an example phrase, the utterance does not need to be in your sample utterances. However, fully test the utterance and verify that your skill returns a valid response.

Each example phrase is explicitly included in the sample utterances.

For instance, if you have this example phrase:

  • Alexa, ask Tide Pooler when is high tide in Seattle.

Then you must also have this utterance:

  • OneshotTideIntent when is high tide in {City}

Any slots in the example phrase (such as Seattle in this example) must be filled with an example of a valid slot value. In this example, City is a custom slot type, and "Seattle" is a value explicitly defined for the City type.

3.

Launch the skill using each of the provided example phrases.

Each example phrase renders a contextualized, non-error response.

3.2. Skill description and detail page

The skill description teaches users about what your skill can do and how to use it. The description is displayed in the Alexa app when users view available skills. Define the description on the Distribution page.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with English, the skill short description is displayed in English.

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with English, the skill description is displayed in English.
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with English, the page should display in English.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with English, the privacy policy and terms of use must be in English.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with English, the skill short description is displayed in English.

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with English, the skill description is displayed in English.
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with English, the page should display in English.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with English, the privacy policy and terms of use must be in English.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with French, the skill short description is displayed in French.
  • Any references to the term "skill" use "skill" and not the literal translation "compétence". Note that "skill" is feminine ("la skill" or "une skill").

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with French, the skill description is displayed in French.
  • Any references to the term "skill" use "skill" and not the literal translation "compétence". Note that "skill" is feminine ("la skill" or "une skill").
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with French, the page should display in French.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with French, the privacy policy and terms of use must be in French.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with German, the skill short description is displayed in German.
  • Any references to the term "skill" use "skill" and not the literal translation "fähigkeit". Note that "skill" is feminine ("die skill" or "eine skill").

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with German, the skill description is displayed in German.
  • Any references to the term "skill" use "skill" and not the literal translation "fähigkeit". Note that "skill" is feminine ("die skill" or "eine skill").
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with German, the page should display in German.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with German, the privacy policy and terms of use must be in German.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with Hindi, the skill short description is displayed in Hindi.
  • Any references to the term "skill" use "skill" and not the literal translation "हुनर" or "कौशल".

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with Hindi, the skill description is displayed in Hindi.
  • Any references to the term "skill" use "skill" and not the literal translation "हुनर" or "कौशल".
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with Hindi, the page should display in Hindi.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with Hindi, the privacy policy and terms of use must be in Hindi.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with Italian, the skill short description is displayed in Italian.
  • Any references to the term "skill" use "skill" and not the literal translation "abilità". Note that "skill" is feminine ("la skill" or "una skill").

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with Italian, the skill description is displayed in Italian.
  • Any references to the term "skill" use "skill" and not the literal translation "abilità". Note that "skill" is feminine ("la skill" or "una skill").
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with Italian, the page should display in Italian.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with Italian, the privacy policy and terms of use must be in Italian.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with Japanese, the skill short description is displayed in Japanese.
  • Any references to the term "skill" use "skill" and not the literal translation "スキル", "アプリ".

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with Japanese, the skill description is displayed in Japanese.
  • Any references to the term "skill" use "skill" and not the literal translation "スキル", "アプリ".
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with Japanese, the page should display in Japanese.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with Japanese, the privacy policy and terms of use must be in Japanese.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with Portuguese, the skill short description is displayed in Portuguese.
  • Any references to the term "skill" use "skill" and not the literal translation "habilidade". Note that "skill" is feminine ("a skill" or "uma skill").

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with Portuguese, the skill description is displayed in Portuguese.
  • Any references to the term "skill" use "skill" and not the literal translation "habilidade". Note that "skill" is feminine ("a skill" or "uma skill").
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with Portuguese, the page should display in Portuguese.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with Portuguese, the privacy policy and terms of use must be in Portuguese.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

Test Expected Results

1.

Open the Alexa app, click Skills and then scroll to your skill. Review the short description shown in the list of skills

  • The short description describes the skill's core functionality.
  • The short description is written in the same language used by the Alexa account. For instance, when using an account configured with Spanish, the skill short description is displayed in Spanish.
  • Any references to the term "skill" use "skill" and not the literal translation "habilidad". Note that "skill" is feminine ("la skill" or "una skill").

2.

Open the detail card for the skill. Review the skill's full description shown on the skill's detail card.

  • The skill description captures any prerequisites needed to use the skill (such as additional hardware, software, or accounts).
  • The description describes the skill's core functionality.
  • The description does not misrepresent the skill's functionality.
  • The description is written in the same language used by the Alexa account. For instance, when using an account configured with Spanish, the skill description is displayed in Spanish.
  • Any references to the term "skill" use "skill" and not the literal translation "habilidad". Note that "skill" is feminine ("la skill" or "una skill").
  • If the skill integrates with Raspberry Pi or a similar device, the description must:
    1. Mention that a Raspberry Pi (or similar device) is required to access core functionality of the skill.
    2. Include links to documentation explaining how to configure the Raspberry Pi with the skill.
  • The description must not claim that the skill has any anti-virus features.
  • If the description includes any example phrases, the phrases are worded correctly and include the wake word when the example is intended to show how the user invokes the skill.

3.

If either the short description or full description includes any URLs (such as directing users to more information about the skill), visit the URL in a browser and verify the page opens without error.

  • The page referenced by the description opens without error.
  • The page is displayed in the same language used by the Alexa account. For instance, when using an account configured with Spanish, the page should display in Spanish.

4.

If your skill's detail page includes links to a privacy policy or terms of use, open the links in a browser.

  • The privacy policy / terms of use links shown on the skill detail page open without error.
  • The pages are displayed in the same language used by the Alexa account. For instance, when using an account configured with Spanish, the privacy policy and terms of use must be in Spanish.

5.

Review the skill title and ensure it is relevant to the core functionality of the skill.

  • The title is relevant to the skill description and is not misleading.
  • The title of the skill is free of typos and grammatical errors.

6.

Review the skill icon and ensure it is not cropped or blank.

The icon is not cropped or blank.

3.3. Cards

Cards are graphical cards displayed in the Alexa app to describe or enhance the voice interaction.

Test Expected Results

1.

Walk through the skill's functionality, invoking each intent. For each response that includes a card, review the card in the Alexa app. (Open the Alexa app and navigate to the Activity page.)

For each card:

  • The card title and content are appropriate in the context of the skill's functionality.
  • The card title and content do not contain any code references or grammatical errors.
  • The card title and content are written in a language supported by Alexa.
  • If the card includes an image, the image is correctly displayed.

2.

If any cards include URLs, visit each URL in a browser and verify the page opens without error.

For each URL displayed in a card:

Note that skills normally only return cards when responding with the information the user requested. Supportive prompts to ask the user for more information do not normally include cards.

Cards can be a useful tool when developing and debugging a skill, but be sure to remove any extraneous debug-type cards before submitting the skill.

3.4. Account Linking

If your skill needs to connect the identity of the end user with a user in another system (account linking), this test verifies that the skill implements the solution described in Account Linking for Custom Skills correctly. At a high level, this means:

  • When the user invokes an intent that requires authorization, the skill successfully authenticates and completes the request.
  • The skill returns the LinkAccount card if a user invokes an intent that requires authorization, but has not yet linked their account.

When you submit your skill for certification, automated tests check for common certification issues. To ensure that your skill passes these tests, use your Amazon developer account to link your skill with a test account in your other system before you submit:

  1. In your other system, make sure you have a test account to use with your skill. For example, if your skill connects with your "Ride Hailer" service, you need a Ride Hailer test account. Be sure to use a test account for this purpose, as you will need to share the credentials for this account with the certification team.
  2. Log in to the Alexa app with the Amazon developer account you used to create the skill.

  3. Enable your skill in the Alexa app and start the account linking flow.
  4. Complete the account linking flow using the test account from step 1. Continuing the earlier example, use your test credentials to link the skill to "Ride Hailer".
  5. Test that the skill is successfully linked to the other service. Your Amazon developer account should now be connected with the test account in the other service.
  6. When you submit your skill, provide the credentials (account and password) for the test account in the Testing Instructions field.

If your skill does not use account linking, you can skip this test.

Test Expected Results

1.

In the developer console, review the Account Linking page for the skill and verify that account linking is configured correctly.

  • The Do you allow users to create an account or link to an existing account with you? option is enabled.
  • The Authorization URI is set to the login page for your service.

2.

In the Alexa app, review the detail card for your skill. Verify that the skill description explains that you must log in to the other system to use the skill.

The description clearly explains the steps and information necessary to successfully link the accounts.

3.

Log in to the Alexa app as an Alexa user who has not yet enabled the skill, or log in and then disable the skill.

Enable the skill, but do not complete the account linking process, leaving the skill enabled but not linked.

  1. Invoke any intents that do not require authentication and verify that they work.
  2. Invoke the intents that do require authentication and verify that the skill sends the LinkAccount card and an appropriate prompt.
  • Each intent that does not require authentication works correctly even when accounts are not linked.
  • Each intent that does require authentication returns output speech telling the user what to do, and a LinkAccount card. Verify the card in the Alexa app.

4.

Disable the skill or log in to the Alexa app as an Alexa user who has not yet enabled the skill.

Enable the skill. Once the login page for your skill is displayed, click all links and verify that they navigate to new pages.

  • All clickable links on the login page navigate to new pages.
  • None of the clickable links open JavaScript alerts or popup windows.

5.

Disable the skill or log in to the Alexa app as an Alexa user who has not yet enabled the skill.

Enable the skill. Once the login page for your skill is displayed, log in and verify the account linking flow.

  • The login page for your skill is displayed correctly.
  • You can successfully log in using an account with the service.
  • After connecting the accounts, you can successfully invoke each intent that requires authentication.

3.5. Audio playback

Complete these tests if your skill uses the AudioPlayer interface to stream audio.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "وقفي التشغيل مؤقتاً")
  • AMAZON.ResumeIntent (say "استمري")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "إلغاء")
  • AMAZON.LoopOffIntent (say "انهي التكرار")
  • AMAZON.LoopOnIntent (say "ابدي التكرار")
  • AMAZON.NextIntent (say "الجاية")
  • AMAZON.PreviousIntent (say "ارجع")
  • AMAZON.RepeatIntent (say "كرّري")
  • AMAZON.ShuffleOffIntent(say "انهي شفل")
  • AMAZON.ShuffleOnIntent (say "شفل")
  • AMAZON.StartOverIntent (say "ابدي مرة ثانية")
  • AMAZON.StopIntent (say "بطلي")

Each command either does something that makes sense for your skill (such as "الجاية" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

5.

If your skill plays audio that contains a wake word, play that audio on an Alexa device.

If your skill plays audio that contains a wake word, the wake word in the audio might wake up the device. Make sure that your skill's audio does not wake up the device. One way to do this is to make sure that there are no pauses after the wake word.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "pause")
  • AMAZON.ResumeIntent (say "resume")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "cancel")
  • AMAZON.LoopOffIntent (say "loop off")
  • AMAZON.LoopOnIntent (say "loop on")
  • AMAZON.NextIntent (say "next")
  • AMAZON.PreviousIntent (say "previous")
  • AMAZON.RepeatIntent (say "repeat that")
  • AMAZON.ShuffleOffIntent(say "shuffle off")
  • AMAZON.ShuffleOnIntent (say "shuffle")
  • AMAZON.StartOverIntent (say "start over")
  • AMAZON.StopIntent (say "stop")

Each command either does something that makes sense for your skill (such as "next" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

5.

If your skill plays audio that contains a wake word, play that audio on an Alexa device.

If your skill plays audio that contains a wake word, the wake word in the audio might wake up the device. Make sure that your skill's audio does not wake up the device. One way to do this is to make sure that there are no pauses after the wake word.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes.
  • If the audio content includes words or speech, the content is spoken in a language supported by Alexa. The current supported languages are English, French, and German.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "pause" or "pause ça")
  • AMAZON.ResumeIntent (say "continue" or "reprends")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "annule")
  • AMAZON.LoopOffIntent (say "arrête le mode boucle")
  • AMAZON.LoopOnIntent (say "mets en boucle")
  • AMAZON.NextIntent (say "suivant")
  • AMAZON.PreviousIntent (say "précédent")
  • AMAZON.RepeatIntent (say "est-ce que tu peux répéter")
  • AMAZON.ShuffleOffIntent(say "arrête la lecture aléatoire")
  • AMAZON.ShuffleOnIntent (say "mélanger")
  • AMAZON.StartOverIntent (say "recommence")
  • AMAZON.StopIntent (say "arrête")

Each command either does something that makes sense for your skill (such as "next" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "Pause")
  • AMAZON.ResumeIntent (say "Fortsetzen")
  • The "Pause" utterance stops the audio playback.
  • The "Fortsetzen" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "abbrechen")
  • AMAZON.LoopOffIntent (say "deaktiviere den Wiederholmodus")
  • AMAZON.LoopOnIntent (say "aktiviere den Wiederholmodus")
  • AMAZON.NextIntent (say "nächste")
  • AMAZON.PreviousIntent (say "vorherige")
  • AMAZON.RepeatIntent (say "wiederholen")
  • AMAZON.ShuffleOffIntent(say "deaktiviere die Zufallswiedergabe")
  • AMAZON.ShuffleOnIntent (say "aktiviere die Zufallswiedergabe")
  • AMAZON.StartOverIntent (say "beginne von vorne")
  • AMAZON.StopIntent (say "Stopp")

Each command either does something that makes sense for your skill (such as "nächste" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "ज़रा रुक")
  • AMAZON.ResumeIntent (say "फिर से चालू करो")
  • The "रोक दो" utterance stops the audio playback.
  • The "फिर से चालू करो" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "रद्द करें")
  • AMAZON.LoopOffIntent (say "loop बंद")
  • AMAZON.LoopOnIntent (say "इसको loop कर दो")
  • AMAZON.NextIntent (say "अगला")
  • AMAZON.PreviousIntent (say "पिछला")
  • AMAZON.RepeatIntent (say "क्या कहा आपने")
  • AMAZON.ShuffleOffIntent(say "shuffle बंद")
  • AMAZON.ShuffleOnIntent (say "shuffle")
  • AMAZON.StartOverIntent (say "दुबारा से शुरू करो")
  • AMAZON.StopIntent (say "इसे बंद करो")

Each command either does something that makes sense for your skill (such as "अगला" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

5.

If your skill plays audio that contains a wake word, play that audio on an Alexa device.

If your skill plays audio that contains a wake word, the wake word in the audio might wake up the device. Make sure that your skill's audio does not wake up the device. One way to do this is to make sure that there are no pauses after the wake word.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes.
  • If the audio content includes words or speech, the content is spoken in a language supported by Alexa. The current supported languages are English, French, and German.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "metti in pausa")
  • AMAZON.ResumeIntent (say "continua")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "annulla")
  • AMAZON.LoopOffIntent (say "mi puoi disattivare la modalità loop")
  • AMAZON.LoopOnIntent (say "mi puoi attivare la modalità loop")
  • AMAZON.NextIntent (say "il prossimo")
  • AMAZON.PreviousIntent (say "il precedente")
  • AMAZON.RepeatIntent (say "ripeti")
  • AMAZON.ShuffleOffIntent(say "mi puoi disattivare la modalità shuffle")
  • AMAZON.ShuffleOnIntent (say "mi puoi attivare la modalità shuffle")
  • AMAZON.StartOverIntent (say "ricomincia")
  • AMAZON.StopIntent (say "basta")

Each command either does something that makes sense for your skill (such as "la prossima" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "一時停止")
  • AMAZON.ResumeIntent (say "再開")
  • The "一時停止" utterance stops the audio playback.
  • The "再開" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "キャンセル")
  • AMAZON.LoopOffIntent (say "ループ再生オフ")
  • AMAZON.LoopOnIntent (say "ループ再生して")
  • AMAZON.NextIntent (say "次")
  • AMAZON.PreviousIntent (say "前へ")
  • AMAZON.RepeatIntent (say "繰り返して")
  • AMAZON.ShuffleOffIntent(say "シャッフル止めて")
  • AMAZON.ShuffleOnIntent (say "シャッフル再生して")
  • AMAZON.StartOverIntent (say "最初から始めて")
  • AMAZON.StopIntent (say "止めて")

Each command either does something that makes sense for your skill (such as "次" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes. For information about normalizing audio loudness, see Normalizing the Loudness of Audio Content.
  • For the policies regarding the content of the audio, see Policy Requirements.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "pausar")
  • AMAZON.ResumeIntent (say "continuar")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "cancelar")
  • AMAZON.LoopOffIntent (say "desativar o loop")
  • AMAZON.LoopOnIntent (say "ativar o loop")
  • AMAZON.NextIntent (say "próximo")
  • AMAZON.PreviousIntent (say "anterior")
  • AMAZON.RepeatIntent (say "repetir")
  • AMAZON.ShuffleOffIntent(say "desativar o modo de reprodução aleatória")
  • AMAZON.ShuffleOnIntent (say "ativar o modo de reprodução aleatória")
  • AMAZON.StartOverIntent (say "recomeçar")
  • AMAZON.StopIntent (say "parar")

Each command either does something that makes sense for your skill (such as "next" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the audio. Listen for several minutes.

  • The audio playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes.
  • If the audio content includes words or speech, the content is spoken in a language supported by Alexa. The current supported languages are English, French, and German.

2.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.PauseIntent (say "pausa")
  • AMAZON.ResumeIntent (say "reanuda")
  • The "pause" utterance stops the audio playback.
  • The "resume" utterance resumes the audio playback.

3.

While listening to the audio playback, use a remote control or other hardware device to pause and resume the audio.

  • Pressing a pause button while audio is playing stops the playback.
  • Pressing a play button while the audio is stopped resumes the playback.

Be sure your skill properly handles PlaybackController.PlayCommandIssued and PlaybackController.PauseCommandIssued.

4.

While listening to the audio playback, invoke the following built-in intents:

  • AMAZON.CancelIntent (say "cancela")
  • AMAZON.LoopOffIntent (say "apaga repetición continua")
  • AMAZON.LoopOnIntent (say "repetición continua")
  • AMAZON.NextIntent (say "siguiente")
  • AMAZON.PreviousIntent (say "previo")
  • AMAZON.RepeatIntent (say "repite")
  • AMAZON.ShuffleOffIntent (say "apaga el modo aleatorio")
  • AMAZON.ShuffleOnIntent (say "activa el modo aleatorio")
  • AMAZON.StartOverIntent (say "empieza de nuevo")
  • AMAZON.StopIntent (say "para")

Each command either does something that makes sense for your skill (such as "next" advancing to the next track in a playlist) or is handled gracefully. No unexpected errors occur. See Configuring Your Skill for the AudioPlayer Directives.

3.6 Screen display and navigation

Complete these tests if your skill uses Alexa Presentation Language or the deprecated Display interface to display content on Alexa-enabled devices with screens. Pay particular attention to the interaction of voice, touch, audio, and video in your skill.

Test Expected Results

1.

Open the skill using an Alexa-enabled device with a screen and interact with the skill for several minutes, paying particular attention to the user experience.

  • All GUI content, whether in the form of static templates or video, must load within 10 seconds of the triggering voice or touch input.
  • GUI content (images and video) should not look stretched, grainy or pixelated.
  • The GUI content must not contradict the voice content (whether text-to-speech or audio) that is delivered alongside the GUI content. The GUI content does not need to match exactly, but must complement the voice content.
  • All GUI content should be relevant to the triggering voice input or touch input.
  • GUI content should not contain more than three actions per screen, if the screen is not displaying a list.
  • All actions present on the GUI should also be accessible via voice requests, meaning these actions are implemented as intents and have corresponding sample utterances in the language model.

2.

For Echo Show or Fire TV Cube, place the device at a 7-foot or 2-meter distance from the viewer. Interact with the skill for several minutes.

  • All GUI content should be readable from a 7-foot or 2-meter distance for Echo Show or Fire TV Cube.

3.

Exit the skill using "stop" or "cancel" while touch screen inputs are on the screen.

  • The touch inputs should no longer be displayed once the skill exits.

3.7. Video playback

In addition to the screen display requirements, some of which also apply to video, also complete these tests if your skill uses the VideoApp interface to stream video.

Test Expected Results

1.

Set the volume on the device to 3 and invoke an intent that streams the video. Listen for several minutes.

  • The video playback is audible at volume level 3.
  • The volume of the audio playback does not vary significantly from normal Alexa text-to-speech. The volume remains consistent while playing for several minutes.
  • If the audio content includes words or speech, the content is spoken in a language supported by Alexa. The current supported languages are Arabic (SA), English (AU), English (CA), English (IN), English (UK), English (US), French (CA), French (FR), German (DE), Hindi (IN), Italian (IT), Japanese (JP), Portuguese (BR), Spanish (ES), Spanish (MX), and Spanish (US).
  • Buffering during video playback should not exceed 10% of the total video playback time. For example, for every minute of video playback, buffering must not exceed 6 seconds.
  • During video playback, the audio should be in sync with the video.
  • The video is clearly visible and not grainy, pixelated, or distorted.

2.

While the video plays, use the progress bar on the touchscreen to navigate forward and backward.

Verify that the video resumes without error.

3.8. Duplicates of samples or templates

Make sure your skill is not an exact duplicate of any of the Amazon-provided samples or templates. You can use the samples and templates as a starting point for your skill, but the finished skill must be different.

For example, if you use the Trivia sample to create a trivia skill, your skill must have:

  • A different name
  • A different set of questions

The samples are available on GitHub:

3.9 Device location API

Complete these tests if your skill uses the Device Address API to obtain the location of the user's device.

Test Expected Results

1.

Enable the skill and grant the skill the requested permissions for the device location. Test the functionality that is dependent on the device location and note the responses.

  • All skill responses are appropriate with regards to the device location. For example, a weather skill that uses the device location is expected to give weather information for the city specified in the device location (unless the user provides a different location in an utterance).
  • If the skill communicates the device location back to the user, it matches the specified device location.

2.

Enable the skill, but do not grant the device location permissions.

  1. Invoke any intents that do not require the location and verify that they work.
  2. Invoke the intents that do require the location and verify the response.
  • Each intent that does not require the device location works correctly even the user has not granted the permissions.
  • Each intent that does require the device location returns output speech telling the user to grant the permissions, and a permissions card. Verify the card in the Alexa app.

3.

If applicable, change the device location to a location or address that is not supported by the skill, then enable the skill and grant permissions. Invoke the intents that require the device location.

For example, if your skill provides food delivery in a particular city, set the device location to an address far outside your delivery area, then invoke the intents to place a delivery order.

The skill informs the user that skill does not support their location. No errors are returned.

3.11 Test skills

Alexa skills submitted for certification should have complete functionality and should not be test, trial, samples, or otherwise appear to be under development. The information updated in the distribution section of the developer console should not indicate that the skill is a trial/sample skill. For details about testing skills, see Test Your Skill.

3.12 Customer Profile API

Complete these tests if your skill uses the Alexa Customer Profile API to obtain the customer contact information of the user.

If your skill does not use the Customer Profile API, make sure this permission is turned off:

  1. Edit your skill in the developer console.
  2. Navigate to the Build > Permissions page
  3. Turn off each of the following:
    • Customer Email Address
    • Customer Phone Number
    • Customer Name
Test Expected Results

1.

Enable the skill and grant skill the requested permissions like Customer Name, Customer Email Address, and/or Customer Phone Number. Test the functionality that is dependent on the customer contact Information and note the responses.

All skill responses are appropriate with regards to the customer contact information permission. For example: the weather information requested has been sent to the correct email address. (Based on the permission the skill requires in the skill).

2.

Enable the skill, but do not grant the customer contact information permissions.

  1. Invoke any intents that do not require the customer contact permission and verify that they work.
  2. Invoke the intents that do require the customer contact information and verify the response.

3.

Change the customer contact information, then enable the skill and grant permissions. Invoke the intents that require the customer contact permission.

All skill responses are appropriate with regards to the updated customer contact information and do not return any error message.


Was this page helpful?

Last updated: Jan 26, 2024