Community Wishlist Survey 2022/Better diff handling of paragraph splits/Test strategy

Project documentation

edit

Feature documentation

edit

Test documentation

edit

Where to test it

edit

This needs to be figured out. How will we test the latest version of wikidiff2 and compare its output to previous versions?

How to install locally

edit

By default, local wikis will use an "internal" diff engine.

In order to test wikidiff2 locally, you have to install it on your server. Doc to be written.

Coverage criteria and factors

edit
  • Diff engines
    • We may want to test the "internal" PHP diff engine in case UI changes cause problems
  • Data
    • Different types of wikitext (e.g. tables)
    • Unicode, zero-width, non-printing
  • Different content models
    • JSON, Javascript, CSS, etc.
  • Different languages
  • Different types of diffs and places where they appear
  • Different combinations of Wikidiff2 and VisualEditor
    • Wikidiff2 installed but not VE
    • VE installed but not Wikidiff2
    • Neither installed
  • No JavaScript?
  • Actions on diffs

Oracles

edit
  • Previous version of wikidiff2
  • Other diff engines
  • Hand-crafted "gold standards"
  • UX mockups
  • Self-verifying data?[1]
  • Metamorphic oracles?
  • "Explainability", "Desirability" and "Purpose" oracles[2]

Risks

edit

Quality criteria

edit
  • Usability/understandability
  • Accessibility
  • Performance
  • Other than the intended changes, diffs behave the same as before

Techniques

edit

Nouns and Verbs

edit

Generate sentences combining the nouns, verbs, adverbs and adjectives below to generate ideas for tests (please feel free to expand this list):[3]

  • Verbs
    • Add
    • Remove
    • Replace
    • Modify
    • Move
    • Split
    • Combine
    • Rearrange
    • Copy
  • Nouns
    • Characters
    • Words
    • Sentences
    • Paragraphs
    • Newline
    • Whitespace
  • Adverbs
    • Repeat(edly)
    • Sequentially
    • In parallel
    • From one <noun> to another
  • Adjectives
    • Large
    • Small
    • Multiple
    • Similar
    • Extra

For example, "move sentences from one paragraph to another" gave me the idea for this test case.

Or "combine multiple paragraphs" for this.

Test data

edit

See Community_Wishlist_Survey_2022/Better_diff_handling_of_paragraph_splits/Test_cases.

and w:User:Cacycle/diff_test_cases.

Further examples could be generated:

  • Taken from real-life examples (e.g. from production wikis), see #Random
  • Hand-crafted (see #Techniques)
  • Created programmatically and/or at random

Test tools and scripts

edit

See https://gitlab.wikimedia.org/dwalden/betterdiffs-testing

Random

edit

Selected

edit

Logs and debugging

edit

Current testing status

edit

Test strategy

edit

Testing done

edit

Testing still to do

edit

Testing which will not be done

edit

How-to guides

edit

Other documentation

edit

Notes

edit
  1. https://bbst.courses/materials/BBST%c2%aeFoundations2022.pdf pp. 117
  2. https://developsense.com/blog/2012/07/few-hiccupps
  3. This technique is taken from Hendrickson, Elisabeth (2013). Explore It! Reduce Risk and Increase Confidence with Exploratory Testing. The Pragmatic Bookshelf. Chapter 6.