Presentation is loading. Please wait.

Presentation is loading. Please wait.

Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Similar presentations


Presentation on theme: "Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian."— Presentation transcript:

1

2 Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian

3

4

5

6

7 Quality Assistance Help devs to deliver value to customers Testing and testing advice Bug prevention

8 Plugin Quality Process Make it work Make it lustworthy Make it maintainable Make it safe

9 Setting the Quality Bar Tradeoff between time, scope and quality Mismatched quality expectations - unhappy customers

10 Make it work “But I’ve already tested it, it works!” in the real world

11 Happy Path Fallacy “We’ll only worry about the happy path, for now” Only test the actions a normal, reasonable user would perform.

12

13

14 Happy Path Fallacy Quality bar defines what you fix, not what you test. OK not to support everything. Set customer expectations!

15 Valid Scenarios Sample Plugin Purpose-built but not contrived Completely unrelated to similar plugins on PAC! Only a short list, more detail on CAC

16 Valid Scenarios Different types of data Special characters Large data sets Long strings

17 Valid Scenarios Different browsers Layout issues Broken functionality Behaviour in unsupported browsers

18 Valid Scenarios Different use cases Session timeouts Deletions/Moves/Edits Anonymous access

19 Make it Lustworthy

20 User experience Guide users towards the actions they should do. Avoid empty boxes - use appropriate controls. Help them to avoid mistakes. Reading documentation should not be required.

21 Administration experience Clear flow for configuration Provide helpful error information Don’t show stack traces Use logging sparingly

22 Make it Maintainable

23 Manual and Automated Testing Manual testing Fast, effective, broad. Only tests the current state. Automated testing Scalable, sustainable. Takes time, limited assertions.

24 Automated Testing Good for long-term regression tests Optimise for: Scenarios most likely to break Integration with code out of your control Use page objects for UI tests for maintainability

25 Version Numbering Versions are constant A version number refers to one state of the code only. Never re-release a plugin with the same version number. 25

26 26 v2.5 Latest? Yes! v2.5 Help! v2.5 ??? v2.5 Argh! !!!!!!!!!

27 27

28 28

29 Version Numbering One version number means one binary. Always bump up the version number. 29

30 Make it Safe

31 How plugins break apps XSS Inserting user-supplied data into HTML without HTML-encoding it. Allows an attacker to gain control of the victim’s browser.

32 How plugins break apps Insufficient permission checking Exposing data to anonymous users Not respecting permission schemes

33 How plugins break apps Performance Synchronous external requests Unbounded memory allocation

34 How plugins break apps Lack of CSS scoping Scope every item in the plugin CSS Avoid overriding built-in styles Lack of JavaScript scoping (function () { // code goes here })();

35 Final check Made it work Made it lustworthy Made it maintainable Made it safe

36 Ship it!

37 #atlascamp TAKE-AWAYS Penny Wyatt


Download ppt "Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian."

Similar presentations


Ads by Google