Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Follow the quality engineering journey of the Creditcoin blockchain across four distinct implementation versions and a myriad of technologies. Through the eyes of a test engineer, this book discusses testing implementations with the Hyperledger Sawtooth and Substrate frameworks, testing switch from proof-of-work to proof-of-stake consensus algorithm, and testing an Ethereum Virtual Machine compatibility layer.
You’ll traverse several years of fast-paced multiple blockchain implementations and technological changes including an explanation of all major components involved, and the approach taken. You’ll also look at examples of test automation approaches and tools, interesting bugs, and testing challenges.
Most everything discussed in Testing the Creditcoin Blockchain is open source, ensuring easy access, and multiple references to source code and GitHub are included throughout.
The programming languages discussed in this book are a colorful mix between Python, C , and C# .NET during the Creditcoin 1.x timeframe and later primarily Rust and TypeScript for version 2.0 and later. Rust is a general-purpose programming language that emphasizes performance, type safety, and concurrency. It enforces memory safety without a garbage collector. Rust is a statically typed and strongly typed functional language and is a popular language for systems programming, including distributed systems like blockchain and also the Linux kernel.
TypeScript is JavaScript with syntax for types. TypeScript is a strongly typed programming language that builds on JavaScript. The TypeScript compiler and linter are tester’s best friends and will catch errors for you. A huge bonus is that popular JavaScript testing frameworks have TypeScript bindings and provide more choice for test automation and quite good support from third-party tools and services. If you are coming from a background of test automation
for web applications, for instance, you will probably have enough experience to get started very quickly.
Solidity is a statically typed curly-braces programming language designed for developing smart contracts that run on Ethereum and other EVM compatible chains. Testing of smart contracts itself is out of the scope of this book, and I personally don’t have experience in this area. It is important to at least be able to read and understand Solidity code for the edge cases where you happen to interact with a smart contract.
As testers and QA engineers who work with blockchain, we need to have a good understanding of the basic principles but will spend most of our energy testing business domain functionality and specific blockchain components as required by stakeholders. A very small portion of us will actually work on testing the underlying algorithms and complexities involved. Even though I am directly testing the Creditcoin blockchain myself, it is relatively rare that I need to venture deeper into the inner workings of the Substrate framework, especially for the purposes of testing something.
What You Will Learn:
Study the many of the components of a distributed blockchain network.
See how components work and where testing can be plugged into a distributed blockchain network environment.
Glimpse into the daily blockchain testing activities of a principal test engineer.
Become familiar with a fast-paced technical software development project