QA Plan > Test Suite > Test Cases

Release Information

Project: PROJECT-NAME
Internal Release Number: X.Y.Z
Related Documents:
LINKS-TO-RELEVANT-STANDARDS
LINKS-TO-OTHER-DOCUMENTS
TODO: Document system test cases in enough detail for any failure to be reproducible. Choose between the short test battery format or the longer individual test case format.

Inventory Test Battery

Test ID Summary Expected Results Comments
clearance-1 Visit the product description page for a clearance product that is in stock. Inventory field == "In stock".
Days until ship == 1.
All clearance items ship the next day.
clearance-2 Visit the product description page for a clearance product that is overstocked. Click "Overstocked!" link. See bulk purchase options. Inventory field == "Overstocked!" link.
Days until ship == 1.
Bulk minimum = product items-per-palette
Let customers and partners know that we are overstocked and willing to ship in bulk.
inventory-1 Visit the product description page for a normal product that is in stock or overstocked. Inventory field == "In stock".
Days until ship == 1 or 2.
Products with SKU = "81xx-*" ship in 1 day, others ship in 2 days.
inventory-2 Visit the product description page for a normal product that is back-ordered. Click "Estimate ship date". Click "Accept". Inventory field == "Out of stock".
Days until ship == backorder delivery date + unpack + 1 or 2.
Products with SKU = "81xx-*" add 1 day, others add 2 days.
subscribe-1 Visit the product description page for a subscription product with weekly or monthly publication period. Inventory field == "In stock" or "Out of stock" depending on stock level. Products with SKU = "12xx-*-01" are weekly, "12xx-*-02" are monthly, "12xx-*-04" are annual.
subscribe-2 Visit the product description page for a subscription product with annual publication period. Inventory field == "In stock". Annual subscriptions will always be restocked in time.
General comments: In all cases, the sales price and sale duration are not affected by stock level status.

TOPIC-NAME Test Battery

Test ID Summary Expected Results Comments
UNIQUE-TEST-ID-1 PURPOSE, PRECONDITIONS, STEPS, AND TEST DATA. SPECIFIC-EXPECTED-OUTPUT NOTES and QUESTIONS.
UNIQUE-TEST-ID-2 PURPOSE, PRECONDITIONS, STEPS, AND TEST DATA. SPECIFIC-EXPECTED-OUTPUT NOTES and QUESTIONS.
UNIQUE-TEST-ID-3 PURPOSE, PRECONDITIONS, STEPS, AND TEST DATA. SPECIFIC-EXPECTED-OUTPUT NOTES and QUESTIONS.
UNIQUE-TEST-ID-4 PURPOSE, PRECONDITIONS, STEPS, AND TEST DATA. SPECIFIC-EXPECTED-OUTPUT NOTES and QUESTIONS.
General comments: COMMON CHARACTERISTICS OF ALL TESTS IN BATTERY. QUESTIONS and NOTES.

login-1: Normal User Login

Purpose: Test that a user can log in with the proper username or email address and password.
Preconditions:
User is not already logged in.
User testuser exists, and account is in good standing.
Test Data:
usernameOrEmail = {testuser, testuser@domain.com}
password = {valid}
Steps:
  1. visit Login page
  2. enter usernameOrEmail
  3. enter password
  4. click "Login"
  5. see Welcome page
  6. verify welcome message has correct username
Notes and Questions:
  • Does this work without browser cookies?

login-2: Failed User Login

Purpose: Test that users can not log in with improper username, email address, or password.
Preconditions:
User is not already logged in.
User bogususer does not exist.
Test Data:
usernameOrEmail = {bogususer, bad@syntax@domain.com, empty}
password = {invalid, empty}
Steps:
  1. visit Login page
  2. enter usernameOrEmail
  3. enter password
  4. click Login
  5. see Login page again
  6. verify error message indicates the problem

login-3: Locked-out User Login

Purpose: Test that a user who has been locked out by an administrator cannot log in. User should see a message indicating that he/she was locked out.
Preconditions:
User is not already logged in.
User testuser2 exists and has been locked out
Test Data:
usernameOrEmail = {testuser2, testuser2@domain.com}
password = {valid}
Steps:
  1. visit Login page
  2. enter usernameOrEmail
  3. enter password
  4. click "Login"
  5. see Login page again
  6. verify error message indicates lock-out
Notes and Questions:
  • Does this work without browser cookies?
  • Text of lock-out message gives instructions to contact customer service.

account-lockout-1: User Accounts are Locked After Three Failures

Purpose: Test that a user who enters an incorrect password three times is locked out and must contact customer service.
Preconditions:
User is not already logged in.
User testuser exists and is not already locked out
Test Data:
usernameOrEmail = {testuser2, testuser2@domain.com}
password = {invalid}
Steps:
  1. visit Login page
  2. enter usernameOrEmail
  3. enter password
  4. click "Login"
  5. see Login page again
  6. verify that error message indicates failure, same username retained
  7. enter password
  8. click "Login"
  9. see Login page again
  10. verify that error message indicates failure, same username retained
  11. enter password
  12. click "Login"
  13. see Login page again
  14. verify error message indicates lock-out
Notes and Questions:
  • Further attempts should continue to see lock-out message
  • Text of lock-out message gives instructions to contact customer service.

register-1: New User Registration

