Request for funding QA Team - Student for October-November 2020

I would like to have this request added to the next GRIN Gov. meeting on next Tuesday 29.09.2020 - open for discussion

Motivation - why?

As you perhaps all know, I am working constantly on improving Grinnode.live services for the Grin-community for free. But during the last few months I came across different problems regarding GRIN-Node and Grin-Wallet functions. I did open up a couple of Issues on the official Grin github repository to let the developers and core members know.

In my opinion we need to do some basic QA on all provided public GRIN features and functions, therefore I am opening up this request for funding.

Did you know, Grin has Web hooks?
#The url where a POST request will be sent when a new transaction is received by a peer.
#tx_received_url = “http://127.0.0.1:8080/tx”
Are they working?

During my time working on Grinnode.live I came across a Student (@WarmBeer) who was willing to help me working on Grinnode.live. His name is Mick and he is a Student at Leiden University of Applied Sciences (Computer Science, SPEC: Software Engineering) in the Netherlands.

This could be seen as a test-run for the possible upcoming GSoC (link Proposal for next Summer - (similar to) Google Summer of Code) we could apply for.

He worked on different public projects for Grinnode.live and Mick will add another post below with his public project list he worked on. Therefore I am requesting a funding for him for the upcoming two month October and November 2020 from the Grin funds.

What would he be working on?

  1. Providing a repeatable and documented install process for Grin-Node & Grin-Wallet
  2. Brainstorm about a testing-procedure for Grin-(node+wallet) function testing
  3. Write down a list of possible testing cases for Grin-(node+wallet) function
  4. Perform tests based on list of possible functions.
  5. Report success and possible problems in a structured way to open up issues (need coordination with developers what they need to quickly fix it)

He would be working under the supervision of John Wöltz and me (Michael Mauer) and we both are dedicating our time for free to this task.

We are not following any established and enterprise software testing standards, due to the fact that one student and us helping him in our spare time, would be not enough to establish such process for testing . (e.g. ISTQB, etc)

Assessment

Results after October 2020

  • Providing a repeatable and documented install process for Grin-Node & Grin-Wallet for testing purposes.

  • Testing-procedure for Grin-(node+wallet) function testing

  • Possible have already a list of functional test on Grin (node+wallet)

Results after November 2020

  • list of functional test on Grin (node+wallet)
  • Already performing some test from this list

Student Payment

To be responsible and make sure we are not taking too much time from his personal education, we would limit the maximum amount of time per week to 2 (two) days.
Which means a maximum of 8 days per month.

