software testing test methodologies
Best Sell Test Requirements discussions with Stakeholders: (Questions & Answers) :
Multiple / New SubSystems to Test
1. New Web Based Java Data Entry Subsystem :
New Web based Java application to capture each Stores Sales Data. Need to create test cases for :
1) Login to the system using a Unique User ID & password for each employee. These users are the ones that can enter the sales data at the end of the day. Please assume these User IDs were already setup correctly.
2) Data entry fields/screens to :
a) Add a New Salesperson (Any salesperson - full time and part time employees)
b) Delete a saleperson
c) Change a salesperson FirstName, LastName, Department, Store/Branch #, or Commission Rate
d) Specify a salespersons Sales $ and/or Return $'s for the day.
· A Tester (or good Business Analyst) must be able to mock up / visualize all the screens & how they might function to help them create test cases – see FOL for a mockup of ONE of the screens ... and a sample of the report output... I strongly encourage YOU to create all the screen mock-ups (just a simple drawing / picture can often help!)
2. On each file from the Best Sell stores, the Mainframe Sub-System needs to accept the individual salesperson Records, process the updates to each salesperson by processing the Month of individual salesperson transactions, and calculate the department, branch, and company totals, based on the requirements below.
3. On each database table / file from the Best Sell stores, the Java/Python Data Analytics Sub-System needs to accept the individual salesperson Records, capture the updates to each salesperson and allow users to analyse trends, and use the data to create useful information that can help to predict the future based on past data.
Since the Data always starts with a User entering data values in the Data entry subsystems, most of the requirements discussion starts with that perspective … but remember to ask Questions about the specific functions of the other subsystems too…
Database Files from the OLD Best Sell Store System and/or from New Java subsystem contain specific:
Q: Sales Data
Q : Product information ? Great question but No product info
Q : Overall Sales $ ??
A: I want to see Sales YearToDate totals info for each Salesperson,
Plus totals for Departments and Stores/Branches and the Whole Best Sell Company !
Q: How many salespeople in each store/Branch ?
A: Not sure if there is a maximum, but the salesperson # is 5 digits (positive and Non-Zero)... and I
believe these are unique in the whole Best Sell company !! First and Last Name?? - Yes Please!
Q: What are the sizes of the Salesperson name field?
A: The FirstName field is 10 Characters
The LastName field is 15 characters
What other Sales data values do we need to include in the report ???
$ amount ???...
Q: For that Days Sales $ amounts. How many products and price for each Product?
A: NO ... just the Sales $ amounts ...
Q: Are there any minimum or maximum amounts ??
A: Great question :
Gross Sales $ maximum $ 99,999.99
Return $ maximum $ 9,999.99
Note: The report program that runs daily/monthly will calculate in the BEST Sell report, these values :
- Gross_sales_Year_to_Date
- Net_Sales_Year_to_date (Net sales = Gross_Sales_YTD - Returns_YTD)..
Q: Need totals based on the : Departments and the BestSell Store/Branch # AND the whole company – what does that data look like?
A: YES will need to know each salespersons Department # and Store/Branch #
Department # is 2 digits numeric (positive and non-zero)
Store/Branch # is 3 digits numeric (positive and non-zero).
Q: Do we need to calculate sales totals on the sales report for historically Google products (Self driving cars) vs historically Best Buy products ??
A: A great question ... no not at this point !
Q: How do you expect Best Sell to use this information ?
A: Analysis as discussed, and to Create incentives for salespeople ... Commission % of NET Sales, where the exact commission percentage is based on Store/branch & department ... use a 2 digit integer for commission percentage ?? But this forces a Minimum of 1% ... (which limits business flexibility...) so instead lets use a smaller percentage ... lets use 0.0001 to 0.9999 as a commission %.
Q: Should there be a maximum Commission % ???
A: Great question - YES this is a good idea to prevent invalid data since the business folks believe the commission rate % would likely not be higher than
say 9.99% ... OR else the Best Sell business would not be successful ... to say this another
way ... if we allowed a commission rate % of 10 or 15%, or 98 or 99% by accident, this would not currently be allowed (unless we start selling Rocket Ships in future... in which case we might want to change to allow us to store a %’age of say max 20% ) since it would lead to the company paying out significantly too much $$ in commission to their salespeople.
SO the Commission calculation will be :
Gross_Sales_Year_to_Date - Returns_Year_to_Date = Net_Sales_Year_to_Date
Commission_Amount = Net_Sales_Year_to_Date * Commission%
So for example if an individual Salesperson (Say sales person # 60510 ) has
Gross_Sales Today of $ 50,000
Returns Today of $ 10,000
AND up to Yesterday they also had Gross_Sales_Year_To_Date = $ 520,000
AND up to Yesterday they also had Returns_Year_To_Date = $ 20,000
Then after today their
Gross_Sales_Year_To_Date = $570,000 (50K + 520K )
Returns_Year_To_Date = $ 30,000 (10K + 20K )
... Therefore
... Net_Sales_Year_To_Date $540,000
AND if their Commission % is 0.0010 ... so 1 tenth of 1 percent of Net Sales
Their Commission Paid $ will be $540,000 * 0.0010 = $ 540.00
Q: Do we need to validate/test the dates of these transactions?
A: A great question ... please ask questions & listen carefully for these types of discussions in class, and then apply your understanding to this specific project!
Q: Do we need to test Login to mainframe ??
A: A great question ... If this was to be done manually ... Yes , but No, Assume the Mainframe process in production would be an automated job scheduled to run at 1:00am (after all the users have finished entering their specific salesperson data) - so there does not need to be an actual user logging into the Mainframe/Cobol sub-system). This subsystem will:
Retrieve all the Stores files at approx 1:00am (EST), process transactions
Create the BEST SELL sales report...
Q: Include Indication of Stores without Sales Data for that day ???
A: NO we don't need this function, but great Q... maybe in future...
Q: Integrate Old Best Sell and New Best Sell Data Entry "environments"???
A: No not directly ... those 2 subsystems just
need to create the same Sales file formatted Data on a daily basis ...
Q: How can we test to make sure the Old Best Sell Data and the New Best Sell
generated data will be processed correctly/similarly by the subsequent
Mainframe Reporting subsystem?
A: A great question ... since the Mainframe reporting subsystem doesn’t
receive any data to allow it to identify/differentiate between the
2 different source subsystems, you should be able to make some
assumptions about the allowed data values and data formats to help
you to test this.
Q: Should we test the creation and updating of the Data Warehouse subsystem, including reading extracts of the Database data for company Business Analysts/Store managers to analyse, create trending graphs/etc. that more clearly and comprehensively show performance & allow us to use artificial intelligence to predict the future??
A: A great question, YES this is a part of this overall Project, but please assume that someone else is testing this subsystem.
Great Questions ...:
So based on the detailed design work completed for this project, here is an example of what a file of multiple store (and multiple departments) Sales "transactions" should look like :
Note there are a number of data fields & the column that data is in :
1-5 Transaction #: Used for audit trail purposes
6 Transaction type : corresponds with the type of transaction
S for Sale
R for Return
A for Add Salesperson
D for Delete Salesperson
C for Change Salesperson
07-11 Transaction Salesperson #: 5 digit Salesperson# for this transaction
12-17 Transaction Date Column 12-17 : Date of the specific "transaction"
18-end of record : Column 18 thru to the end of each record, is specific Transaction type data ... ie. for sales transactions Sales amount data, for returns the Return amount, for Adds the Lastname, FirstName, etc.
Tran TSalesDate
#####T#####YYMMDD9999999
00001S19304201001062187020100
00002S92493201001065327502510
00003S10559201003074436403010
00004D16825201003
00005R226432010030926542
00006S86948201004001763103020
00007S26913201004019872002020
00008S84932201005028981902020
00009S27206201005037090802515
00010R134582010050562187
00011S19294201005045127602515
00012S17402201005054236503010
00013D44931201005
00014S16825201006072454303010
00015A19644201006Martin Jordan 300200100
00016S26813201006099672103010
00017R267022010070187810
00018S26881201007027890902515
00019S54931201007036909805525
00020S26881201007045018702025
00021S94927201008054127603020
00022S84931201012056218704020
00023S44931201012063336505020
00024R949272010120724454
00025A46827201012Newman Sid 200300300
00026S44931201016098663204530
00027S44931201018017772105530
00028S19294201018026881002533
00029S17402201018056218703010
00030S26702201018035979904030
00031C10559201018McGannon Margaret 300300400
00032C17402201018Obradovic Rita 200300200
00033R195382010260633454
00034S10507201026083545302020
00035S96948201028081554303020
AND the first few records on the Master file of Salesperson data looks like this :
26002Hau Jayne 7089627001329100100239
01061Ade Julie 7087223211871300100338
26069Lee Christine 7088057011877200100304
06098Roe Brian 6305632021151300100311
26123Lee Genoa 7083859021640200100200
02153Yourlast Yourfirst 6322223424432100100333
02158Flynn Ashley 7737453012738100100333
Where:
01-05 is the Salesperson ID#
06-21 is Salesperson LastName
22-31 is Salesperson FirstName
32-38 is the Salesperson YearToDate Gross Sales
39-44 is the Salesperson YearToDate Returns amount
45-47 is the Salesperson Store/Branch #
48-49 is the Salesperson Department #
50-53 is the Salesperson Commission Rate
Based on these requirements, please create a File layout, & start to prepare the Testdata files you will need for testing based on the test cases you are creating....