Top Banner
37

Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Dec 14, 2015

Download

Documents

Dorian Braund
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 2: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Plugin Quality Check

Penny Wyatt

JIRA QA Team Lead

Atlassian

Page 3: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 4: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 5: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 6: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 7: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Quality Assistance

• Help devs to deliver value to customers

• Testing and testing advice

• Bug prevention

Page 8: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Plugin Quality Process

• Make it work

• Make it lustworthy

• Make it maintainable

• Make it safe

Page 9: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Setting the Quality Bar

• Tradeoff between time, scope and quality

• Mismatched quality expectations - unhappy customers

Page 10: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Make it work

“But I’ve already tested it, it works!”

in the real world

Page 11: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Happy Path Fallacy

• “We’ll only worry about the happy path, for now”

• Only test the actions a normal, reasonable user would

perform.

Page 12: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 13: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.
Page 14: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Happy Path Fallacy

• Quality bar defines what you fix, not what you test.

• OK not to support everything.

• Set customer expectations!

Page 15: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Valid Scenarios

• Sample Plugin

• Purpose-built but not contrived

• Completely unrelated to similar plugins on PAC!

• Only a short list, more detail on CAC

Page 16: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Valid Scenarios

• Different types of data

• Special characters

• Large data sets

• Long strings

Page 17: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Valid Scenarios

• Different browsers

• Layout issues

• Broken functionality

• Behaviour in unsupported browsers

Page 18: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Valid Scenarios

• Different use cases

• Session timeouts

• Deletions/Moves/Edits

• Anonymous access

Page 19: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Make it Lustworthy

Page 20: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

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.

Page 21: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Administration experience

• Clear flow for configuration

• Provide helpful error information

• Don’t show stack traces

• Use logging sparingly

Page 22: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Make it Maintainable

Page 23: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Manual and Automated Testing

• Manual testing

• Fast, effective, broad.

• Only tests the current state.

• Automated testing

• Scalable, sustainable.

• Takes time, limited assertions.

Page 24: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

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

Page 25: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

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.

Page 26: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

26

v2.5

v2.5v2.5

Latest?

Yes!

v2.5

Help!

v2.5

???

v2.5

Argh!

!!!!!!!!!

Page 27: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

27

Page 28: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

28

Page 29: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

29

Version Numbering

• One version number means one binary.

• Always bump up the version number.

Page 30: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Make it Safe

Page 31: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

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.

Page 32: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

How plugins break apps

• Insufficient permission checking

• Exposing data to anonymous users

• Not respecting permission schemes

Page 33: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

How plugins break apps

• Performance

• Synchronous external requests

• Unbounded memory allocation

Page 34: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

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

})();

Page 35: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Final check

Made it work

Made it lustworthy

Made it maintainable

Made it safe

Page 36: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

Ship it!

Page 37: Plugin Quality Check Penny Wyatt JIRA QA Team Lead Atlassian.

#atlascamp

TAKE-AWAYS

Penny [email protected]