A computer-implemented method for performing an off-chain testing on a smart contract, comprising: generating execution environment information for the smart contract, the execution environment information including at least one of transaction context information, blockchain information, or state information that includes at least one of parameter information of at least one of the smart contract or transaction information, wherein the transaction context information corresponds to a first transaction; providing an interface between the generated execution environment information and the smart contract; executing the smart contract based on the generated execution environment information and the provided interface; and storing an execution result of the smart contract, wherein storing the execution result comprises storing data indicating a change in at least one of the blockchain information or the state information, characterized in that the method further comprises: generating , based on the execution result of the first transaction, updated transaction context information corresponding to a second transaction; updating the execution environment information with the data indicating the change in at least one of the blockchain information or the state information, and the updated transaction context information; executing the smart contract based on the updated execution environment information and the provided interface; and storing another execution result of the smart contract. generating execution environment information for the smart contract, the execution environment information including at least one of transaction context information, blockchain information, or state information that includes at least one of parameter information of at least one of the smart contract or transaction information, wherein the transaction context information corresponds to a first transaction; providing an interface between the generated execution environment information and the smart contract; executing the smart contract based on the generated execution environment information and the provided interface; and storing an execution result of the smart contract, wherein storing the execution result comprises storing data indicating a change in at least one of the blockchain information or the state information, characterized in that the method further comprises: generating , based on the execution result of the first transaction, updated transaction context information corresponding to a second transaction; updating the execution environment information with the data indicating the change in at least one of the blockchain information or the state information, and the updated transaction context information; executing the smart contract based on the updated execution environment information and the provided interface; and storing another execution result of the smart contract. generating , based on the execution result of the first transaction, updated transaction context information corresponding to a second transaction; updating the execution environment information with the data indicating the change in at least one of the blockchain information or the state information, and the updated transaction context information; executing the smart contract based on the updated execution environment information and the provided interface; and storing another execution result of the smart contract. <EOS>