Platform Acceptance Test for Predictive‐Text - keymanapp/keyman GitHub Wiki

Warning

These acceptance tests are now deprecated as the source for formal testing. Formal testing is done against regression tests stored in a test suite managed by the test team. Developers can update acceptance tests here on the wiki, however, if the developer recommends a test needs to be added to the formal tests contact the test team.

Predictive-Text Acceptance Test Procedures

  1. These test procedures are to be run before moving from alpha to beta, or beta to stable, or before PRs are merged into stable branches.
  2. Copy these lists of tests into a new issue (for tier transitions) or a comment on the PR.
  3. Use User Testing format for documenting tests.

Remember that Keyman predictive text is run under KeymanWeb as embedded into the iOS and Android apps.

User Testing

SUITE_PREDICTION: predictive-text tests

  • GROUP_ANDROID: Run the tests via Keyman for Android. Use the keyboard in-app.
  • GROUP_IOS: Run the tests via Keyman for iPhone and iPad. Use the keyboard in-app.
  • GROUP_WEB: Run the tests via Chrome remote-device emulation on the Web test page "Prediction - robust testing".

TEST_PRED_CHAIN_APPLY: Apply numerous suggestions in sequence and verify that they apply properly.

TEST_PRED_TEXT_SUGGEST_ANDROID: Verify that predictive text produces appropriate suggestions and that they apply properly.

  • Test with gff_amharic.
  • Verify that reversions work properly. (Tap backspace after applying a suggestion, then the left-most "suggestion".)

TEST_CLEAR_CONTEXT: Verify that predictive text throws no errors when clearing the context / deleting all text.

TEST_PRED_LONG_TEXT_REVERSIONS: Verify that predictive text produces appropriate suggestions and that they apply properly.

  • Test with sil_euro_latin.

  • Type the following text, in full:

    applesauce and orange juice don't seem like they'd make for the best breakf
    
  • Tap the breakfast suggestion.

  • Tap backspace.

  • Tap the reversion ("breakf")

  • Verify that the reversion is properly applied and that Android does not signal any errors (via toasts, notifications, or otherwise).

TEST_PERIOD_APPLY_OVERWRITE: Using the sil_euro_latin keyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.

  • Type testi
  • Tap the testing suggestion
  • Then tap the . key.
  • Verify that testing. is the result, with no appended whitespace.

TEST_SPACE_APPLY_OVERWRITE: Using the sil_euro_latin keyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.

  • Type testi
  • Tap the testing suggestion
  • Then tap the key.
  • Verify that testing is the result.

TEST_PERIOD_APPLICATION: Using the sil_euro_latin keyboard, check if punctuation typed with a highlighted suggestion applies it and appears afterward.

  • Type testi and verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)
  • Then tap the . key.
  • Verify that testing. is the result, with no appended whitespace.
  • Tap . again and verify that it outputs a new ..

TEST_SPACE_APPLICATION: Using the sil_euro_latin keyboard, check if punctuation typed with a highlighted suggestion applies it and appears afterward.

  • Type testi and verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)
  • Then tap the key.
  • Verify that testing is the result, with no appended whitespace.
  • Tap and verify that it outputs a new .

TEST_PERIOD_OVERWRITE_REVERSION: Using the sil_euro_latin keyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.

  • Type testi
  • Tap the testing suggestion
  • Then tap the . key.
  • Verify that testing. is the result, with no appended whitespace.
  • Backspace over the . and verify that a proper reversion is displayed: "testi"
  • Apply the reversion and verify that no errors result.
  • Clear the context and type 3 words, then a space, and then repeat this test until reaching this line.

TEST_PERIOD_APPLICATION_REVERSION: Using the sil_euro_latin keyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.

  • Type testi and verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)
  • Then tap the . key.
  • Verify that testing. is the result, with no appended whitespace.
  • Backspace over the ., landing at testing, and verify that a proper reversion is displayed: "testi"
  • Apply the reversion and verify that no errors result.
  • Clear the context and type 3 words, then a space, and then repeat this test until reaching this line.

