Software product testing guidelines

How to properly test your software product before publication in Webasyst Store

Contents...

Thoroughly test your product using the check list provided below. Fulfillment of these recommendations significantly reduces the moderation time and the chance to receive a publication refusal.

Average moderation times are the following: for design themes 2 working days, for apps and plugins 4–5 working days.

1. Enable tracking of PHP errors

In file php.ini specify the following value:

error_reporting = E_ALL

or add this line to file .htaccess:

php_value error_reporting 2147483647

2. Enable tracking of SQL errors

Add the following value to file wa-config/db.php:

'sql_mode' => 'TRADITIONAL',

3. Installation in domain root or in subdirectory

Test your product when the framework is installed in the domain root directory (e.g., at http://localhost/) or in domain's subdirectory (e.g., at http://localhost/wa/).

Test your product for cases when backend URL is different from /webasyst/. To generate correct URL for backend resources in Smarty templates, use $wa_backend_url variable.

4. Settlement setup

If your product (design theme or plugin) utilizes frontends of framework's apps, test it in the following conditions:

  1. Only one settlement for an app exists.
  2. Several settlements for an app exist.
  3. No settlements for an app exist.

When testing, create settlements at the main website URL (with mask *) and with nested URLs (with masks of the form some/path/*). For example, if you are developing a plugin for the online store, test its operation in the cases when the storefront is available at a URL of the form http://domain.com/ and at http://domain.com/shop/.

5. Integration with other apps

If your product utilizes functionality provided by other Webasyst apps, test it in the cases when such additional apps are installed and when they are not installed.

Do test your product in the case when additional apps are installed but the current user does not have access to them (due to access rights setup).

6. Use of additional PHP extensions

If your product utilizes additional PHP extensions which are not listed in the basic system requirements, ensure that you have specified such extensions in product's configuration file lib/config/requirements.php (specifying system requirements).

Some of additional PHP extensions previously installed on a user's server can be disabled after the product installation. Therefore, you must also test your product's behavior in the cases when such additional extensions are unavailable.

7. Data input

If your products assumes input of various data by user, test it in the following cases:

  • input of text instead of a number
  • input of a float value instead of an integer
  • input of one or several whitespace characters instead of text or number
  • input of text containing single or double quotation marks
  • input of large text
  • input of one or more zeros
  • input of text in upper and lower case
  • input of text containing HTML/JavaScript/Smarty/PHP/SQL code
  • selection or unselection of all items in a checkbox group

8. Clean installation

Test your product immediately upon installation:

  1. Install the framework into an empty directory.
  2. Copy your product's files to the appropriate directory.

    For apps and plugins, also complete these additional steps:

  3. Add a record about your product to the appropriate configuration file in directory wa-config/.
  4. Perform any action with framework apps (e.g., open a frontend or backend page) to execute your product's code.

9. Browser support

Test your product in the latest versions of different Internet browsers.

10. Additional testing

Test your product with large amount of data; e.g., products, features, requests, files, lines, columns, etc.

Check the availability of security breaches; e.g., XSS.

11. Webasyst TV

Widgets must be operational both on light background of a personal dashboard and on dark Webasyst TV panels, and must allow adding of numerous instances of a widget to a panel/dashboard.

12. Spelling

Use spelling check tools to ensure that none of product's localization strings or descriptions for Webasyst Store contain spelling errors.

Self-test your product using a comprehensive check list to get your product approved on the very first submission.