User:DWalden (WMF)/Copy paste diffs

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