An Ethereum smart contract is basically a program that runs using the Ethereum Virtual Machine (EVM) in the Blockchain. An Ethereum address is assigned when it is created and each interaction uses a single transaction. The contract/application will have a state within the Blockchain and the state will change when you interact with it. It’s important to note that once the contract is sent to the Blockchain it can never be changed (it is immutable). You are able to upload the same contract again with changes but the previous contract will remain in place and they will run in parallel with no knowledge of each other. Quality assurance and testing smart contracts is essential before they go into the Mainnet. I did my Certified Ethereum Developer and Ethereum QA Engineer qualifications (amongst others) with B9lab Academy. The courses are really amazing and trainers are superb. If this is a topic of interest I highly recommend them.
