Lab. #1 - Defect (Bug) Reporting, Manual Testing, and Regression Testing
Lab. #1 - Defect (Bug) Reporting, Manual Testing, and Regression Testing
Lab. #1 - Defect (Bug) Reporting, Manual Testing, and Regression Testing
159-Software Testing
1/13
MTAT.03.159-Software Testing
1 INTRODUCTION
This lab can be divided into three main parts:
Familiarization
Manual functional testing
Regression testing
This lab is a simple introduction to some of the concepts inherent to software testing. This includes hands
on experience in testing an example software system, and following industrial defect tracking practices
through several phases of defects’ life cycles. The focus of this lab is to provide good issue reporting
practice. Also students will be able to compare manual and regression testing strategies.
Sections 2.1 through 2.3 will be performed in pairs. The lab report will be completed and submitted by
each student group. Make sure to include the names of both students in the lab report.
1.1 DUE DATE AND LATE MARKING POLICY
Lab report should be submitted through the submission form on the course home page
(https://courses.cs.ut.ee/2016/SWT2016/spring/Main/Submission). Deadline for submissions is 7 days
from current lab session. For example if the lab has been done on Tuesday 16.15, the deadline is on
following Monday at 23:59.
Late reports: There will be 50% penalty for 1 day delay. There will be no credit points for reports turned
in after the 1 day delay date.
1.2 EXAMPLE REPOSITORIES OF REAL DEFECTS
The following are example repositories of real defects for real projects in the software industry. Make
sure to review many examples to see how other experienced testers write defect reports.
https://www.atlassian.com/software/jira
https://issues.apache.org/jira/browse/FLEX/?selectedTab=com.atlassian.jira.jira-projects-
plugin:summary-panel
https://jira.appcelerator.org/browse/TISTUD/?selectedTab=com.atlassian.jira.jira-projects-
plugin:summary-panel
An example with explanations can be found in Appendix A (the screen shot has been taken from Bugzilla
bug tracking tool).
Page 1 of 13
MTAT.03.159-Software Testing
2/13
2 INSTRUCTIONS
The system under test for this lab is an ATM simulation system. To use the ATM simulation system
simply download “ATM System – Lab 1 Version 1.0.jar” from course page, save it in a known location
and run that file from the saved location. The system should begin execution with the GUI as shown in
Appendix B.
There are two valid hard-coded card numbers and PINs:
Card Number: 1 PIN: 42 Available Accounts: Checking and Savings
Card Number: 2 PIN: 1234 Available Accounts: Checking and Money Market
Note: Both of these cards access the same checking account.
The initial balances are:
Checking: $100 Savings: $1000 Money Market: $5000
Perform a deposit
3. Turn the system on using the “On” button.
4. Enter the number of $20 bills that the system is assumed to start off with, noting that this is the
number of bills, not the total value of the bills. Entering a value of 10 for instance indicates that
the ATM is starting with $200 (10 twenty dollar bills). Any number greater than 0 will suffice for
now.
5. Click on the “Click to insert card” button which has now appeared on the main interface below
the simulated ATM display.
6. The screen now changes to a prompt for the user to input the card number (since there is no
actual physical card reader). Enter 1 for the card number and press Enter. Upon returning to the
main screen, the display is now requesting the PIN be entered.
7. Type 42 using the simulated keypad and press Enter. The display now prompts the user to
perform one of four transactions: withdraw, deposit, balance inquiry, or transfer.
8. Press 2 on the simulated keypad to perform a deposit. The display now prompts the user to
indicate which account they would like to deposit to: checking, savings, or the money market
account.
9. Press 2 on the simulated keypad to deposit to the savings account. The display now prompts the
user to enter the deposit amount.
10. Enter any positive amount and press Enter. A button which represents the user inserting the
deposit envelope now appears.
11. Click that button to simulate inserting the envelope. The display now prompts the user whether
they wish to perform another transaction or not.
12. Press 2 on the simulated keypad to indicate you do not wish to perform another transaction. The
main window shows a button appearing, simulating the ejecting of the user’s card.
13. Press the System Power Button once again to turn the ATM system off.
Page 2 of 13
MTAT.03.159-Software Testing
3/13
2.2 FAMILIARIZATION WITH JIRA
2.2.1 Logging in
Log in to JIRA account that has been created for you. If you didn't receive an e-mail about account
creation or not sure which e-mail address has been used, please ask the TA for the assistance. Follow the
link in your e-mail notification. You should now be logged in and viewing the JIRA main page.
Begin by clicking on the “Create issue” button on the navigation bar to begin reporting a new defect for a
specific project. Select the relevant “Group N project” and Issue Type “Bug” on the Create Issue dialog
box. A screen shot of the form is shown below:
Type a Summary for the issue and complete any appropriate fields — at least required ones which are
marked by an asterisk. If you want to access fields that are not shown on this dialog box, then click the
Configure Fields button at the top right of the screen. Click Custom and select the fields you want to
show or hide by selecting or clearing the relevant check boxes, respectively, or click All to show all fields.
Think of a defect that you have seen (or make one up) in your least favorite piece of software, and enter
details in the Summary and Description fields. When filling in the description, try to include high level
description of the defect, the steps to reproduce, the actual results (what happened), and the expected
results (what should have happened).
Click the “Create” button at the bottom of the page.
Choose Issues > Search for Issues. The issue navigator is displayed.
Page 3 of 13
MTAT.03.159-Software Testing
4/13
Select the “Group N project” project from the project list. A list of all defects logged for the product is
displayed. You can search against specific fields and/or search for specific text.
There is also a possibility to switch to Advanced searching mode.
Page 4 of 13
MTAT.03.159-Software Testing
5/13
and then “Fixed”). If the defect has actually been fixed in the ATM system version 1.1, change the
status to Verified by clicking “QA verifies solution”. If the defect has not actually been fixed in
the ATM system version 1.1, change the status to Reopened by clicking “QA not satisfied” and
write a comment stating “Defect still exists in version 1.1”.
20. When reporting these defects, ensure that version 1.1 is selected.
2.5 SUMMARY
Within your group, you should now each have a general understanding of how to effectively report and
track defects. You have also progressed through a short iteration of manual functional testing and an
iteration of regression testing.
Note: If you work in a pair, both students of each group should be present in the demo times.
2. Clarity and adherence to defect reporting guidelines: Is it obvious where to start 3 points
(what state to bring the program to) to replicate the defect? Is it obvious what you
would type? Is it obvious what files to use (if any)?
Important: we will not count points for the defects reported in JIRA if the lab report in pdf format is not
submitted through the course page.
Page 5 of 13
MTAT.03.159-Software Testing
6/13
Lab Report (3 POINTS)
3. Number of defects found. Outline defects and corresponding test cases (it’s enough 2 points
to put a reference to the JIRA bug report). Also mark whether defect has been fixed in
version 1.1 or not. We expect to see at least 10 issue reports.
4. General comments and conclusions on performing the lab. Did you find it a useful 1 point
practice? Was it easy to follow? Did you spend too little/too much time on it? Should
some parts be dropped or explained better? Is something missing? Etc. Please try to be
constructive.
5 ACKNOWLEDGEMENTS
The original version of this lab package was developed by Prof. Vahid Garousi at the University of
Calgary and is part of a large software testing laboratory courseware available under a Creative
Commons license for other testing educators.
We are also grateful for improvement suggestions proposed and introduced into these lab instructions by
Oliver Vilson of Celeg Hannas OÜ.
6 REFERENCES
[1] J. B. Cem Kaner, Bret Pettichord, "Chapter 4 - Bug Advocacy," in Lessons Learned in Software
Testing New York: John Wiley & Sons Inc., 2002.
[2] C. Kaner, "Assignment - Replicate and Edit Bugs," 2008.
Page 6 of 13
MTAT.03.159-Software Testing
7/13
APPENDIX A BUG REPORT EXAMPLE
Page 7 of 13
MTAT.03.159-Software Testing
8/13
7 APPENDIX B – USER INTERFACE FOR ATM SIMULATION SYSTEM
Page 8 of 13
MTAT.03.159-Software Testing
9/13
8 APPENDIX C – DEFECT LIFECYCLE FROM INITIAL REPORT TO CLOSED
Page 9 of 13
MTAT.03.159-Software Testing
10/13
9 APPENDIX D - FUNCTIONAL TEST SUITE
Test Case Use Case Function Being Initial System State Input Expected Output
# Tested
1 System System is started System is off Activate the System requests initial cash
Startup when the switch is "on" switch amount
turned "on"
3 System Connection to the System has just been Perform a System output should
Startup bank is established turned on legitimate demonstrate that a connection has
inquiry been established to the Bank
transaction
4 System System is shut down System is on and Activate the System is off
Shutdown when the switch is not servicing a "off" switch
turned "off" customer
7 Session System accepts System is asking for Enter a PIN System displays a menu of
customer's PIN entry of PIN transaction types
8 Session System allows System is displaying Perform a System asks whether customer
customer to perform menu of transaction transaction wants another transaction
a transaction types
9 Session System allows System is asking Answer yes System displays a menu of
multiple transactions whether customer transaction types
in one session wants another
transaction
10 Session Session ends when System is asking Answer no System ejects card and is ready to
customer chooses not whether customer start a new session
to do another wants another
transaction transaction
11 Transaction System handles an A readable card has Enter an The Invalid PIN Extension is
invalid PIN properly been entered incorrect PIN performed
and then
attempt a
transaction
Page 10 of 13
MTAT.03.159-Software Testing
11/13
Test Case Use Case Function Being Initial System State Input Expected Output
# Tested
14 Withdrawal System performs a System is displaying Choose an System dispenses this amount of
legitimate the menu of amount that cash;
withdrawal withdrawal the system System prints a correct receipt
transaction properly amounts currently has showing amount and correct
and which is updated balance;
not greater System records transaction
than the correctly in the log (showing both
account message to the bank and approval
balance back)
15 Withdrawal System verifies that it System has been Choose an System displays an appropriate
has sufficient cash on started up with less amount greater message and asks customer to
hand to fulfill the than the maximum than what the choose a different amount
request withdrawal amount system
in cash on hand; currently has
System is requesting
a withdrawal
amount
16 Withdrawal System verifies that System is requesting Choose an System displays an appropriate
customer's balance is a withdrawal amount that message and offers customer the
sufficient to fulfill the amount the system option of choosing to do another
request currently has transaction or not.
but which is
greater than
the account
balance
20 Deposit System asks Menu of account Choose System displays a request for the
customer to enter a types is being checking customer to type a dollar amount
dollar amount to displayed account
deposit
21 Deposit System asks System is displaying Enter a System requests that customer
customer to insert an a request for the legitimate insert an envelope
envelope customer to type a
Page 11 of 13
MTAT.03.159-Software Testing
12/13
Test Case Use Case Function Being Initial System State Input Expected Output
# Tested
23 Deposit A deposit transaction System is displaying Press "Cancel" System displays an appropriate
can be cancelled by menu of account key message and offers customer the
the customer any types option of choosing to do another
time prior to transaction or not.
inserting an envelope
24 Deposit A deposit transaction System is requesting Press "Cancel" System displays an appropriate
can be cancelled by customer to enter a key message and offers customer the
the customer any dollar amount option of choosing to do another
time prior to transaction or not.
inserting an envelope
25 Deposit A deposit transaction System is requesting Press "Cancel" System displays an appropriate
can be cancelled by customer to insert key message and offers customer the
the customer any an envelope option of choosing to do another
time prior to transaction or not.
inserting an envelope
28 Transfer System asks Menu of account Choose savings System displays a request for the
customer to enter a types to transfer to account customer to type a dollar amount
dollar amount to is being displayed
transfer
29 Transfer System performs a System is displaying Enter a System prints a correct receipt
legitimate transfer a request for the legitimate showing amount and correct
transaction properly customer to type a dollar amount updated balance;
dollar amount System records transaction
correctly in the log (showing both
message to the bank and approval
back)
Page 12 of 13
MTAT.03.159-Software Testing
13/13
Test Case Use Case Function Being Initial System State Input Expected Output
# Tested
dollar amount
33 Inquiry System asks Menu of transaction Choose Inquiry System displays a menu of
customer to choose types is being transaction account types
an account to inquire displayed
about
34 Inquiry System performs a System is displaying Choose System prints a correct receipt
legitimate inquiry menu of account checking showing correct balance;
transaction properly types account System records transaction
correctly in the log (showing both
message to the bank and approval
back)
Page 13 of 13