The new Ark V2 Core is much more sophisticated software than our soon to be deprecated Node core. As such, when we designed the system, one of the most important priorities was having great test coverage. With that in mind, we went a step further.

ARK E2E or ARK End-To-End testing is a custom developed framework by our dev team which enables the writing and running of end-to-end tests in a more automated mode.

ARK E2E GitHub repository: https://github.com/ArkEcosystem/core-e2e

ARK core is already well-covered by unit tests, but with blockchain protocols, this is simply not enough when you want to make sure that it will behave correctly in “real life” environments. Nodes going up, syncing with the network, sometimes getting connection issues, or being shut down - these are the kinds of things that can happen and should be properly handled by the network and thus thoroughly tested. After all, it’s why we do manual testing on DevNet and internal TestNet.

Automated testing helps to identify issues before they hit DevNet and give the ability to quickly pinpoint where things went wrong, like introducing new code and seeing how it will behave when introduced outside of local testing. All of this is good development practice, but automating some of these “real life” scenarios can only help us improve the quality of our product.

That’s why we are bringing automation to these situations — this is called “end-to-end”. Its main feature is to generate and launch a fully functional custom network on your machine, with a configurable number of forging nodes.

On top of this custom network is the testing framework. It allows you to look into the blockchain events in real time and execute actions, like creating transactions and broadcasting it to the network. These end-to-end tests are configured on our continuous integration tool to be run every night. It will pull up the develop branch with the latest commits, run the network from it (current default configuration is 5 nodes) and execute the actions/tests. Going forward, this framework will automate testing scenarios like double spending, double forging, spamming, and other situations.

What we used to test manually will now be tested every night so we will be able to react quickly when something is wrong and we will progressively add more and more end-to-end tests over time.

This will not replace manual testing, but it is a new tool in our arsenal that will further improve the quality and resilience of our blockchain core.

If you want to learn more about ARK E2E back-mechanics you can read “ARK E2E Technical Details”.