Most Powerful Open Source ERP

ERP5 Unit Tests

Introduction

ERP5 is used for many critical applications. Our customers relies on it to run their every day business, and they can not accept having regularly bugs coming again and again. Every software issue could have important consequences, especially if you think about banking, areospace applications and many others. Therefore Nexedi consider the quality as one of it's top priorities and decided to use automated testing since the early age of ERP5.

Unit / Functional Test

While the code of ERP5 is evolving, more and more unit and functional tests are added. When issues are reported, we write the test and fix the problem. Like this we make sure that the same issue is not going to happens again. Also, when new features are done, tests are added to make sure we will provide well working experience. We have both unit test and functional tests. Unit test are used to test isolated software component, while functional tests are used to verify scenarios more closed to user experience.

Development policy

We tried for years to keep the quantity of failures as low as possible. While the size of ERP5 was growing, it started to be more and more time consuming to track regressions. In particular, it's quite common that a change in some part of the code generate a regression in another place that seems unrelated without detailed analysis. And then it happened that we had several errors, and it was difficult to see new ones. Therefore, after our switch to git, we introduced the rule "contributions must not introduce ANY regression". So we started by fixing test failures, we checked all random issues, and we started to reject any code introducing failures. The idea is simply to check all unit test before contributing changes to the central place. This can easily be done thanks to our Testing Infrastructure. Thanks to this rule, about any revision of ERP5 could be considered as stable. This is really a great success. With a quantity of test growing, we have nearly 0 errors/failures all the time.

Testing Infracture

We are using what we call "ERP5 Test Nodes". It's some processes installed on many different machines thanks to SlapOS cloud tools. We define several list of tests to run, and ERP5 test nodes will look regularly to several git repositories to detect new commit, then they launch software constructions and finally tests are automatically run. Theses days we are using about 60 CPU cores to run tests for our various projects and for different versions.

ERP5 Test Results

You can find below the result of automatic test of ERP5 code. Hopefully you are able to see many test results at 0 errors/failures for several thousands of tests. Since we are humans and not perfect, It might happens that a change introduce a regression. But in this case, you could be sure that we will quickly look and solve it.

1 - 15 of sample of 1000 records
Revision Launch Date Title All Tests Failures Errors Skips Result Status
slapos.cookbook=11696-c7fbae2859583b2f578dad7577f2d120fdc1554b,erp5=50457-74945bd00cd27ef1882c5f4e7304e5d1711fae42,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/19 14:24:1.682445 UTC ERP5-MASTER 6108 3 0 203 FAIL Completed
slapos.cookbook=11695-8aaf82a9e2a5709c32f47c22707182f71430c71f,erp5=50457-74945bd00cd27ef1882c5f4e7304e5d1711fae42,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/19 12:14:37.754781 UTC ERP5-MASTER 6108 1 1 203 FAIL Completed
slapos.cookbook=11695-8aaf82a9e2a5709c32f47c22707182f71430c71f,erp5=50454-87eec27fc5c4b0c95ff09ff953a8df3e010c5974,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/19 09:08:6.863566 UTC ERP5-MASTER 6105 1 0 203 FAIL Completed
slapos.cookbook=11926-b77af1f236102c95f692539178c1b85103cda18b,erp5=50454-87eec27fc5c4b0c95ff09ff953a8df3e010c5974,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/19 05:17:1.426614 UTC ERP5-MASTER 6105 0 0 203 PASS Completed
slapos.cookbook=11926-b77af1f236102c95f692539178c1b85103cda18b,erp5=50453-080f56fa6690f7abe62619e94c5f014950ccd155,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/18 10:35:40.931662 UTC ERP5-MASTER 6105 0 0 203 PASS Completed
slapos.cookbook=11695-8aaf82a9e2a5709c32f47c22707182f71430c71f,erp5=50450-8d5ced18a0c4d3bceecf81febbd7eb132f906c10,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 18:31:11.912454 UTC ERP5-MASTER 6105 3 2 204 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50449-d10401d85f5267ea7832263c2a0824ebf6552f37,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 14:48:50.692618 UTC ERP5-MASTER 6105 4 0 204 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50447-e368cf4fd4b0fed1bf37fc06c8316ac73a85330b,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 11:45:10.378303 UTC ERP5-MASTER 6105 6 4 203 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50445-05f913a0fb519097e27c309859170230f1d78617,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 08:52:26.362728 UTC ERP5-MASTER 6105 3 4 203 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50428-db0ee9b5ed166fed3639763b9e2c98927a3d4a8f,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 05:48:2.613004 UTC ERP5-MASTER 6109 4 6 203 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50427-f3263e9d6ef491f73f1b6745a4cf31730c59ef98,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/17 02:13:55.320092 UTC ERP5-MASTER 6109 5 4 204 FAIL Completed
slapos.cookbook=11694-d82a4ee8dd57f80855250023ab38a1e92bca856a,erp5=50425-0c568094cb5f2e6b622cdbc91ebf89d0160fd1b9,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/16 21:48:21.248395 UTC ERP5-MASTER 6109 12 8 204 FAIL Completed
slapos.cookbook=11693-9b653c7d78c8a7c3f2fa74d594cb2cb7938a9432,erp5=50419-35712c2cddee4293450459b1a2b92ea0be0fdfde,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/16 13:51:3.874357 UTC ERP5-MASTER 6108 12 6 204 FAIL Completed
slapos.cookbook=11693-9b653c7d78c8a7c3f2fa74d594cb2cb7938a9432,erp5=50418-fe06db196832ceb0ed17c416841715f8f7ddb712,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/16 08:24:59.595154 UTC ERP5-MASTER 6108 11 8 204 FAIL Completed
slapos.cookbook=11693-9b653c7d78c8a7c3f2fa74d594cb2cb7938a9432,erp5=50417-ebc161b41f2cfaf859b256f28a9e998701006e82,erp5-bin=15-d6943bfe7148ff18744e8d848997c234e34fb09a,erp5-doc=5-6cb6bb594beac5b55ed756d983d92d0a18792269 2019/09/16 05:27:35.180020 UTC ERP5-MASTER 6108 13 8 203 FAIL Completed