Marco Andrade

QA Automation Engineer at Toptal

Marco Andrade has been passionate about quality assurance since the get-go. His intention is to promote the QA culture that he learned abroad to Brazilian companies, as he did in AppProva and Telecom Associates. He’s a self-starter with great intuition when it comes to ensuring the team delivers quality solutions. He’s also a quite fond of the Ruby language, Agile methodologies, and BDD. Based in Belo Horizonte, he loves the freedom to work and travel at Toptal, a 100% remote company known for offering the top 3% of freelance talent in the world.

Smart contract: Automated tests for decentralized platform

“This paper has been developed to meet the growing need for blockchain-focused QA Engineers.

Everyone is talking about blockchain technology, especially in relation to smart contracts. Blockchain-related jobs are the second-fastest growing in today’s labor market; there are now 14 job openings for every one blockchain developer. And as Nick Szabo, the developer who coined “smart contracts,” pointed out, there is an extreme “$/knowledge” ratio in the blockchain space, where capital by far outpaces talent.

But where are all the QA engineers? It’s unacceptable to see projects gone live with little or no testing by anyone other than the dApp developer. We all know what happens when we combine new technology with a lack of formal QA… Bugs. Some could be minor, some can cause the loss of hundreds of thousands of dollars.

So we will discuss the role of the modern tester and how it applies to the blockchain. Testing tools: 1. Automated tests for Truffle; 2. Easiest way to interact with dApps in a browser (MetaMask). Challenges when each network has their own specific standards and protocols. Examples of smart contract bugs. The differences between a hard fork, a soft fork, and a chain split. Forks and replay attacks. Benefits of splitting smart contracts into 2 portions: 1. Business logic contract; 2. Data Contract. Focus on architecture and why. Session-based testing. Testing to optimization and minimizing costs.”