Site announcement

We are switching off article comments on this website. Read about the upcoming changes to Atlassian Documentation.

Skip to end of metadata
Go to start of metadata

As described in the AtlasCamp Europe 2012 talk on plugin quality, there are a number of patterns of bugs that we see with plugins.

Here are the valid user scenarios that usually lead customers into encountering these common bugs.

Data

  • Non-English text
    • Especially character encoding around AJAX calls.
    • If you don't have other keyboards set up on your test machine, one quick way to get good test data is to copy-paste it from the Wikipedia pages in that language.

  • Special characters
    • Ones that are important to HTML, eg. ' " < > &
    • Ones that are important to JSON, e.g. " { } ,
    • Ones that are important to regular expressions, e.g. ] [ ) ( ^
  • Large data sets
    • Lots of projects, issues, spaces, pages, users... whatever data the plugin interacts with.
    • Anything that's paged, make sure there's at least 2 pages of data.
  • Long strings
    • Make sure every value at least wraps to a new line, and every page is long enough to scroll.
    • The full text of Pride and Prejudice (legally obtained from Project Gutenberg) makes great test data - paste it everywhere!

Use Cases

  • Upgrades
  • Clean installations
  • Session timeouts
    • Easy to reproduce - just open another tab in the same browser and log out of the app there, then try the action in your plugin.
  • WebSudo timeouts
    • WebSudo is the extra login prompt you get when you try to do an admin action. Its timeout is much shorter than a session timeout (about 10 mins).
    • To reproduce,
      • First make sure you're not running in dev mode.
      • Do an admin action and log in at the WebSudo prompt.
      • Open another tab in the same browser and click the link in the banner to drop WebSudo access.
      • Then try whatever admin action you intended to perform.
  • Data being deleted/moved/edited
    • Data in the underlying app can and will disappear out from underneath you, as people use the system. 
  • Anonymous access 
    • Regardless of what action is being performed, the current user can be null.  

Client Environments

  • Web browsers
    • In general, Atlassian products support the two latest IE versions and the latest FireFox, Chrome and Safari.
    • Layout issues
    • Broken functionality
    • Client-side performance
      • Even though a feature may work in all browsers, in some older browsers it can be unusably slow with larger data sets, for example, if you're doing lots of client-side rendering. 
    • Behaviour in unsupported browsers
      • Even if the plugin doesn't support a particular browser, do a quick check of it:
        • To make sure the base application or other plugins are not broken.
        • To recognise the symptoms of how it behaves in the unsupported browser so you can recognise them quickly in customers' complaints.
  • Screen resolution
    • Try with 1024x768 to make sure none of the screens horizontally-scroll. 

Server Environments

  • HTTPS
    • Mixed content warnings are a usability killer due to frequent annoying popups in some browsers
    • Try the plugin with HTTPS to make sure it's not delivering HTTPS and HTTP content on the same page.
  • Different databases
    • Raw SQL is dangerous.
    • If it's absolutely necessary to write SQL(e.g. for an upgrade task), test across multiple database environments.
      • For example, even a simple "DELETE FROM my_table_name" will fail if the database is not using the default schema.
  • Running outside of dev mode
    • Different batching, minification rules
    • No WebSudo - what you see when you access admin screens is not the same as what admins see.
  • Context paths
    • By default in dev mode, most apps have a context path (e.g. "/jira"). It's common to experience bugs that only occur when there is no context path (e.g. http://jira.atlassian.com). 

 

  • No labels