Description: Testing the "Send" transaction functionality.
Priority: 1
Prerequisites: Smapp is installed and running. The wallet is synced and has a positive balance, higher than the tx costs sum.
Test Cases:
01 - Validate the "Send" button functionality
02 - Validate the "To" field with correct and existing account addresses
03 - Validate the "To" field with invalid or non-existing account addresses
04 - Validate the auto-population of the "From" field
05 - Validate the "Amount" field accepts only numerical input
06 - Validate the "Amount" field for amounts greater than current balance
07 - Validate switching between Smesh and Smidges
08 - Validate the "Cost" field dropdown
09 - Validate effect of different "Cost" on transaction speed
10 - Validate the "Note" field accepts text input
11 - Validate that the "Note" field is optional
12 - Validate clicking "Next" leads to the summary screen
13 - Validate the summary screen shows correct transaction details
14 - Validate clicking "Send" results in a confirmation message
15 - Validate the "View transaction" button functionality
16 - Validate the "Done" button functionality
17 - Validate executed transaction appears in Transactions log
18 - Validate "Cost" affects time for transaction to be applied
19 - Validate wallet balance is updated correctly
20 - Validate the "Note" in transaction details in Transactions log
21 - Validate error handling for network issues
22 - Validate transaction fees are calculated correctly
23 - Validate security during transaction
24 - Validate transactions are auditable and correctly logged
25 - Validate UI/UX during transaction process
26 - Validate resource utilization during transaction
27 - Validate behavior when app is minimized during transaction
28 - Validate transactions (correct) visibility accross different app versions.
29 - Validate the "Cancel" button during the transaction process
30 - Validate behavior when device goes into sleep mode during a transaction
31 - Validate transaction time-out
32 - Validate data integrity after a failed transaction
Description: Validate the "Send" button functionality
Steps:
- Open the Wallet screen in Smapp.
- Click on the "Send" button.
Test Data: N/A
Expected Result: The Transaction screen should open.
Description: Validate the "To" field with correct and existing account addresses
Steps:
- Open the Transaction screen.
- Enter a correct and existing account address in the "To" field.
Test Data: Valid account address
Expected Result: The "To" field should accept the address without errors.
Description: Validate the "To" field with invalid or non-existing account addresses
Steps:
- Open the Transaction screen.
- Enter an invalid or non-existing account address in the "To" field.
Test Data: Invalid or non-existing account address
Expected Result: The "To" field should display an error message.
Description: Validate the auto-population of the "From" field
Steps:
- Open the Transaction screen.
Test Data: N/A
Expected Result: The "From" field should automatically populate with the sender's account address.
Description: Validate the "Amount" field accepts only numerical input
Steps:
- Open the Transaction screen.
- Enter a value in the "Amount" field using alphabets, symbols, or special characters.
Test Data: Alphabets, symbols, special characters
Expected Result: The "Amount" field should not accept any non-numerical input and should display an error message or prevent submission.
Description: Validate the "Amount" field for amounts greater than current balance
Steps:
- Open the Transaction screen.
- Enter an amount greater than the current balance in the "Amount" field.
Test Data: Amount greater than current balance
Expected Result: The field should display an error message indicating insufficient funds.
Description: Validate switching between Smesh and Smidges
Steps:
- Open the Transaction screen.
- Locate the "Amount" field and the unit switch button.
- Switch between Smesh and Smidges.
Test Data: N/A
Expected Result: The unit should switch and the equivalent value should display correctly.
Description: Validate the "Cost" field dropdown
Steps:
- Open the Transaction screen.
- Click the "Cost" dropdown field.
Test Data: N/A
Expected Result: The dropdown should display three different options for transaction fees.
Description: Validate the effect of different "Cost" on transaction speed
Steps:
- Open the Transaction screen.
- Complete a transaction with the lowest "Cost" setting.
- Complete another transaction with the highest "Cost" setting.
Test Data: N/A
Expected Result: The transaction with the highest "Cost" setting should complete faster than the one with the lowest "Cost" setting.
Description: Validate the "Note" field accepts text input
Steps:
- Open the Transaction screen.
- Type text into the "Note" field.
Test Data: Any text string
Expected Result: The "Note" field should accept the text without errors and the note should be visible in the transaction details in the log.
Description: Validate that the "Note" field is optional
Steps:
- Open the Transaction screen.
- Leave the "Note" field empty.
- Complete the transaction.
Test Data: N/A
Expected Result: The transaction should complete successfully without requiring a note.
Description: Validate clicking "Next" leads to the summary screen
Steps:
- Open the Transaction screen.
- Fill in all required fields.
- Click "Next."
Test Data: N/A
Expected Result: The summary screen should display, showing details of the impending transaction.
Description: Validate the summary screen shows correct transaction details
Steps:
- Navigate to the summary screen.
- Verify the details displayed.
Test Data: N/A
Expected Result: All details should match what was entered in the previous screen.
Description: Validate clicking "Send" results in a confirmation message
Steps:
- On the summary screen, click "Send."
Test Data: N/A
Expected Result: A confirmation message should appear, indicating the transaction has been submitted.
Description: Validate the "View transaction" button functionality
Steps:
- Click on the "View transaction" button on the confirmation screen.
Test Data: N/A
Expected Result: The Transactions log should open, highlighting the recent transaction.
Description: Validate the "Done" button functionality
Steps:
- Click on the "Done" button on the confirmation screen.
Test Data: N/A
Expected Result: The Transaction screen should close, and you should return to the main Wallet page.
Description: Validate executed transaction appears in Transactions log
Steps:
- Complete a transaction.
- Open the Transactions log.
Test Data: N/A
Expected Result: The recent transaction should appear in the Transactions log.
Description: Validate "Cost" affects time for transaction to be applied
Steps:
- Complete a transaction with a low "Cost" setting.
- Complete another transaction with a high "Cost" setting.
- Observe the time it takes for each to be applied.
Test Data: N/A
Expected Result: The transaction with the higher "Cost" setting should be applied more quickly than the one with the lower setting.
Description: Validate wallet balance is updated correctly
Steps:
- Complete a transaction.
- Return to the Wallet screen.
Test Data: N/A
Expected Result: The Wallet balance should be updated correctly, reflecting the recent transaction.
Description: Validate the "Note" in transaction details in Transactions log
Steps:
- Complete a transaction with a note.
- View the transaction in the Transactions log.
Test Data: Any text string for the "Note"
Expected Result: The note should appear in the details of the transaction within the Transactions log.
Description: Validate error handling for network issues
Steps:
- Disable network connectivity.
- Attempt to complete a transaction.
Test Data: N/A
Expected Result: An appropriate error message should be displayed, informing the user that the network is unavailable.
Description: Validate transaction fees are calculated correctly
Steps:
- Start a transaction.
- Choose different options for "Cost."
- Validate the calculated transaction fees.
Test Data: N/A
Expected Result: The transaction fees should be calculated correctly based on the chosen "Cost."
Description: Validate security during transaction
Steps:
- Complete a transaction.
- Validate that all sensitive data is encrypted and not exposed in logs or UI.
Test Data: N/A
Expected Result: Sensitive data should be securely handled and not exposed at any point.
Description: Validate transactions are auditable and correctly logged
Steps:
- Complete multiple transactions.
- Validate that each transaction is correctly logged for auditing purposes.
Test Data: N/A
Expected Result: All transactions should be traceable and correctly logged.
Description: Validate UI/UX during transaction process
Steps:
- Complete a transaction.
- Observe the user interface and experience.
Test Data: N/A
Expected Result: The UI should be intuitive, and the steps should be clearly communicated to the user.
Description: Validate resource utilization during transaction
Steps:
- Monitor CPU, memory, and network usage while completing a transaction.
Test Data: N/A
Expected Result: Resource utilization should remain within acceptable limits.
Description: Validate behavior when the app is minimized during transaction
Steps:
- Start a transaction.
- Minimize the app during the transaction process.
Test Data: N/A
Expected Result: The transaction should either pause or continue in the background, based on the designed behavior.
Description: Validate transactions (correct) visibility accross different app versions.
Steps:
- Complete a transaction using an older version of the app.
- Validate that the transaction is visible in the tx log with in the newest app version.
Test Data: N/A
Expected Result: Transactions should be saved and reflected across different versions of the app.
Description: Validate the "Cancel" button during the transaction process
Steps:
- Start a transaction.
- Click on the "Cancel" button at any point before confirming the transaction.
Test Data: N/A
Expected Result: The transaction should be cancelled and you should return to the Wallet screen without any changes being applied.
Description: Validate behavior when device goes into sleep mode during a transaction
Steps:
- Start a transaction.
- Allow the device to go into sleep mode.
Test Data: N/A
Expected Result: The application should either pause the transaction or handle it gracefully, updating the user once the device wakes up.
Description: Validate transaction time-out
Steps:
- Start a transaction but do not complete it.
- Wait for an extended period.
Test Data: N/A
Expected Result: The transaction should time out after a specified time, with a message indicating so.
Description: Validate data integrity after a failed transaction
Steps:
- Intentionally cause a transaction to fail (e.g., network disconnection).
- Check data integrity for the Wallet and Transaction logs.
Test Data: N/A
Expected Result: All data should remain intact and accurate; no corruption should occur due to the failed transaction.