Payment would be 15,00 Euros per hour (max of 8h/day)
In total we are applying for: 1.920,00 Euros (October + November 2020 Starting from 03.10.2020

8 Likes

currently @WarmBeer is being banned from the forum as he wanted to post his resume with a couple of public Github links. Please do not respond yet here until he had the opportunity uploading his post.

  • Thank you.

Edit: I am trying to reach some admins/staff here at the moment to un ban @WarmBeer

Hey guys,

I’m excited to join Mike and others for another Grin project, we have done grinnode live in the past, which proofed to be a great resource for Grin. And we also did the Grin node-challenge this summer which some of you might have participated in!

Here is a list of public projects I worked on the last two years :

2020 Grinnode.live (NodeJS + Express - VueJS)
ROLE: Fullstack Developer
URL: Redacted
Github:
Frontend: https://github.com/MCM-Mike/grinnode-live-frontend
Backend: https://github.com/MCM-Mike/grinnode-live-api

Made for MCM-Mike. Grinnode live is an online dashboard that shows realtime statistics of Grinnode live’s Grin node. Also part of Grinnode live was a peer uptime challenge where the peer with the highest uptime to Grinnode live’s Grin node could win some Grin. Made both Frontend and API.

Other projects, non related to GRIN:

2019-Present – Halobase net (NodeJS + Express + MongoDB – VueJS + ECMA6)
ROLE: Lead Dev
URL: Redacted

Halobase is the only working SERVER BROWSER for Halo: The Master Chief Collection on PC, also featuring a FILE SHARE similar to Nexusmods. Halobase currently has ~7,000 active monthly users. 343 Industries (developers of the Halo game franchise) have shown a lot of interest in the project ever since it started on December 2019 .

2018-2019 - Pixnano (NodeJS + Express, Socket io – HTML + CSS + ECMA5)
ROLE: Fullstack Developer
URL: Redacted (Retired)
Github: Redacted
Video: Redacted

Pixnano is an online pixel portrait where multiple clients (~10,000) can draw on in realtime, very similar to Reddit’s r/Place. The web-app also has a chat function and spam/grieving prevention. Users are limited to 10,000 pixels per day. Works on both Desktop and Mobile.

5 Likes

Providing a repeatable and documented install process for Grin-Node & Grin-Wallet for testing purposes.

Since we already have these documented (courtesy of @Paouky and others), I’m assuming the “for testing purposes” hints at some testing frameworks?
Is this request about the manual QA testing (clicking through) or is it about writing functional tests that treat the services (node/wallet) as a black box? I’m personally a bigger fan of the latter because they can be hooked up on the CI - not necessarily on every PR, perhaps just releases if they are too expensive/slow to run. I think that having additional e2e testing is a great idea, especially if they are automated.

1 Like

Thank you for your comment, to clarify at the moment we are trying to apply some automation where its possible but to be clear we are testing the given technical features also manual. As I mentioned in the request for funding, we came across some functional problems using GRIN (node+wallet) . Therefore we think testing the functions semi-manual is a good starting point and opening up issues where its needed.

1 Like

In general this sounds like a reasonable request. Since Pauky already worked a lot on docs for installing the node and wallet, maybe add some standard way for setting up and testing the node and wallet API. I have not tried it yet, but from others who posted on the forum I get the impresdion it is not yet fully standardized or hassle free. Correct me if I am wong here since it is just an impression and not hands on experience.

Writing a test set for the node sounds like a usefull idea if they are not there yet. Not only to test if the node and wallet work but perhaps also test robustbess and identify performance bottlenecks (usefull to improve performance on for example mobile devises). Also some test example queries with documentation could be usefull as a start for others to play around with the node and wallet API which again could be usefull for future GSoC projects.

2 Likes

Thank you for the ideas and inputs this is very valuable to us.
As you perhaps know, we are running some public APIs now not only our APIs but also nativ public GRIN APIs and we where and am working on documenting a solid setup for APIs and helping Mick (WarmBeer) on his two month testing journey.

I am aware. It is great to have the public API, but for performance reasons and privacy I think it would be great to be able to set up your own API end point. Anyhow, it is also because I compare everything with Bitcoin core which also has a nice API which can be easily used to query all information stored on the blockchain. It is great you and Mick are working on setting up some good documentation for setting up the API yourself. Once that is done, I will start playing :blush:, first back to my other project of converting the Bitcoin blockchain to a RDF graph database. For others who are interested, there is already a Neo4J project that does something similar

Hi @WarmBeer (and @mcm-mike),

First of all thank you for the funding request. It’s great to see people wanting to get involved with Grin especialy student :slight_smile:.
I agree that we do need to work on the install process (see previous discussions about all in one installer) and the testing process.
However, and sorry if I sound a bit harsh, I’m not convinced that a written report on that is what we need right now.
I’m very open to see some funding requests for junior devs/students but IMO the deliverables are too vague here.
Any chance you can provide some deliverable that could be a bit more “concrete”?

1 Like

This is a valid point and will be considered.

But on a general note, we need to do functional tests as well as unit tests for Grin (node+wallet).
If I may do a comparison to the Bitcoin project, which is more or less the standard at the moment and point you to the following pull-request from sipa : https://github.com/bitcoin/bitcoin/pull/19953

Quote from the pull-request:

I was surprised to learn that this was a 2500-line PR. By directory:

  • /test/functional - 1790 lines
  • /src/test - 134 lines
  • /src (exc test ) - 817 lines

So the majority of code in this PR is tests (which is a good thing!)
Source: Implement BIP 340-342 validation (Schnorr/taproot/tapscript) by sipa · Pull Request #19953 · bitcoin/bitcoin · GitHub

This is just to emphasize that Grin is in need or more testing.

1 Like

We are withdrawing the funding request, due to personal reasons.
Thank you for considering it, but we have to withdraw at this moment.

Sorry to hear so, I think the idea to write a good test framework for Grin had merit.
@WarmBeer @mcm-mike Good luck with the personal situation, hope all is well.

1 Like

yes its all good on our side, just to much work at the moment and we would not allocate enough time to be really helpful, due to University studies.
Therefore we did discuss this internally and wanted to withdraw from the funding-request.

There is still our testing-approach online available: GitHub - WarmBeer/GrinTesting and someone can pick it up.

1 Like