This documents the formal quality assurance methods deployed in the ERP5 Project for the integration and the development of ERP5.
('Yoshinori Okuji',)
ERP5 Quality Assurance Process
text/html
None
yo
en
None
2005-05-11 17:08:46
2005-05-11 17:07:24
()
0
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":https://www.erp5.org/sections/documentation/guidelines/naming.stx/view
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":http://www.zope.org/Members/shh/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":http://www.edos-project.org/,
and based on the meta installer "Umigumi":http://umigumi.org/. 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":http://cvs.erp5.org, 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":http://sourceforge.net/projects/pymetrics/ for
estimating pieces of code which require refactoring, and "PyLint":http://www.logilab.org/projects/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
- "Guidelines":https://www.erp5.org/sections/documentation/guidelines/
- "The CVS repository":http://cvs.erp5.org/
- "Umigumi":http://umigumi.org/
- "ERP5 Report mailing list":https://www.erp5.org/sections/documentation/erp5_report_mailing/view
normal
stx
normal
html