<body onLoad="window.defaultStatus='Welcome!. You are in my weblog.';return true"><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar/9550158?origin\x3dhttps://www.txemaromero.com', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

Tuesday, August 02, 2022

Final Project of the Postgraduate course on Software QA

Recently, my Final Project of the Postgraduate course on Software QA, entitled (in Spanish language) "QA y testing en entornos Blockchain".

Abstract:

Bitcoin [Nakamoto 08] was the first application of Blockchain technology. Bitcoin solved the problem of double spending without the need for a trusted authority or central server (traditionally banking systems). Interest in Bitcoin and other cryptocurrencies (for example, ETH from Ethereum) has increased considerably in recent years [Romero 22]. However, cryptocurrency prices are very volatile.

On the other hand, access to the digital wallet (crypto wallet) has been susceptible to cyberattacks. Computer attacks such as Man-in-the-Middle (MitM) have been reported in the literature. And both software and hardware wallets have been affected.

In a first phase of this project, a review is made of how to apply Software Quality Assurance (Software QA [Goericke 20]) to Blockchain. In a second phase, a Proof of Concept (PoC) "notifycryptovalues: checking balance without logging into crypto wallet" is developed/tested.

During the development life cycle (SDLC), the following tasks are included: Software QA and testing (Selenium and JUnit), video evidence of test cases (Monte Media Library) and building release automation (Linux Bash). The user interface of the application is CLI. The resulting source code will be released under the GPL license. For the future we propose another building release automation (Docker), vulnerability scanning (Dive and Trivy), monitoring (Scope) and continuous integration (Jenkins).

The following image shows its architecture.



Keywords: Software QA, Blockchain, cryptocurrencies, SDLC and infrastructure as code.

[Read the final project: Available in my LinkedIn profile (log in LinkedIn, search Txema Romero)]

Source code at GitHub: https://github.com/txemaromero/notifycryptovalues

Finally, a demo video:


References:

[Goericke 20] S. Goericke. "The Future of Software Quality Assurance". Springer. 2020. ISBN: 978-3-030-29508-0.
Available at:
https://link.springer.com/book/10.1007/978-3-030-29509-7

[Nakamoto 08] S. Nakamoto. "Bitcoin: A Peer-to-Peer Electronic Cash System". 31 October 2008.
Available at:
https://bitcoin.org/bitcoin.pdf

[Romero 22] J.M. Romero. "A comparative analysis between Bitcoin and Ethereum developer communities through Microsoft Power BI and GitHub". Internal report. Capgemini. April 2022.
Available at:
here