-
Notifications
You must be signed in to change notification settings - Fork 40
NOSFT QA
Test Plan Document Project Name: NOSFT Date: May 4, 2023 Version: 1.0 Prepared By: @andredevjs
This test plan document outlines the testing strategy and approach for the Nosft wallet website. The purpose of this document is to define the testing objectives, scope, schedule, and deliverables. This document will be used by the testing team and stakeholders to guide the testing process.
The objective of this testing is to ensure that the website release for the Nosft wallet meets all functional and non-functional requirements. The scope of the testing will cover the following areas:
- Functional testing
- Performance testing
- Security testing
- Usability testing
The testing approach for this release will involve both manual and automated testing*. The manual testing will be carried out by our team, while the automated testing will be performed using suitable tools and scripts.
The following test environment will be used for the testing:
Operating System: macOS Browsers: Google Chrome Test tools: TBD
The following test cases will be executed during the testing:
Objective: Display your *Wallet* inscriptions
Pre-conditions:
* Have some inscriptions in each wallet
Test steps:
1. Click on connect wallet
2. Select your wallet
Expected Result:
* Display your wallet inscriptions
Notes: Repeat this process for every wallet.
Objective: Should clean up wallet data after disconnect.
Pre-conditions:
* Have some inscriptions in each wallet
Test steps:
1. Click on connect wallet
2. Select your some wallet
3. Wait to see your inscriptions
4. Disconnect
5. Connect with a different wallet.
Expected Result:
1. After disconnect, it should clear up, wallet related data
2. When connect to a different wallet, it should only show the connected wallet's ordinals
Objective: Should load some inscriptions for sale when wallet is connected
Pre-conditions:
* -
Test steps:
1. Connect your wallet
2. It should load items, specifically non-txt inscriptions.
Expected Result:
1. If there is more than 5, it should start moving the slider automatically.
Objective: Should load your inscriptions
Pre-conditions:
* Have a large set of inscriptions
Test steps:
1. Connect your wallet
Expected Result:
1. It should load all of your inscriptions
2. Images, text, video, or whatever type your inscription is, it must be loaded.
Notes: It is required, that you try out with an address or pubkey that has more than 100 inscriptions, we've broken listing inscriptions for wallets with lots of inscriptions and utxos.
Objective: Validate inscriptions filters
Pre-conditions:
* Have a large set of inscriptions
Test steps:
1. Connect your wallet
2. Use the search box and filter by inscription id, inscription number or value
3. Clear up the filter
Expected Result:
1. It should display matching records when filtering with the searchbox
2. When filter is cleared, it should go back to it's normal state, and display ALL your inscriptions
Objective: Validate inscriptions sort functions
Pre-conditions:
* Have a large set of inscriptions
Test steps:
1. Connect your wallet
2. Use the date, value and # controls to order your inscriptions
Expected Result:
1. Elements must be ordered based on the control you select.
Notes: Might be interesting to save this as a user preference, so if he connects it's wallet back, it is already sorted by that preference.
Objective: Validate that all inscription information is loaded
Pre-conditions:
* Have an inscription
Test steps:
1. Click on send or in one of the cards from the main page (your inscriptions)
Expected Result:
1. Must load inscription content, and values like number.
2. Send, sell actions must be enabled.
Notes: If the inscription belongs to a collection, it should load the collection name, and icon.
Objective: Validate that the receiver gets the inscription
Pre-conditions:
* Have an inscription
* Have a secondary wallet
Test steps:
1. Click on send to open up the modal
2. Enter your secondary wallet address
3. Send
Expected Result:
1. Must display the confirmation modal. If you click in the txId or the View in mempool button, it should take you there.
2. Close button must closed
3. Inscription might still show up for a moment, while the tx is confirmed.
4. Utxo should show up as unconfirmed, in the other wallet
5. After a couple of confirmations, it should show up
Notes: This test should be ran at least 4 times, one for each wallet we support.
Objective: Validate that boost feature works
Pre-conditions:
* Have an inscription with low value (Bellow 1000 Sats)
* Have a secondary wallet
Test steps:
1. Click on send to open up the modal
2. Enter your secondary wallet address
3. Send
Expected Result:
1. Must not display the confirmation modal
2. It should close the modal
3. It should show a toast with the deezy confirmation
Notes: This test should be ran at least 4 times, one for each wallet we support.
Objective: Validate that inscription is posted in nostr
Pre-conditions:
* Have an inscription
* Have a secondary wallet
Test steps:
1. Click on sell to open up the modal
2. Enter the amount you want to sell your inscription for
3. Sell
Expected Result:
1. Must display the confirmation modal.
2. Inscription should be displayed in the live section in the home page.
Notes: This test should be ran at least 4 times, one for each wallet we support.
Objective: Sign message using bip322
Pre-conditions:
* Wallet should NOT be connected
Test steps:
1. Go to the sign page
2. Enter a message
3. Click on sign
4. Refresh
5. Sign another message
Expected Result:
1. First time, must connect your wallet
2. After refresh, with a connected wallet. it should just sign the message
Notes: This test should be ran at least 4 times, one for each wallet we support.
Objective: Filter inscriptions for sell
Test steps:
1. Go to inscriptions page
2. Use the search box and filter by inscription id, inscription number or value
3. Clear up the filter
Expected Result:
1. It should display matching records when filtering with the searchbox
2. When filter is cleared, it should go back to it's normal state, and display ALL inscriptions
3. We filter out duplicated inscriptions, so they shouldn't be a inscription with the same id twice.
Objective: Validate txt filter feature
Test steps:
1. Go to inscriptions page
2. Toggle the "Hide .txt" checkbox
Expected Result:
1. Inscriptions should be displayed based on that checkbox
Notes: By default, we hide .txt
Objective: Validate inscriptions sort functions
Test steps:
1. Go to inscriptions page
2. Use the date, value and # controls to order inscriptions
Expected Result:
1. Elements must be ordered based on the control you select.
Objective: Buy inscriptions from the market place
Pre-conditions:
* Have a enough funds to buy
* Have at least 2 dummy UTXOS of 1000 sats each
Test steps:
1. Click the inscription you want to buy
2. Click the buy option to open the buy modal
3. Pay
Expected Result:
1. Must display the confirmation modal.
2. Inscription should show up in your wallet after some time
Notes: Your dummy UTXOS should be *on-chain*.
Notes: This test should be ran at least 4 times, one for each wallet we support.
Objective: Test out big wallets
Pre-conditions:
* Have a enough more than 100 UTXOS + Inscriptions
Test steps:
1. Connect your wallet
Expected Result:
1. Must display all your inscriptions
- Run lighthouse for desktop, no wallet should be connected. 90+ in all the metrics is accepted
- Run lighthouse for desktop, with wallet connected. Here metrics aren't 90+ score, so there is some work to to here.
- Connect to a wallet with a bunch of utxos and inscriptions, load time should be fast.
- At this point, we will just use lighthouse, but we should test:
- Load testing to simulate concurrent user traffic
- Stress testing to evaluate the system's ability to handle maximum load
- Performance testing to evaluate response time
- Penetration testing to identify vulnerabilities and exploits
- Vulnerability scanning to identify potential weaknesses
- Security audit to ensure compliance with security standards
Tools like npm audit, and snyk should be used.
The following testing schedule will be followed:
- Functional testing: 2 weeks
- Performance testing: 1 week
- Security testing: 1 week
- Usability testing: 1 week
The following deliverables will be produced during the testing:
- Test plan document
- Test cases document
- Test results report
- Bug reports
The following risks have been identified during the testing:
- Money loss: Incorrect transactions.
- Inscriptions loss: Incorrect use of utxos for use transactions.
- Security breach: Security testing will be carried out to identify vulnerabilities and exploits.
- Integration issues: Integration testing will be carried out to ensure seamless integration with third-party tools.
The final sign-off will be provided by the Danny based on the results of the testing and the acceptance criteria. Once the website release has passed all the testing stages, it will be considered ready for deployment.
- Test cases document
- Test results report
- Bug reports