Printable version XML version
Login
Name

Password


Join
Forgot your password?
erp5.org => wiki.erp5.org !

erp5.org has permanently moved to wiki.erp5.org !

Current status of ERP5 community websites:

  • www.erp5.org should redirect to wiki.erp5.org automaticcaly.
  • wiki.erp5.org is the place where fresh news and documentation are published.
  • cps.erp5.org is the old erp5 community website.

Note: if you created content in this ancient portal, please migrate it to the wiki. The old website will stay online as long as all contents are not mograted to the wiki.

ERP5 Quality Assurance Process
This documents the formal quality assurance methods deployed in the ERP5 Project for the integration and the development of ERP5.

Overview

The ERP5 consortium members provide services based on ERP5 to customers, while making researches and development on ERP5 actively for future markets. It is thus critical for us to be able to implement ERP solutions for customers on time and to improve the core of ERP5 simultaneously. This fact has prompted us to develop good methods for the quality assurance.

The development process of ERP5 is supported by guidelines, testing frameworks, and a code management system. The guidelines are available publicly, so that every contributor to ERP5 may follow the rules in ERP5. This process is assisted by running automatic tests, which will detect mistakes and report the result every day. By combining automatic testing with a version control system, it is easy to realize what change may break the system, and it is even feasible to revert wrong changes and go back to a working version in a few minutes.

ERP5 installations are customized though the novel technology Business Templates. Even though some Business Templates are specific to each customer, the capability of embedded tests in Business Templates allows for the quality assurance, even on a customized ERP5 site.

Guidelines

Guidelines are used for human to follow the rules in ERP5. For example, the document ERP5 Naming Conventions defines all the naming rules about the user interface, Python code, and data in Zope. This significantly reduces the risk of incompatibilities among pieces of code developed by different people, and this makes sure that the whole system of ERP5 is consistent.

Testing frameworks

The ERP5 Project has been developing three types of testing frameworks: unit testing, functional testing, and integration testing.

The unit testing is based on the de facto standard Zope testing framework, ZopeTestCase. We have implemented a new class ERP5TypeTestCase derived from ZopeTestCase, which is customized for the ERP5 framework, such as support for Business Templates. All the Zope products developed by the ERP5 Project contain unit tests under directories named tests. This allows us to make sure that every feature is still functional after modification, even after refactoring.

The functional testing is being developed to test user-visible features. We are currently evaluating various frameworks, such as WebUnit and the class Functional in ZopeTestCase.

The integration testing has been developed as a part of the EDOS project, and based on the meta installer Umigumi. This builds a complete system from scratch, and makes sure that ERP5 is working as a whole system. Integration testing is important, because this simulates a deployment of ERP5 in production, unlike unit testing or functional testing. Thanks to this novel technology, it is guaranteed that new ERP5 installations will always succeed.

These testing frameworks can be used both manually and automatically. Developers carry out the testing frameworks by hand, when they want to test whether their changes work, whether their changes affect other components, and whether their changes are acceptable. On the other hand, all tests are executed automatically every night, and a human-readable report is posted to the mailing list erp5-report.

In addition, Business Templates themselves can contain tests. As Business Templates are the packaging system for ERP5, these tests can be seen as package testing. For example, the Business Template erp5_accounting contains tests for accounting management. This provides one higher-level testing framework than functional testing. The tests are put in the directory Testing in a Zope instance home, and, with combined to the tool portal_classes, all test suites can be manipulated via web browsers.

Version management

The ERP5 Project uses CVS as the version control system, and the central repository is publicly available from cvs.erp5.org. The CVS allows us to safely change the source code, because we can revert any change, whenever anything wrong happens. Also, the branching feature allows us to experiment new features without disturbing production systems.

Every CVS commit automatically generates a notification message, which tells us who changed what at which time. Each change is linked to the viewcvs interface, so it is easy to take a look at others' changes via web browsers quickly.

Such a notification message is also posted to the mailing list erp5-report as well as the result of automatic testing. This makes it extremely simple to figure out which change has broken which feature, because we have the full history of code changes and status changes.

Code management

Besides the guidelines and the version control system, we make use of some static source code checkers, to assure the code quality. They includes PyMetrics for estimating pieces of code which require refactoring, and PyLint for checking the coding style. These tools help us to keep the source code of ERP5 clean enough. This makes it efficient to develop and maintain ERP5.

Business Templates

In a deployment of ERP5, most of the development is performed by Business Templates. Each Business Template maintains Zope objects for a specific component, such as CRM and MRP. Since Business Templates are ERP5 packages, we can install, upgrade and uninstall them on a Zope instance, like RPMs on Mandriva Linux. This facilitates sharing of components among developers and integrators, and this is very useful for distributed development environments.

Business Templates can be exported as XML files, and often managed with CVS. Because they are XML files instead of binary files, it is feasible to check the difference among versions of a Business Template.

The use of Business Templates allows for the construction of a customized ERP platform based on a generic code base, and the trade secret of a customer can be addressed by making private Business Templates specific to the customer. As noted above, Business Templates can embed tests into themselves. Thanks to this feature, we can assure the quality of each customized ERP5 site, even if it is constructed with many unique components.

Conclusion

The combination of documentation, testing and reporting has made it possible to develop ERP5 without taking the risk of breaking production systems. Even in a completely customized site, the use of package testing in Business Templates assures the quality of the site.

Resources


(c) 2001-2004 ERP5 Foundation
www.erp5.org
All Content Published Under Free Licenses
Powered by ERP5 Open Source ERP, Zope, CPS and Nexedi