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

docs(testing/plan): add functional test plan #596

Open
wants to merge 43 commits into
base: main
Choose a base branch
from

Conversation

tselit
Copy link

@tselit tselit commented Sep 13, 2024

Context

Document a test plan for the Web Monetization extension, detailing the functional test cases.

Closes #290.

Changes proposed in this pull request

The test plan in markdown format, alongside an image asset that visualises how the test cases relate to each other.

add test plan
Add 7 sections.
Add risks and test case diagram
add assets for testing
add a mindmap of the test cases
this folder was meant to be in the test/testplan folder
a folder for the test plan assets
add 3 basic test cases
Added the following test cases:
- Pay one-time when extension funds are insufficient.
- Disable continuous payments.
Added the following 4 test cases: 
- Pay one-time when extension funds are insufficient
- Disable continuous payments
- Change rate of pay and View available balance
- Disconnect wallet
- update test case for a partial one-time payment success due to insufficient extension funds
- add test case to pay until the extension runs out of funds
@tselit tselit added the area: documentation Improvements or additions to documentation label Sep 13, 2024
@tselit tselit added this to the Public Beta release milestone Sep 13, 2024
@tselit tselit removed this from the Public Beta release milestone Sep 13, 2024
Copy link

github-actions bot commented Sep 13, 2024

Extension builds preview

Name Link
Latest commit b4eab24
Latest job logs Run #11254757474
BadgeDownload
BadgeDownload

@tselit tselit changed the title docs (test plan/functional tests): 8 basic test cases & 3 edge test cases docs: functional test plan Sep 13, 2024
You have the option to use “play” money from the [Interledger Test Wallet application](https://rafiki.money/).
Here you can set up an account that is enabled for Web Monetization, and other Interledger functionality, without involving real money.

You can learn more about the [Interledger Test Wallet here](https://rafiki.dev/integration/playground/testnet/).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may not be the best place to link to. As a WM tester, it's sending me to a page that talks about trying out Rafiki. It doesn't give me any info about setting up a WM account. I might think you've sent me to the wrong place.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, that's a fair point, thanks Melissa.
I think we can safely eliminate the "You can learn more about..." sentence.


The resources and tools that you will need to test Web Monetization depend on your desired role, and what you want to test.

We’ve identified three roles you can play when using Web Monetization:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: If the only role we are wanting people to play is that of a website visitor, I suggest removing all the other information about website owner and developer. You also don't really need the table if website owner is the only thing listed in it.


### Reporting Issues

1. Use any screen recording application to record the steps and results of your testing.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was previously a suggestion of Loom, I believe. Was that removed on purpose? Are we assuming that the people who test this will already have an app?

Copy link
Author

@tselit tselit Oct 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I had removed the Loom example on purpose. I wasn't too keen for the docs to have an opinion...but, I've put the example back in....I don't feel very strongly so am happy to align with you.


### Prerequisites

Before you start testing, sign-up for a wallet:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention that the prereqs are different for the Test wallet?

Copy link
Author

@tselit tselit Oct 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool


### Test Data

This table describes the different ways that you can set up a website that is monetized, and a website that isn’t monetized, so that you can test the Web Monetization extension.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tester isn't setting up any websites. "...different ways that you can set up a website that is monetized..." I don't know if a tester needs to know this information.


**Important**

1. The playground itself is not web monetized.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: "The playground itself is not web monetized. We do not receive any payments from you if you use this site."

1. The playground itself is not web monetized.
2. The playground becomes monetized when you add one or more receiving wallet addresses to it.
3. If your Web Monetization extension is connected to a real wallet, then your extension will facilitate payments from your real wallet (i.e. real money).
4. Similarly, if your extension is connected to a play wallet (i.e. rafiki.money), then the extension facilitates payments using play money.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens if I add one play wallet address and one real wallet address to the playground?

Copy link
Author

@tselit tselit Oct 1, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It depends on:

  • the wallet that your extension is connected to;
  • which of one the receiving wallets your wallet is peered with...so, if the playground has 1 test wallet address, and 1 real wallet address, and your extension is connected to a test wallet address, then each time you try to pay with the extension, your test wallet will try to pay half of the one-time payment to the receiving test wallet on the playground (ref: Test ID 9)

Based on these risks, the sections that follow will detail the actual test cases.

<!-- prettier-ignore-start -->
We use 4 risk priorities: `critical` | `high` | `medium` | `low`

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Four are listed, but only criticals and highs are listed. Two suggestions: First, list them in order of importance with criticals appearing first. Second, if everything really is only critical or high, remove mention of medium and low.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, and done, thanks


**Steps**:

1. Visit a monetized website. Refer to the [Test Data](#Test-Data) section to explore different WM conditions for websites.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mentioned earlier that I didn't know how useful/helpful it was to have that Test Data section. I'm commenting here in case that section comes out.

The less familiar a tester is with WM, the more I'm afraid that the test playground is going to be totally meaningless and confusing to them. Ideally, we want to mimic the conditions under which WM payments would be made. Which means the tester would simply go to a site. They wouldn't have to go to a test site and plug in 1+ wallet addresses. Just my 2 cents.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Melissa.
Please have a look at the revised Test Data section.
It's more explicit, and hopefully clearer about (1) websites that can be used during testing and (2) wallet addresses that a tester can use on the WM playground.

**Steps**:

1. Visit a monetized website. Refer to the [Test Data](#Test-Data) section to explore different WM conditions for websites.
2. Visit a non-monetized website. Open the extension to observe its available options.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should suggest a URL or site. Give them a little more direction. We could say "Visit a non-web monetized website, such as your favorite search engine."

1. Visit a monetized website. Refer to the [Test Data](#Test-Data) section to explore different WM conditions for websites.
2. Visit a non-monetized website. Open the extension to observe its available options.

**Expected results**:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice, but not necessary, if we could include screenshots of what they should see in the extension.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me note the inclusion of screenshots for the future.
For now, I'd like to get this version of the test plan merged without them.


**Steps**:

1. Visit a monetized website. Refer to the [Test Data](#Test-Data) section to explore different WM conditions for websites.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder that there's mention of Test Data here. Testers probably don't care about the different conditions if we're asking them to specifically visit a web monetized site.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, that's a fair point. I've updated the wording like this:

Visit a monetized website. The Test Data section lists monetized websites that you can visit.

##### Pay one-time when wallet is out of funds

**Test ID**: 4
**Description**: Send a one-time payment to a monetized website when the extension has a sufficient remaining balance but the wallet has insufficient funds

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder how difficult it will be for testers to set up this scenario. Because they'd have to spend/move the existing funds in their wallet. Also, Test ID 5 wants the wallet to have sufficient funds, so maybe 5 should come before 4.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alrighty, both points addressed, thanks!


**Steps**:

1. Visit a monetized website that has multiple receiving wallet addresses or payment pointers.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think most testers are going to know of a website that meets this criteria.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a fair point, thanks!
The steps for Test ID 9 now give a tester explicit guidance on this.

@sidvishnoi sidvishnoi changed the title docs: functional test plan docs(testing/plan): add functional test plan Oct 9, 2024
Copy link
Member

@sidvishnoi sidvishnoi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm ok merging this as is now, before it gets more out of sync with coming changes.
Added some suggestions.

Would expect a follow-up update to this document before our next release so document stays in sync with release version.

docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
docs/testing/testplan.md Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Functional testing doc - beta release
3 participants