Purpose: Test that a new user can create a user account.
Preconditions: testuser is not already registered.
Test Data:
username = {testuser}
realname = {"Test E. User"}
email = {testuser@domain.com}
Steps:
Test Input Expected Output
visit Register page, "Register" button disabled blank form fields, disabled button
enter username, realname, email "Register" button becomes enabled
click "Register" Terms-Of-Use page
click "Accept" Password-Sent page: sent-to address == email
read email email contains password
log in with username and password from email Welcome page: correct username is displayed

edit-profile-1: User Profile Correctness Test

Purpose: Test that a user can update his/her account information.
Preconditions: User account testuser exists and is in good standing.
Test Data:
realname = {"New Name"}
email = {new.email@domain.com}
Steps:
  1. visit User-Profile page
  2. verify username shown read-only
  3. verify current realname shown read-write
  4. verify current email shown read-write
  5. verify two blank password fields shown
  6. edit realname
  7. edit email
  8. submit form
  9. see Welcome page
  10. visit User-Profile page again
  11. verify username shown read-only
  12. verify new realname shown read-write
  13. verify new email shown read-write

edit-profile: User Profile Robustness Test

Purpose: Test that a user can NOT update his/her account information with invalid values.
Preconditions: User account testuser exists and is in good standing.
Test Data:
realname = {'hopeful"hacker', 'Andy <tag>'}
email = {bad@syntax@domain.com, blank}
password = {same as username, repeated chars, too short, includes domain name, blank, non-matching}
Steps:
  1. visit User-Profile page
  2. verify username shown read-only
  3. verify current realname shown read-write
  4. verify current email shown read-write
  5. verify two blank password fields shown
  6. edit realname
  7. edit email
  8. edit passwords
  9. submit form
  10. see User-Profile page again
  11. verify appropriate error message and incorrect fields highlighted
  12. verify username shown read-only
  13. verify attempted realname shown read-write
  14. verify attempted email shown read-write
  15. verify two blank password fields shown
  16. visit Welcome page, without re-submitting profile information
  17. visit User-Profile page again
  18. verify unchanged realname shown read-write
  19. verify unchanged email shown read-write
Notes and Questions:
  • NOTE: if there is any error, then no changes are recorded. So, leaving the page and coming back should show the original values.

password-replacement-1: Replace forgotten password

Purpose: Test that a user can request a new password.
Preconditions: User testuser exists and is not locked out.
Test Data:
usernameOrEmail = {testuser, testuser@domain.com}
Steps:
  1. visit Login page
  2. click "Forgot password"
  3. enter username
  4. submit form
  5. see "thank you" screen
  6. verify that email address shown is correct
  7. read email
  8. verify that email contains new password
  9. log in using password from email message

unique-test-case-id-1: Test Case Title

Purpose: 1-3 SENTENCES
Preconditions: PRECONDITION
Test Data:
VARIABLE = {VALUE1, VALUE2, VALUE3, ...}
VARIABLE = { x | DEFINING-CONDITION }
VARIABLE = { DESCRIPTION OR LINK-TO-VALUE-SOURCE }
Steps:
Test Input Expected Output
visit STARTING-POINT EXPECTED-SCREEN-CONTENT
STEP EXPECTED-FEEDBACK
STEP EXPECTED-FEEDBACK
STEP EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION

unique-test-case-id-2: Test Case Title

Purpose: 1-3 SENTENCES
Preconditions: PRECONDITION
Test Data:
VARIABLE = {VALUE1, VALUE2, VALUE3, ...}
VARIABLE = { x | DEFINING-CONDITION }
VARIABLE = { DESCRIPTION OR LINK-TO-VALUE-SOURCE }
Steps:
Test Input Expected Output
visit STARTING-POINT EXPECTED-SCREEN-CONTENT
STEP EXPECTED-FEEDBACK
STEP EXPECTED-FEEDBACK
STEP EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION

unique-test-case-id-3: Test Case Title

Purpose: 1-3 SENTENCES
Preconditions: PRECONDITION
Test Data:
VARIABLE = {VALUE1, VALUE2, VALUE3, ...}
VARIABLE = { x | DEFINING-CONDITION }
VARIABLE = { DESCRIPTION OR LINK-TO-VALUE-SOURCE }
Steps:
Test Input Expected Output
visit STARTING-POINT EXPECTED-SCREEN-CONTENT
STEP EXPECTED-FEEDBACK
STEP EXPECTED-FEEDBACK
STEP EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION

unique-test-case-id-4: Test Case Title

Purpose: SENTENCES
Preconditions: SENTENCES
Test Data:
VAR = {VALUES}
VAR = {VALUES}
Steps:
  1. visit STARTING-POINT
  2. STEP
  3. STEP
  4. STEP
  5. verify EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION

unique-test-case-id-5: Test Case Title

Purpose: SENTENCES
Preconditions: SENTENCES
Test Data:
VAR = {VALUES}
VAR = {VALUES}
Steps:
  1. visit STARTING-POINT
  2. STEP
  3. STEP
  4. STEP
  5. verify EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION

unique-test-case-id-6: Test Case Title

Purpose: SENTENCES
Preconditions: SENTENCES
Test Data:
VAR = {VALUES}
VAR = {VALUES}
Steps:
  1. visit STARTING-POINT
  2. STEP
  3. STEP
  4. STEP
  5. verify EXPECTED-RESULT
Notes and Questions:
  • NOTE
  • QUESTION
TODO: Check for words of wisdom for additional advice on this template.
Company Proprietary
Copyright © 2003-2004 Method Labs. All rights reserved. License terms. Retain this copyright statement whenever this file is used as a template.