Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Milestone] Quality Assurance processes are in place #73

Closed
jm-clius opened this issue Sep 1, 2023 · 8 comments
Closed

[Milestone] Quality Assurance processes are in place #73

jm-clius opened this issue Sep 1, 2023 · 8 comments
Labels
Deliverable Tracks a Deliverable

Comments

@jm-clius
Copy link

jm-clius commented Sep 1, 2023

2023 Key Milestones: https://notes.status.im/s/iylE6wdli#

Milestone: https://github.com/waku-org/pm/milestone/3

Priority Tracks: Secure Scalability, Production Readiness, Growth, Generating Revenue (Sustainability & Longevity).
Due date:

Summary

QA processes are defined for releasing of the 3 core Waku clients (go-waku, nwaku and js-waku), The processes includes:

  • non-regression functional e2e testing
  • non-regression performance testing

This incudes but is not limited to:

  • black box testing of Waku protocol implementations as per RFC definition
  • Any client-specific implementation (e.g. optimal usage of store protocol)
  • Interoperability tests between the various clients (go-waku<>js-waku<>nwaku)
  • Testing of Status specific Waku protocol usage (e.g. go-waku as client to nwaku service nodes)
  • release-to-release performance analysis: Bandwidth usage, heaptrack, race condition, etc

Justification

Status Communities

Waku delivered major enhancements in 2023H1 to enable Status Community to securely scale using Waku. It is now critical that the software delivered remains stable, performant and bug-free.

Waku Network Gen 0

The aim of the Waku Network Gen 0 milestone is to deliver an autoscalable, bandwidth-capped, network to attract mature projects that need these guarantees to adopt Waku.
The delivery of these features should not be impeded by regression in release.

The two points above highlight the important to setting up QA processes now so that the delivery of Waku milestones are not impeded by software regressions.

Epics

@jm-clius jm-clius added the Deliverable Tracks a Deliverable label Sep 1, 2023
@jm-clius jm-clius mentioned this issue Sep 1, 2023
13 tasks
@fryorcraken
Copy link
Contributor

@jm-clius What are the main deliverable from your discussions with @fbarbu15 and @kaiserd ?

Form that, we can extract some high level epics.

  • nwaku functional non-regression testing is part of release process
  • nwaku <> go-waku function non-regression interop testing is part of release process etc.

@jm-clius
Copy link
Author

@kaiserd, for some reason I can't find the milestone document for the testing team.
In any case, the roadmap is:

  1. Writing test cases for the various service protocols
  2. Implementing these first as unit tests within the individual clients (js-waku, nwaku and soon go-waku)
  3. Setup a separate integrated testing environment where these test cases (and others) can be run against a "blackbox" network, with configurable nwaku, go-waku, js-waku clients for regular regression testing.

@fryorcraken
Copy link
Contributor

fryorcraken commented Sep 12, 2023

Also thinking tracking "testing improvements" in a new epic for this milestone for tasks such as:

etc.

Something along the line:

Test coverage across all Waku clients is coherent:

Review test coverage across Waku clients and:

  • set target if necessary/relevant
  • review test strategy and ensure it's aligned with best practice
  • Ensure that critical items have adequate test coverage
  • Code quality tools? (ie codeclimate)

All items above are subjective/relative. However, this is value for each time to check that how testing is done within their software is adequate. Also welcome to consult @fbarbu15 for help.

@fryorcraken
Copy link
Contributor

fryorcraken commented Sep 12, 2023

@kaiserd, for some reason I can't find the milestone document for the testing team. In any case, the roadmap is:

1. Writing test cases for the various service protocols

2. Implementing these first as unit tests within the individual clients (js-waku, nwaku and soon go-waku)

3. Setup a separate integrated testing environment where these test cases (and others) can be run against a "blackbox" network, with configurable nwaku, go-waku, js-waku clients for regular regression testing.

Thanks, I captured it in this issue: #34 cc @fbarbu15

Also, did we agree on some completion date or timeline @kaiserd @jm-clius ?

@chair28980
Copy link
Contributor

An epic of orphans and testing items too important to ignore, but too small to be an epic on its own feels like a good move.

@weboko
Copy link

weboko commented Sep 12, 2023

I think this is relevant and after this we can try to enrich the testing approach and do something like:

  • add more complex testing - spawning nwaku nodes, connecting from some example, doing send - receive test;

It's of course is not silver bullet and just covers UI-waku network relationship so it won't have much impact as unit tests to waku network would have right now.

@fryorcraken
Copy link
Contributor

fryorcraken commented Oct 24, 2023

Weekly Update

This work is tracked with vac:dst:software-testingwaku

@chair28980
Copy link
Contributor

Closing milestone in favor of new PM process which includes a QA Epic for each defined MIlestone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Deliverable Tracks a Deliverable
Projects
Status: Done
Development

No branches or pull requests

4 participants