software testing test methodologies

profileolamide
BestSellrequirementsattestplanv612.docx

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....