Skip to content

NOSFT QA

andredevjs edited this page May 5, 2023 · 11 revisions

NOSFT QA

Test Plan Document Project Name: NOSFT Date: May 4, 2023 Version: 1.0 Prepared By: @andredevjs

Intro

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.

Objectives and Scope

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

Testing Approach

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.

Test Environment

The following test environment will be used for the testing:

Operating System: macOS Browsers: Google Chrome Test tools: TBD

Test Cases

The following test cases will be executed during the testing:

Functional Testing

Case NOSFT001 - Connect Wallet

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.

Case NOSFT002 - Disconnect 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

Case NOSFT003 - On sale slider

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.

Case NOSFT004 - Your inscriptions

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.

Case NOSFT005 - Your inscriptions search filter

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

Case NOSFT007 - Order 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.

Case NOSFT008 - Owned Inscription details

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.

Case NOSFT009 - Send inscription

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.

Case NOSFT0010 - Boost inscription

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.

Case NOSFT0011 - Sell inscription

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.

Case NOSFT0012 - Sign Message

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.

Case NOSFT0013 - Filter Inscriptions on sale

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.

Case NOSFT014 - Filter out txt inscriptions

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

Case NOSFT015 - Order inscriptions on sale

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.

Case NOSFT0016 - Buy inscription

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.

Case NOSFT0017 - Large set of utxos and inscriptions

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

Performance Testing

  • 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

Security Testing

  • 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.

Testing Schedule

The following testing schedule will be followed:

  • Functional testing: 2 weeks
  • Performance testing: 1 week
  • Security testing: 1 week
  • Usability testing: 1 week

Testing Deliverables

The following deliverables will be produced during the testing:

  • Test plan document
  • Test cases document
  • Test results report
  • Bug reports

Risks and Mitigation

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.

Sign-Off

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.

Appendices

  • Test cases document
  • Test results report
  • Bug reports