User:DWalden (WMF)/Copy paste diffs

From mediawiki.org

Test strategy for CommTech's Copy and paste from diffs project.

This strategy is non-exhaustive and not final. As we learn more about the software/project, we should update this document to reflect that.

Rationale and high-level requirements for this project can be found on meta:Community_Tech/Copy_paste_diffs.

Instructions[edit]

From article history page[edit]

  1. Find an article
  2. Click "View History"
    • If necessary, change the radio buttons to choose which edit revisions to compare
  3. Click "Compare selected revisions"

While editing a page[edit]

  1. Find an article
  2. Edit it with the source editor
  3. Change some text
  4. Click "Show changes" at the bottom of the page

Oracles[edit]

(i.e. how we recognise potential bugs)

  • Initially, most of the changes are only going to be on beta. Therefore, we can compare beta's behaviour against https://test.wikipedia.org (or any production wiki).
  • Actions like selecting text, copying, keyboard shortcuts, etc. all have fairly well defined behaviours and people expect them to behave in a particular way.
  • The browser console will display JavaScript exceptions.

Test Ideas[edit]

  • How do different types of edit (add, remove, move text) appear on the diff page?
  • Test that keyboard shortcuts that relate to selecting and copying text work (you can find lists of keyboard shortcuts on the internet, such as here and here).
    • It appears these might behave slightly differently in different browsers (e.g. shift+arrows on Firefox vs. Chrome/Safari).
  • Test on different user interface languages (especially right-to-left).
  • Test on different skins.
  • Test on different devices and browsers (What about touch devices?)
  • Test with different user preferences enabled/disabled (by going to Special:Preferences). For example:
    • "Do not show page content below diffs"
    • "Edit pages on double click"
    • Need to enumerate all of these
  • Test the diff page with javascript disabled on your browser (probably low priority though).

Instrumentation[edit]

Using browser devtools you should be able to access JavaScript objects/methods that might give you more insight into what the browser is currently selecting:

Open Questions[edit]

Tools[edit]

Testing Sessions[edit]