Enhancing and simplifying smart contract testing through automation