{'fraction_non_alphanumeric': 0.010787486515641856, 'fraction_numerical': 0.0, 'mean_word_length': 4.987096774193549, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Reducing the execution time of unit tests of smart contracts in blockchain platforms

Smart Contracts are software code that resides within a blockchain, using its infrastructure as an advantage and guarantee of execution. Blockchain and smart contracts are enabling new business models and standards to information systems. However, a smart contract needs to be well tested before to be published in a blockchain, since it cannot be changed after being deployed. The execution time to deploy smart contracts and run their tests is considerable because all transactions must be mined before being added to a new block. This work proposes an approach to reuse the execution of the deployment and the setup of unit test in smart contracts to reduce the execution time of these tests. Experiments have shown a large reduction in the execution time of smart contract unit tests, without breaking the principle of test independency.