Module Acceptance Policy

The following are key areas which should be considered prior to including a module in the release package.

  • Module dependencies
  • Show stopping bugs/critical bugs
  • Deliver core functions without errors
  • Configuration files
  • UI/Usability for main browsers
  • Security vulnerability

Module Dependencies

Some modules of the Sahana system are dependent on other modules. E.g. most of the module uses map data provided by GIS module. If such a dependent module is included in a release, then all the modules it is depending on also have to be included to secure the smooth functioning of the module.

Show Stoppers/Critical Bugs

An item that prevents further testing of the product or function under test. No workaround is possible. Examples of this include an installation process which does not load a component; a GPF (General Protection Fault) or other situation which freezes the system (requiring a reboot); or a missing menu option or security permission required to access a function under test. Within a production test context, this category could also include incorrect financial calculations and even cosmetic items.

Figure - Open Defects Over Time

Defect rate can be graphed against time. This is simply the bugs that have been found but not fixed over the life of the project as shown in figure. Two lines can be plotted the showstoppers and the non-show stoppers. It's the show stopper line that will be used to make decisions. However, if there are too many non-show stoppers, there is reason to question the readiness for release. When the average slope of the show stopper line is positive, you aren't approaching the point where the software is ready to ship.

Deliver core functions without errors

Every module should deliver its core functions without any compromise. Any module which fails to fulfill core functionality should not be included in the release package, even if it has attractive additional/non- core functionalities.

Compromise of core functionality could be detected by checking:

  1. For broken Links
  2. If submission of all form data actually went into the system correctly
  3. If form tests for the existence for required fields pass
  4. If the email, telephone, and other fields are valid

Module should give appropriate error, warning messages given that give the user enough information.
Proper confirmation message should appear after submission of a form.

Browser Compatibility

UI Stability for Main Browsers

Module should be tested under different screen resolutions (e.g. 800×600, 1024×768) at least with,
Linux - Firefox (version 2)
Windows - Firefox, Internet Explorer (Version 6 and 7)

The following usability issues have to be addressed:

  1. Will the target user be able to understand the navigation on this page?
  2. Does the page and content titles properly describe the page for the target user?
  3. Are the links and actions (e.g submit/links) off this page well described?
  4. Is the terminology intuitive and are abbreviations explained?
  5. Is there sufficient help on the page for a completely new user?
  6. Is potentially sensitive data being shown to users who should not be privy to such information?
  7. Can the range of data privacy/protection needs been addressed when access control lists are enabled?

User Interfaces

User interfaces should:

  1. Consistent with the rest of the site and other pages
  2. Use valid XHTML / CSS
  3. Look fine without CSS
  4. Is there HTML formatting in the XHTML (which should be in the CSS)?
  5. Check layout on different window sizes
  6. Check the print version for proper layout / formatting
  7. Check with different font sizes

Security Vulnerabilities

Sahana should comply with following security features:

  1. SQL/PHP injection attack
  2. HTML/Javascript injection attack
  3. Are passwords properly secured
  4. Is the access to the data restricted to the correct users
  5. Is data privacy concerns been addressed?
  6. Do unauthorized people have access to sensitive data?

QR Code
QR Code dev:module_acceptance_policy (generated for current page)