ERP 2.50:Automated Testing/Branches and code promotion
Every new version of the ERP will make some tests fail, due to fixes and modifications done on the application.
Automated testing repository is synchronized with development, so tests can be executed on current stable application, on the nightly build and on the previously published version.
Currently, there are three stable automation branches and many more for updating old tests to new application fixes, developing new tests, and developing new automation features.
The basic code promotion flow is as follows:
- Automation development is made on a automation/pi-* branch.
- When the pi-* branch is stable, code is promoted to automation/int branch. The most common criteria of stabilization is three successful executions in a row, but it varies between projects.
- When the code is promoted to automation/int branch, an automatic execution of the suites will be launched.
- On a successful execution of automation/int jobs, code will be automatically promoted to automation/pi.
- On a successful execution of automation/pi, code will be automatically promoted to automation/main. Sometimes the erp/devel/main branch will be frozen to prepare a new Maintenance Pack; in this case the automation/main branch will be frozen too and changes will be sent to Release Management as transplant requests.
Contents |
Branches for automation development
automation/pi-smoke: This branch is used to develop and maintain the smoke test suite. Bug fixes, changes to synchronize with the most recent erp/devel/pi branch and improvements on the code occur here.
- Responsible: QA team (Leo Arias, Pablo Luján)
- Test suites: Smoke
- Status: Stable
- Supported: Yes
- Execution: daily by hudson, on demand
- Code promotion: when three successful execution occurs, code is promoted manually to automation/int branch.
automation/pi-regression: This branch is used to develop and maintain the regression test suite. Bug fixes, changes to synchronize with the most recent erp/devel/pi branch and improvements on the code occur here.
- Responsible: QA team (Arun Kumar)
- Test suites: Regression
- Status: Stable
- Supported: Yes
- Execution: daily by hudson after the successful execution of pi-smoke, on demand
- Code promotion: when three successful execution occurs, code is promoted manually to automation/int branch.
automation/pi-dbunit: This branch is used to develop and maintain the GUIUnit test suite. Bug fixes, changes to synchronize with the most recent erp/devel/pi branch and improvements on the code occur here.
- Responsible: QA team (Leo Arias)
- Test suites: Regression
- Status: Stable
- Supported: Yes
- Execution: on demand
- Code promotion: when three successful execution occurs, code is promoted manually to automation/int branch.
automation/pi-ci: This branch is used to develop and maintain the Continuous Integration test suite. Bug fixes, changes to synchronize with the most recent erp/devel/pi branch and improvements on the code occur here.
- Responsible: RM team
- Test suites: Continuous Integration
- Status: Stable
- Supported: Yes
- Execution: on demand
- Code promotion: when the developer considers the branch is stable enough, code is promoted manually to automation/int branch.
automation/pi-idl: This branch is used to develop and maintain the tests on Initial Data Load module. Bug fixes, changes to synchronize with the most recent erp/pmods/org.openbravo.idl/ branch and improvements on the code occur here.
- Responsible:
- Test suites:
- Status: Stable
- Supported: Yes
- Execution: on demand
- Code promotion: when the developer considers the branch is stable enough, code is promoted manually to automation/int branch.
automation/pi-selector: This branch is used to develop and maintain the tests on Selector module. Bug fixes, changes to synchronize with the most recent erp/mods/org.openbravo.examples.userinterface.selector/ branch and improvements on the code occur here.
- Responsible:
- Test suites:
- Status: Stable
- Supported: Yes
- Execution: on demand
- Code promotion: when the developer considers the branch is stable enough, code is promoted manually to automation/int branch.
automation/splp: This branch is used to develop and maintain the tests on Spanish Localization Pack. Bug fixes, changes to synchronize with the most recent developments on splp and improvements on the code occur here.
- Responsible: Localization Team
- Test suites:
- Status: Stable
- Supported: Yes
- Execution: on demand
- Code promotion: when the developer considers the branch is stable enough, code is promoted manually to automation/int branch.
Integration branch
automation/int: This branch is used to integrate all changes on previous development automation branches.
- Responsible: QA team
- Test suites: Smoke, Regression, GUIUnit, Continuous Integration
- Status: Stable
- Supported: Yes
- Execution: on demand, automatically by hudson with every change on the branch
- Code promotion: when one successful execution occurs, code is promoted automatically to automation/pi branch.
Stable automation Branches for testing current Openbravo developments
automation/pi: This branch is synchronized with the Openbravo ERP erp/devel/pi branch.
- Responsible: QA team and RM team
- Test suites: Smoke, Regression
- Status: Stable
- Supported: Yes
- Execution: on demand, automatically by hudson with every change on the branch
- Code promotion: when one successful execution occurs, code is promoted automatically to automation/main branch. After a successful execution of this branch on erp/devel/pi, the code of the ERP is promoted to erp/devel/main too.
automation/main: This branch is synchronized with the Openbravo ERP erp/devel/main branch.
- Responsible: QA team and RM team
- Test suites: Smoke, Regression
- Status: Stable
- Supported: Yes
- Execution: on demand, automatically by hudson with every change on the branch
- Code promotion: This is the top most branch, so the code will not be promoted to any other. Every time that the Openbravo branch is frozen for the release of a new Maintenance Pack this branch will be frozen too. If a transplant for the Maintenance Pack requires a change on the automation code, it will be handled by RM too, with a transplant just as is done with the ERP code. For every Maintenance Pack release, a tag will be created in this branch so we can take a snapshot of the stable tests that work with that Maintenance Pack.
Stable Branches for testing previously Openbravo published versions
automation/2.40: This branch is synchronized with the Openbravo ERp erp/stable/2.40 branch.
- Responsible: QA team
- Test suites: Smoke
- Status: Stable.
- Execution: weekly by hudson.
- Supported: only bug fixes and synchronization with new MPs.
automation/2.3x: This branch is synchronized with Openbravo ERp erp/stable/2.3x branch.
- Responsible: QA team
- Test suites: Smoke
- Status: Stable
- Execution: no execution scheduled
- Supported: No