wiki:DeveloperGuidelinesTesting

Version 66 (modified by Fran Boon, 16 years ago) ( diff )

CruiseControl integrates with Trac

DeveloperGuidelines

Testing

"A bug is a test case you haven't written yet"
"Unit Tests allow merciless refactoring"

Test-Driven Development is a programming styles which says that you 1st write your test cases (from the specs) & then proceed to make them pass.
Behaviour-Driven Development takes this further to focus on the Specification rather than the Verification using something like pyspec or PyFITto provide testable specs:

There are a huge number of Testing Tools available to cover the various parts of the Testing process:

A community available for assistance:


Testing that Developers should be doing:

Unit Tests (must do)

Building the Code Right

Continuous Integration

Whenever a commit is made it should be checked to see that it doesn't break anything

Alternate options which could be investigated:

Regression Testing

Fired by dev after certain number of changes or whenever they like.

Documentation

As well as writing DocStrings in all functions, we can generate an overall API using:

If writing a separate manual then we can use:


Testing that Testers should be doing as part of Acceptance:

Boundary Testing (should do)

Building the Right Code

Checks functionality of modules against specs

This sees the application as a black box & so the same tests could be run here against both the Python & PHP versions, for instance.

Sahana is a Web-based application, so testing should be from browser perspective:

Functional tests can be written using Selenium:

Alternate opions which could be investigated:

Integration Testing (good thing)

We depend on various 3rd-party components so we need to ensure that as these components are upgraded this doesn't break any of our functionality:

  • Web2Py
    • CherryPy
    • SimpleJSON
  • T2
  • OpenLayers
  • jQuery
  • Ext

Usability Tests

Accessibility

  • Are we XHTML 1.0 compliant?
  • Are we usable without JavaScript?

Performance Tests

Whilst the Web2Py framework is fast, we should check that we're not doing anything stupid to slow it down:

Load Tests

How many simultaneous users can the system support?

Stress Tests

If extreme load is applied to the application, does it recover gracefully?

  • Tools above but using more extreme parameters parameters

Security Tests

Whilst the Web2Py framework is secure by design, we should validate this:

Things developers can do to reduce risks:


Sahana 2 Links: http://wiki.sahana.lk/doku.php?id=dev:home#design_and_development_guides

DeveloperGuidelines

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.