Billing & Subscriptions โ QA Test Plan¶
A step-by-step manual test plan for the Billing & Subscriptions area of MyAccountant. It is written for a manual tester โ no coding or technical knowledge required. Follow each case top to bottom, and record the result on the Sign-off sheet at the end.
Test mode only โ never use a real card
All testing happens in a test environment using fake Stripe test cards. You must never enter a real credit card. Before you start, confirm you are not on the live site (see Before you start). If you are ever unsure, stop and ask a developer.
Before you start¶
1. Confirm you are in test mode¶
You are safe to test only if all of these are true:
- The website address (URL) is the test / staging site your team gave you โ not the real customer site.
- The Stripe payment page shows an orange "TEST MODE" banner when you reach checkout.
- The fake test card
4242 4242 4242 4242is accepted (a real site would reject it).
If any of these is missing, do not continue โ you may be on the live site. Ask a developer to confirm.
2. The test cards you will use¶
Stripe gives fake cards that behave in predictable ways. For every card, use any future expiry date (e.g. 12/34), any 3-digit security code (e.g. 123), and any postcode (e.g. 2000).
| Card number | What it does | Used for |
|---|---|---|
4242 4242 4242 4242 |
Payment succeeds | Normal "happy path" tests |
4000 0000 0000 0341 |
Payment fails (declined) | Failed-payment tests |
3. Test accounts you will need¶
Ask a developer to give you logins for:
- A normal customer account (an ordinary business/individual user).
- An accountant account that already has an active Accountant Practice plan.
- An accountant account that does not have a practice plan.
- An admin/support portal login (for the admin-only cases).
4. The plans and prices you are testing¶
Prices are in Australian dollars per month and include GST. Confirm the amount shown on screen matches this table exactly.
| Plan | Price/month | Applies to |
|---|---|---|
| Business (Free) | $0 | A business/company |
| Business | $35 | A business/company |
| Property (Free) | $0 | The individual user |
| Property | $20 | The individual user |
| Personal | $10 | The individual user |
| Payroll (Free) | $0 | A business/company |
| Payroll | $15 | A business/company (up to 20 employees) |
| Payroll Enterprise | $0.50 per employee | A business/company (21+ employees) |
| Accountant Practice | $40 | An accountant's own practice |
5. How to report a bug¶
When something fails, log it with all of the following so a developer can reproduce it:
- What you did โ the test case number and the steps you took.
- What you expected vs what actually happened.
- A screenshot of the screen (including any error message and, if present, the "TEST MODE" banner).
- Which account you used (normal customer / accountant with practice / etc.) and which plan.
- Severity (see the next section).
- The date/time and which browser you used.
How to read a test case¶
Every test case below has the same shape:
- Steps โ do these in order.
- โ Pass if โ the result you should see. If you see this, tick the case as Pass.
- โ Fail if โ signs something is wrong. If you see any of these, mark it Fail and log a bug.
Severity โ how serious is a failure?¶
When you log a failure, mark how serious it is. Use this guide:
| Severity | Meaning | Examples |
|---|---|---|
| ๐ด Blocker | Money or access is wrong. Must be fixed before release. | Charged the wrong amount; got paid features without paying; a paying customer is locked out; a real charge happened; one customer can see another customer's billing details. |
| ๐ Major | A billing feature behaves incorrectly, but no money/access safety problem. | A discount that should show doesn't; cancel doesn't work; a wrong plan name or price label; the statement PDF won't download. |
| ๐ก Minor | Cosmetic only. | A typo, misaligned text, or a date shown as mm/dd/yyyy instead of dd/mm/yyyy. |
The ๐ง marker¶
Cases marked ๐ง Needs developer setup require a developer to trigger something for you once (a failed renewal, a repeated system message, etc.). You still check the result yourself โ just ask the developer to set it up first.
A. Subscribing (checkout)¶
A1 โ Subscribe to a paid Business plan¶
Steps
- Log in as a normal customer with a business that is on a Free plan.
- Go to Settings โ Billing.
- Choose the Business plan and click Subscribe/Upgrade.
- On the Stripe checkout page, confirm the amount, then pay with
4242 4242 4242 4242. - Wait to be returned to the billing page.
โ Pass if
- The checkout page shows $35 (GST inclusive).
- After paying, the billing page shows the business is now on the Business plan.
- The paid features (e.g. BAS lodgement, unlimited bank accounts) become available.
โ Fail if
- The price shown is anything other than $35 โ ๐ด Blocker.
- You are given the paid features before completing payment โ ๐ด Blocker.
- After a successful payment, the plan does not update within a minute or two โ ๐ Major.
A2 โ Subscribe to Personal ($10) and Property ($20)¶
Steps
- As a normal customer, go to Settings โ Billing.
- Subscribe to the Personal plan, pay with
4242 4242 4242 4242. - Repeat for the Property plan.
โ Pass if
- Personal shows $10 and Property shows $20 at checkout.
- After payment, each plan is active on your user account (these are not tied to a specific business).
โ Fail if the price is wrong โ ๐ด Blocker; the plan doesn't activate after payment โ ๐ Major.
A3 โ Access is granted only after payment finishes¶
Steps
- Start subscribing to any paid plan.
- On the Stripe checkout page, do not pay โ just close the tab or click back.
- Return to Settings โ Billing.
โ Pass if the plan is not active and no paid features were unlocked. You are still on your previous plan.
โ Fail if you received paid features without paying โ ๐ด Blocker.
B. Free plans¶
B1 โ Activate a Free plan (no card needed)¶
Steps
- As a normal customer, go to Settings โ Billing.
- Choose a Free plan (e.g. Business (Free), Property (Free), or Payroll (Free)).
- Confirm.
โ Pass if
- You are not taken to a payment page and not asked for a card.
- The Free plan activates immediately.
- The free-tier limits apply (e.g. Business Free = 1 bank account, up to 50 contacts).
โ Fail if you are asked to enter card details for a $0 plan โ ๐ Major; the free plan doesn't activate โ ๐ Major.
C. Upgrades & downgrades¶
C1 โ Upgrade from Free to Paid¶
Steps
- Start on a Free plan.
- Upgrade to the paid version of the same area (e.g. Business Free โ Business).
- Pay with
4242 4242 4242 4242.
โ Pass if the paid plan and its features become active after payment, and the price shown matches the table.
โ Fail if the price is wrong โ ๐ด Blocker; features don't unlock โ ๐ Major.
C2 โ Downgrade from Paid to Free¶
Steps
- Start on a paid plan.
- Downgrade to the Free version of the same area.
โ Pass if the plan changes to Free and the message clearly warns which features you will lose.
โ Fail if you keep paid features you should have lost โ ๐ด Blocker; no warning is shown about lost features โ ๐ก Minor.
C3 โ Downgrade to Free is blocked when over the limit¶
Steps
- Use a Payroll (paid) business that has more employees than the Free plan allows (Free = 1 employee).
- Try to downgrade that business to Payroll (Free).
โ Pass if
- The downgrade is refused with a clear, friendly message explaining you have too many employees.
- Your existing paid plan stays active and unchanged (you are not left with no plan).
โ Fail if the downgrade goes through and employees/data are lost or hidden โ ๐ด Blocker; the error message is confusing or missing โ ๐ Major.
D. Cancel & reactivate¶
D1 โ Cancel keeps access until the period ends¶
Steps
- On a paid plan, go to Settings โ Billing and Cancel the subscription.
โ Pass if
- You are told the plan stays active until the end of the paid period (it is not cut off immediately).
- The billing page shows it is scheduled to cancel, with the end date.
โ Fail if access is cut off immediately โ ๐ Major; no end date is shown โ ๐ก Minor.
D2 โ Reactivate before the period ends¶
Steps
- On a subscription that is scheduled to cancel (from D1), click Reactivate.
โ Pass if the cancellation is called off and the plan continues as normal.
โ Fail if reactivating charges you again immediately or fails to restore the plan โ ๐ Major.
D3 โ Cancelling Payroll does not remove employees¶
Steps
- On a Payroll paid plan that has several employees, cancel the subscription.
โ Pass if the cancel succeeds and no employees are deleted or terminated โ your employee records are untouched.
โ Fail if cancelling removes, terminates, or hides employees โ ๐ด Blocker.
E. Payment problems ๐ง Needs developer setup¶
These test what happens when a renewal payment fails. Ask a developer to set up a subscription that renews on the declining card 4000 0000 0000 0341, or to trigger a "payment failed" event for your test account.
E1 โ A failed payment lowers access but does not lock you out¶
Steps
- Ask a developer to make a paid subscription's renewal fail.
- Check Settings โ Billing and try to use the app.
โ Pass if
- The account is shown as Past due (payment problem).
- Access drops down to the free-tier equivalent โ you can still use the app in a limited way. For example, a Personal subscriber drops to Personal (Free) (1 bank account + personal features), rather than being fully locked out.
โ Fail if the customer is completely locked out โ ๐ด Blocker; or they keep full paid access despite non-payment โ ๐ด Blocker.
E2 โ Paying the overdue amount restores full access¶
Steps
- Continue from E1 (account is Past due).
- Ask the developer to make the payment succeed (or update the card to
4242 4242 4242 4242and let it retry).
โ Pass if the account returns to Active and full paid features come back.
โ Fail if access does not return after a successful payment โ ๐ Major.
F. Accountant billing¶
F1 โ Accountant with a practice plan gets 25% off client plans¶
Steps
- Log in as the accountant with an active Accountant Practice plan.
- Buy a plan on behalf of a client (e.g. a Business plan for a client company).
- Look at the price on the Stripe checkout page.
โ Pass if
- The checkout shows a 25% discount โ for a Business plan that is $35 โ $26.25.
- The subscription is created against the client, billed to the accountant.
โ Fail if the discount is missing or the wrong amount โ ๐ Major (๐ด Blocker if the client is charged the wrong amount).
F2 โ Accountant without a practice plan buys at full price (no error)¶
Steps
- Log in as the accountant without a practice plan.
- Buy a plan on behalf of a client.
โ Pass if
- The purchase succeeds at the full retail price (no discount) โ e.g. Business at $35.
- There is no error and you are not blocked.
โ Fail if the accountant is blocked or shown an error/"not allowed" message โ ๐ด Blocker; or they wrongly receive the discount โ ๐ Major.
F3 โ Client cannot see the accountant's billing details¶
Steps
- After F1, log in as the client whose plan the accountant bought.
- Look at the client's billing screen.
โ Pass if the client sees their own plan, but none of the accountant's payment details or card.
โ Fail if the client can see the accountant's card, customer record, or other clients' details โ ๐ด Blocker (data leak).
F4 โ Accountant billing statement¶
Steps
- Log in as the accountant with a practice plan.
- Go to Settings โ Billing and find the Billing statement.
- Pick a month from the month dropdown.
- Click Download PDF.
โ Pass if
- The month picker is a dropdown (not a calendar box).
- The statement lists each client company name, their plan, and a GST-inclusive amount, plus a grand total and a note explaining the amounts.
- The PDF downloads successfully (no login error / no blank page).
โ Fail if the PDF fails to download or shows a login error โ ๐ Major; dates display as mm/dd/yyyy โ ๐ก Minor.
G. Discounts & promo codes¶
G1 โ Customer promo codes are politely rejected¶
Steps
- As a normal customer, start subscribing to a paid plan.
- If a promotion-code box appears, enter any code (e.g.
SAVE10).
โ Pass if the code is rejected with a clear message such as "Promotion codes are not currently available." (Customer promo codes are intentionally switched off right now.)
โ Fail if a customer code is accepted and reduces the price โ ๐ด Blocker.
H. Payroll employee limits¶
H1 โ Payroll plan is blocked at the 21st employee¶
Steps
- On a Payroll (paid) business, add employees up to 20.
- Try to add a 21st employee.
โ Pass if the first 20 are fine and the 21st is blocked with a clear message about the limit (and guidance to move to Payroll Enterprise).
โ Fail if you can add a 21st employee on the standard Payroll plan โ ๐ Major.
H2 โ A larger existing business keeps its employees (grandfathering) ๐ง Needs developer setup¶
Steps
- Ask a developer to set up a company that already has more than 20 employees and switch it to the new Payroll plan.
- Check how many employees it allows.
โ Pass if the company keeps its current headcount (e.g. 25 employees allowed, blocked only at 26).
โ Fail if existing employees over 20 are suddenly blocked or hidden โ ๐ด Blocker.
H3 โ Admin raises an employee limit (goodwill) ๐ง Admin portal¶
Steps
- Log in to the admin/support portal.
- Raise a chosen company's employee limit from 20 to 30.
- Log in as that company and add employees.
โ Pass if the company can now reach 30 employees (blocked at 31). Clearing the override in admin returns the limit to 20.
โ Fail if the new limit doesn't take effect โ ๐ Major.
I. Behind-the-scenes reliability ๐ง Needs developer setup¶
Stripe sometimes sends the same message twice or out of order. These checks make sure the app never double-charges or mishandles that. A developer will trigger the events; you confirm the result on the billing screen.
I1 โ The same payment message twice does not charge twice¶
Steps
- Complete a normal subscription (A1).
- Ask a developer to re-send the same Stripe event.
โ Pass if nothing changes โ still one active subscription, no second charge, no duplicate entries.
โ Fail if a second charge or duplicate subscription appears โ ๐ด Blocker.
I2 โ A cancelled subscription cannot be brought back by a late message¶
Steps
- Cancel a subscription so it is Cancelled.
- Ask a developer to deliver a late "payment succeeded" message for it.
โ Pass if the subscription stays cancelled โ the late message does not silently reactivate it.
โ Fail if the cancelled subscription becomes active again on its own โ ๐ด Blocker.
I3 โ A fake/invalid message is ignored¶
Steps
- Ask a developer to send a message with an invalid signature (a forged message).
โ Pass if it is rejected and nothing changes in the account.
โ Fail if the forged message changes the subscription in any way โ ๐ด Blocker.
Finishing up โ saving your results¶
You record results inside each test case, not in a table at the end:
- At the top of the page, fill in the Test run panel โ your name, the date, and the environment you tested.
- For every case, choose Pass, Fail, or Blocked in its result box, and add any notes / evidence (bug reference, screenshot filename).
- The summary at the top keeps a live tally (e.g. 12 pass ยท 1 fail ยท 2 not run).
- When you are done, click Print / Save as PDF and save the file as your evidence. The date fills in automatically if you left it blank.
Your entries are saved in your browser as you go, so an accidental refresh won't lose them. Use Reset run to clear the page for the next round of testing.
Each tester saves their own PDF
Results are stored per browser โ they are not shared between testers or saved to a central system. Each tester prints their own PDF as the record of their run.