TEST_PERIOD_APPLICATION_DELAYED_REVERSION: Using the sil_euro_latin keyboard, check if punctuation typed immediately after applying a suggestion erases the whitespace.

  • Type testi and verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)
  • Then tap the . key.
  • Verify that testing. is the result, with no appended whitespace.
  • Tap . again and verify that it outputs a new ..
  • Backspace over the . and verify that a proper reversion is displayed: "testi"
  • Apply the reversion and verify that no errors result.
  • Clear the context and type 3 words, then a space, and then repeat this test until reaching this line.

TEST_MULTITAPS: Verify that the . key on english_punct_rota rotates through the desired punctuation marks.

  1. Erase all text.
  2. Tap the . key four times, rotating through ., ,, and ?, landing on !.
  3. Type the following text: Testing is important . (Include the space mark.)
  4. Repeat step 2 above and verify that only the punctuation mark is altered.

TEST_MULTITAP_OVERWRITE: Using a keyboard with a multitap punctuation rota key, check if punctuation typed immediately after applying a suggestion erases the whitespace, even on repeated taps.

  • Install the keyboard package found at https://jahorton.github.io/english_punct_rota.kmp.

    It may be installed via the following QR link as well:

  • Type testi

  • Manually apply the testing suggestion.

  • Then tap the . key four times, rotating through ., ,, and ?, landing on !.

  • Verify that the results are testing., testing,, testing?, and the final result is testing!, with no appended whitespace.

TEST_MULTITAP_APPLICATION: Using a keyboard with a multitap punctuation rota key, check if punctuation typed with a highlighted suggestion applies it and appears afterward, even on repeated taps.

  • Install the keyboard package found at https://jahorton.github.io/english_punct_rota.kmp.

    It may be installed via the following QR link as well:

  • Type testi and verify that it is selected / highlighted. (If it isn't, delete its text and retype - tap accuracy may help.)

  • Then tap the . key four times, rotating through ., ,, and ?, landing on !.

  • Verify that the results are testing., testing,, testing?, and the final result is testing!, with no appended whitespace.

TEST_SUGGESTIONS_ON_BKSP: Using Keyman for Android, verify that reasonable suggestions are displayed for text after using BKSP to reach the end of a previous word.

  • Type term
  • Type
  • Tap backspace once.
  • Multiple suggestions should be displayed, all based on 'term'.

TEST_DELAYED_ON_WORD: Using the sil_euro_latin keyboard, check if deleting characters up to the end of an applied suggestion's main body displays a reversion.

  • Type trials .
  • Tap the and suggestion.
  • Type testi, then tap space to automatically apply it. (Restart this test if it is not automatically highlighted somehow.)
  • Type ab.
  • Delete ab so that you end up immediately after testing.
  • Verify that a "testi" reversion is displayed.
  • Apply it and verify that the full text reverts to trials and testi.
  • Verify that the original suggestions are displayed, but no suggestion is automatically selected / highlighted.
  • Type 'a' and verify that no errors, notifications, or warnings are displayed.

TEST_DELAYED_ON_SPACE: Using the sil_euro_latin keyboard, check if deleting characters up to the end of an applied suggestion's main body displays a reversion.

  • Type trials .
  • Tap the and suggestion.
  • Type testi, then tap space to automatically apply it. (Restart this test if it is not automatically highlighted somehow.)
  • Type ab.
  • Delete ab so that you end up immediately after the whitespace after testing.
  • Verify that a "testi" reversion is displayed.
  • Apply it and verify that the full text reverts to trials and testi.
  • Verify that the original suggestions are displayed, but no suggestion is automatically selected / highlighted.
  • Type 'a' and verify that no errors, notifications, or warnings are displayed.

TEST_DOUBLE_DELAYED: Using the sil_euro_latin keyboard, check if two suggestions can be reverted in rapid succession.

  • With the context empty, type that.
  • Type a p, then apply the point suggestion.
  • Apply the of suggestion, giving you that point of .
  • Tap backspace and verify that a "" suggestion is displayed.
  • Tap the "" suggestion and verify that the text becomes that point .
  • Tap backspace again and verify that a "p" suggestion is displayed.
  • Tap the "p" suggestion and verify that the text becomes that p.

TEST_ROBUSTNESS: Spend at least 5 minutes trying to "break" predictive text and/or cause it to work improperly. Report back on any issues discovered.