Test Plan


Introduction


The management and development staff at 10th Level Solutions have gone to great lengths to ensure that the quality of our software products, in particular the CSO Inventory System Project. It is with this in mind, that a system of testing standards have been put in place. These standards range from procedures for testing the individual modules of a program, up to the final acceptance testing. Thus, the objective of this system is to ensure that the quality of our product is as expected, and that the product functions as it was specified. Secondary goals, though no less important, are that the design and implementation of the product go as smoothly and as efficiently as possible. After all, this is necessary to remain under the proposed budget.

The members of the testing group are culled from the various other groups on our team. These members are: Gabriele, Lyndon, Dean, Edmond, Angus, Jason and Bill. For the testing of the system units, a series of walkthrough tests have been developed. Walkthrough testing has been scheduled, with responsibilities as follows:

  • March 8th, testing of interfaces for Personnel and Login. Bill, Cam, Lyndon and Angus
  • March 15th, testing of interfaces for the Inventory Window. Dean, Craig, Grace and Chad
  • March 22nd, testing of interfaces for Stocker and Sales. Edmond, Gabriele, Zach, Jason

    Reports by the affected team members will be required the following Wednesday after each testing session.

    Dates for testing of individual units for functional testing and integration testing are set for the Monday preceding the date of the Walkthrough testing. These testings will be done by the programming group, headed by programming representatives Angus and Dean. Responsibility for the above mentioned reports is split between the programmers involved, and the testing group members conducting the unit tests.

    Performance testing has been scheduled for the days March 23rd and 24th. These tests will involve the complete testing team running checks on system integrity and speed. Boundary conditions, usage and memory performance will be benchmarked according to the specifications of the customer. This series of tests will involve complete testing of the peripheral hardware that is specific to the project, such as scanners, bar-code readers, and the typical terminal set-up. Reports of the performance testing will be the responsibility of Bill, the leader of the testing group, and must be delivered to the project leader, Zach Scott, by March 26th.

    Acceptance testing will be conducted by testing leader Bill Swaney, on March 26th. This testing will be the final procedure in the test plan, and will be performed in conjunction with the customer and has as its goal the approval of the final product.

    An important consideration in any project, is a method for managing changes made to the project during the development stage. Any large scale project will have many programmers working on different sections, as well as common sections that may be modified by some or all. Our development takes place in the Visual Basic (VB) environment, and it was this consideration that led to our choice of SourceSafe as our project management software. It integrates seamlessly with the VB environment. The purpose of this software, is to manage different versions of the programs created. SourceSafe keeps track of all current modules, and maintains a database of all previous versions through a series of files containing changes made. This allows easy tracking of errors, where and when they occur, and have been fixed. In addition, it simplifies the job of integrating units, as new units are added, changes are again tracked.

    There is a comprehensive paper system in place for the tracking and fixing of bugs. This system is in the form of a report filled out by both the locator of an error, and the person who has responsibility for that section and thus responsibility for the fixing of the error. This report is shown in Figure 1.

    PROBLEM / CHANGE MANAGEMENT FORM FOR: CSO INVENTORY SYSTEM PROJECT
    
    
    Requested by:_________________________________  Date:______________________
    
    
    Problem Fix ___		Enhancement ___		Priority: H ___ M ___ L ___
    
    
    Date Required:______________  Release required for: _______________________
    
    
    Description of change: ____________________________________________________
    
    
    Describe the change and the benefits of the change: _______________________
    
    
    ___________________________________________________________________________
    
    
    ___________________________________________________________________________
    
    
    ___________________________________________________________________________
    
    
    ___________________________________________________________________________
    
    
    ___________________________________________________________________________
    
    
    What is the expected effect on the existing system: _______________________
    
    
    ___________________________________________________________________________
    
    
    ___________________________________________________________________________
    
    
    What is the expected cost (man-days): _______________
    
    
    	Request dropped ___	Deferred until: ___________________________
    
    
    	Request carried ___	Approved by: ______________________________
    
    
    ___________________________________________________________________________
    
    
    Date completed: ____________________  Programmer: _________________________
    
    
    Tested by:_______________________  Test scripts/files: ____________________
    
    
    Actual Man-days: _______________  Where documented: _______________________
    
    
    Date implemented: ________________________  Version: ______________________
    
    
    * Attach screens, reports, disk, etc. as required.
    

    FIGURE 1.

    These systems and plans are meaningless if they are not followed according to schedule and criteria. 10th Level Solutions, and project leader Zach Scott, are committed to following them, thus ensuring the continued quality of our products.

    Unit Testing


    The unit testing of the CSO Inventory System Project is to be carried out in three stages. Each stage will concern itself with specific elements of the project. Tests will be conducted by performing a walkthrough of the unit being tested. Typical tasks that the user can be expected to perform will be tried, in various conditions. Reports of these tests will be written following them, and these will be given to project leader, Zach Scott.

    The following are the stages that unit testing will proceed with, along with descriptions of the expected tasks.

    	
    1.  March 8th, Testing of Interfaces for Personnel and Login Windows.
    
    		Testing of the Personnel Window will be conducted with the
    	user having a security level consistent with that of a Head Manager.
    
    	A.  Create instances of new employees, with all correct information
    		for each of the three employee types.
    
    	B.  Create instances of new employees, with missing information for
    		each of the three employee types.  Proceed with correct error
    		handling routines, ie. fill in missing fields when requested.
    
    	C.  Create instances of new employees, with all the information, but
    		include fields that are in error.  Use these instances to
    		test editing capabilities.
    
    	D.  Using existing employee records, make modifications to security
    		levels of these employees.
    
    	E.  Change the password of existing employees.
    
    	F.  Delete instances of employees from the database.
    
    
    		Testing of the Login Window will be done as follows.  After
    	each step above, the following three tests will be run for each employee
    	record affected in the changes:
    
    	G.  Login the affected employee using their correct password.
    
    	H.  Logout the affected employee, assuming that the circumstances
    		are such that they existed to begin with.
    
    	I.  Login the affected employee using an incorrect password.
    
    
    
    2.  March 15th, Testing of Interfaces for the Inventory Window.
    
    		Testing of the Stock Window will be performed in various
    	security levels.  Note that all of the following functions should
    	be performed in each security level, regardless of the applicability
    	of the task to the end user:
    
    	A.  Add instances to the Inventory list using correct fields.  This
    		will be done on multiple departments.
    
    	B.  Add instances to the Inventory list using incorrect fields.  Again
    		this will be done on multiple departments.
    
    	C.  Edit the instances of inventory items that are incorrect using the
    		appropriate edit box.
    
    	D.  Order items found in the inventory list.  Order items that were		
    		created in previous steps.  Order items not found in the
    		database.
    
    	E.  Remove items added to the order list.
    
    	F.  Authorize the order that was made.
    
    	G.  Delete items from the database, including items added in the
    		previous steps.  
    
    	H.  Exit the screen.
    
    
    3.  March 22nd, Testing of Interfaces for the Stockers and Sales.
    
    		Testing of the Stockers window will be performed first
    	using a security level equivalent to that of a stocker. As well,
    	these procedures will also be performed with a security level 
    	equal to that of a Head Manager:
    
    	A.  Select an order number.  This is assumed to have been created
    		ahead of time.  This is done both manually and from the
    		list box.
    
    	B.  Scroll through the ordered items list, checking accuracy with
    		the order form.  
    
    	C.  Freeze the terminal.
    
    	D.  Unfreeze the terminal.
    
    	E.  Confirm the Order.
    
    	F.  Exit the screen.
    
    
    		Testing of the Sales window will be done three times, each
    	time with a different security level.  These are:  Sales only, Sales
    	and returns, and Head Managers level.  
    
    	G.  Add items to the sales window using correct data.  This will
    	 	be done using item name, item code, by using the bar-code
    		reader.
    
    	H.  Add items to the sales window using incorrect data.  Again,
    		this will be done with all three input methods.
    
    	I.  Delete items that have been added to the bill.
    
    	J.  Print out a copy of the bill.
    
    	K.  Freeze the terminal.  Unfreeze the terminal.
    
    	L.  Refund an item using a previous bill number.  Input 
    		refunded items using all three input methods.
    
    	M.  Exit the screen.
    

    Integration Testing

    The programming team along with the documentation team decided on the following order for integrating each module. After each section has been successfully integrated testing will include regression testing, ie. all previously successfully run tests will be run again, and integration testing of the newly integrated module. The reasoning behind the order of modules being assembled into the system is explained after each integration subsection.

    1) Testing of all personnel functions as given by the Personnel window:
    
    		a) For the Head Manager Authorization Level:
    
     1   Add a Department:  Press "Add" Button and enter "Pharmacy" in Department
    			window on upper left corner.
    			"Pharmacy" should appear in Department window in
    			upper right corner
    
     2   Delete Department:	Highlight "Produce" in Department window and press
    			"Delete" Button.
    			"Produce" should disappear from Department window after
    			confirmation of deletion is given
    
     3   Add new Employee:	Press "Add" Button and enter in Last Name 
    			Box: "Swaney", enter in First Name Box: "Bill",
    			enter in ID Number box: "469047909", enter in
    			Password Box: "123456", enter in Login Box: "swaney"
    			New employee information should appear in Personnel
    			window.
    			Error: incorrect ID Number length, Password length,
    			      Login length
    
     4   Delete Employee:	Find Employee in Personnel window and highlight. Press
    			"Delete" Button. 
    			After confirmation all record for employee should
    			disappear from Personnel window.
    			
    
     5   Change Security:	Click on Cashier/Stocker in Major window, click on
    			Sales in Minor window. 
    			>>Can't be further tested until functions for
    			  editing Stock have been included<<
    
    
     6   View an Employee:  Scroll through Personnel window until desired Employee
    			found, highlight employee.
    			All pertinent information about employee will be 
    			displayed in fields on left side.
    			Personnel from all departments should be visible
    
    
    		b) For the Department Manager Authorization Level:
    
     1   Add a Department:  "Add" Button will be grayed out, thus not allowing
    			the Department Manager to perform this function
    
    
     2   Delete Department:	"Delete" Button will be grayed out, thus not allowing
    			the Department Manager to perform this function
    
    
     3   Add new Employee:	Press "Add" Button and enter in Last Name 
    			Box: "Swaney", enter in First Name Box: "Bill",
    			enter in ID Number box: "469047909", enter in
    			Password Box: "123456", enter in Login Box: "swaney"
    			New employee information should appear in Personnel
    			window.
    			Error: incorrect ID Number length, Password length,
    			      Login length
    
     4   Delete Employee:	Find Employee in Personnel window and highlight. Press
    			"Delete" Button. 
    			After confirmation all record for employee should
    			disappear from Personnel window.
    
    
     5   Change Security:   The Security window will be grayed out, not allowing
    			the Department Manager to make any changes
    
    
     6   View an Employee:  Scroll through Personnel window until desired Employee
    			found, highlight employee.
    			All pertinent information about employee will be 
    			displayed in fields on left side.
    			Personnel from other departments cannot be viewed.
    
    
    Nobody can log onto the system unless the system can check the login data
    against the information in the Employee database. Therefore there is no choice
    but to integrate the personnel functions into the system first.
    
    
    
    2) Testing of the Login window:
    
     
     1   Click on "Login" Button in Main Menu. The Login window should appear
    	 in the center of the screen. Enter "swaney" in the "Login" field, and
    	 "123456" in the "Password" field.
    	 The "Password" field should only display x's, while the "Login" field
    	 will display the actual Login name.
    	 Press "OK" Button. The system should now blacken out the grey buttons
    	 to which "swaney" has access to.
    
     2   Click on "Login" Button in Main Menu. The Login window should appear
    	 in the center of the screen. Enter "swaney" in the "Login" field, and
    	 "122345" in the "Password" field.
    	 The "Password" field should only display x's, while the "Login" field
    	 will display the actual Login name.
    	 Press "OK" Button. The system should display an error message for
    	 incorrect Login attempt, and allow another login try.
    
    
    
    Now that a Database for Employees exists, one major security function, that
    of login onto the system should be tested, because we need to make sure that
    the system is secure enough before manipulation of product information is
    integrated.
    
    
    3) Testing of all functions involved with the Product window:
    
    
    		a) For the Head Manager Authorization Level:
    
    
     1   Add Product:
    		Select Department with the Scroll Option in upper left 
    		corner. Fill all fields in lower left hand corner with 
    		appropriate data fields and press "Add Inventory" Button.
    		New Item should appear in Inventory List window.
    		Errors should be tested by entering incorrect information
    		in data fields. Error Message should appear.
    
     2  Delete Product: 
    		Select Department with the Scroll Option in upper left
    		corner. Select Product in Inventory List window and
    		highlight. Press "Delete Inventory Item" Button.
    		After confirmation all product data fields in Inventory
    		List window should disappear.
    
    At this point in time the Warehouse database and functions need to be 
    integrated as orders can only be created once the Order database exists.
    Then testing for product functions can continue.
    
     3   Edit an Order:	
    		Select an order number from the Order Number window in the
    		upper right hand corner. Order should appear in window
    		below. Highlight an item in Items on Order window and
    		press "Remove from Order" Button.
    		Item should be removed from order.
    	
     4   Authorize an Order:
    		Select an order number from Order Number window in the 
    		upper right hand corner. View order in window below and
    		press "Authorize Order" Button. Press "Done" Button to
    		save and close window.
    
    
    		 b) For the Department Manager Authorization Level:
    
    
     1   Add Product:	
    		Select Department with the Scroll Option in upper left 
    		corner. Fill all fields in lower left hand corner with 
    		appropriate data fields and press "Add Inventory" Button.
    		New Item should appear in Inventory List window.
    		Errors should be tested by entering incorrect information
    		in data fields. Error Message should appear.
    
     2  Delete Product: 	
    		Select Department with the Scroll Option in upper left
    		corner. Select Product in Inventory List window and
    		highlight. Press "Delete Inventory Item" Button.
    		After confirmation all product data fields in Inventory
    		List window should disappear.
    
     3  Add Item to Order:
    		Select Product from Inventory List by highlighting item.
    		Only products from Manager's Department should be visible.
    		Press "Add" Button in center of window.
    		Item should appear in order window.
    
     4  Remove Item from Order:
    		Select Item from Items on Order window after order was
    		selected via the Order Number window. Highlight item
    		in order and press "Remove from Order" Button.
    		After confirmation the item should disappear from order.
    
    
    Nothing can be done without the inventory database and the accompanying
    functions, ie. a sales person cannot sell an item, a stocker cannot update
    an item. Therefore, this module must be integrated as soon as security has
    been established.
    
    
    3) Testing of all functions involved with the Warehouse:
    
    As mentioned before, this module is actually integrated while the Inventory
    module is integrated as both modules are dependent on each other.
    
    
     
     1   Print Lading Form:	When this button is pressed a Lading Form should appear
    			on the screen. This form should contain all items from
    			all orders that need still processing and will be 
    			delivered on that day.
    
     2   Print Invoice:	When this button is pressed all delivered orders should
    			be searched for in the order database, and a invoice
    			containing all delivered items plus the total to be
    			paid should appear in the window.
    
    
    
    4) Testing of all functions involved with the Sales window:
    
    
    
     1  Enter an Item Code in Item Code field on left hand side. If correct item
    	code then all remaining information about item should be now visible in
    	remaining fields, except Quantity. 
    	Enter Quantity for selected item. Press on "Sale" Button. Item should now
    	appear in sale window on right hand side. The "Total" and "Total+Tax"
    	should also be updated.
    	If incorrect Item Code then error message should appear.
    
     2  Enter an Bar Code in Bar Code field on left hand side. If correct item
    	code then all remaining information about item should be now visible in
    	remaining fields, except Quantity. 
    	Enter Quantity for selected item. Press on "Sale" Button. Item should now
    	appear in sale window on right hand side. The "Total" and "Total+Tax"
    	should also be updated.
    	If incorrect Bar Code then error message should appear.
    
     3  Enter an Item Code in Item Code field on left hand side. If correct item
    	code then all remaining information about item should be now visible in
    	remaining fields, except Quantity. 
    	Enter Quantity for selected item. Press on "Refund" Button. Item should now
    	disappear from sale window on right hand side. The "Total" and "Total+Tax"
    	should also be updated.
    	If incorrect Item Code then error message should appear.
    
     4  Enter an Bar Code in Bar Code field on left hand side. If correct item
    	code then all remaining information about item should be now visible in
    	remaining fields, except Quantity. 
    	Enter Quantity for selected item. Press on "Refund" Button. Item should now
    	disappear from sale window on right hand side. The "Total" and "Total+Tax"
    	should also be updated.
    	If incorrect Item Code then error message should appear.
    
     5  Press "Print" Button. Receipt for customer should be printed.
    
     6  Press "Done" Button. Window should disappear and Main Menu should appear.
    
    
    The sales module has to be one of the last integrations, along with the
    stockers module, as it depends on the employee module for access of the system
    by cashiers via checking the employee database for authorization. 
    Furthermore, sales and stockers modules need items in the product database so
    that sales and stockers functions can be performed.
    
    5) Testing of all functions involved with Stockers window:
    
    
     1  Select an Order. Scroll down the Order Number window until desired order
    	has been found, or enter order number in Order Number field manually.
    	Order should appear in Ordered Items window.
    
     2  Enter amount ordered into Amount Ordered field.
    
     3  Enter amount received into Amount Received field.
    
     4  Press "Confirmed Order"  The appropriate field in the Order should be 
    	changed.
    
     5  Press "Done" Button. Window should close and Main Menu should appear.
    

    As stated for the sales module, the stockers module should be done last. The stockers module does depend on the existence of the employee, the product and the order database, as well as the ability to change them. Therefore it is vital that everything else works before the stockers module is implemented.

    The main function of integration testing is to confirm that each module works well alongside the other. The given tests for this section as well as testing the completed system in a random order after successful integration of all modules should confirm that indeed the modules work well together.

    Functional Testing


    Functional testing is done to check whether the system actually performs according to the customer specifications, that it fulfills the requirements. The customer team specifies that the system maintains an employee database, +a product database, and an audit database. The supermarket employees should be able to sell items, order items, and maintain the stock, while the warehouse should be able to deliver according to orders from the order database, produce a lading form and an invoice. Very important to the customer is security and its adaptability to changes in the employee section. The scenario under subheading Test Cases should check for these requirements.
    
    1)  Add a new customer and assign authorization level to employee according
    	to employee position. Check whether employee is limited to his/her
    	security clearance, or if employee can enter  into sections of system 
    	he/she is not allowed in. Check this for different types of employees.
    
    2)  Produce an order and send to Warehouse. Check to see if Warehouse can
    	adequately produce a lading form and an invoice for this order.
    
    3)  Edit product database according to lading form produced by Warehouse.
    	Check if product database is properly updated.
    
    4)  Sell several items to one customer. Check if items are properly added
    	to the sale list. Check if receipt is properly printed and total price
    	is correct.
    
    5)  Change security level of an existing employee and re-check that this
    	employee can only enter newly selected areas of security.
    
    6)  Check that a Department Manager can only change employee information and
    	product information within his/her department.
    
    7)  Check that Head Manager  can access all levels of the system, except the
    	audit database.
    

    The test cases can be extended into more detailed sections. However, as integration testing has already checked for most of the requirements that the system needs to perform, functional testing can be limited to the most important requirements that need verification.

    Performance Testing


    Cashiers Window

    • Test the database structure, stability and speed while running heavy throughput on the POS interface. Test how the system deals with erroneous input at heavy thoughput levels.
    • Needed: A partial product database, all available terminals and workstations on a local area network, a data file for each available workstation and terminal that contains a series of Bar Codes, Item Codes and quantities. The size of each file will be of 1000 records.

      		 eg)
      			BAR CODE:	023450041
      			QUANTITY:	2
      
      			ITEM CODE:	123
      			QUANTITY:	12
      
      A parsing function to parse the data file and run the data into the POS function of selling items(bypassing the interface buttons).
    • Test one: Concurrently run the parsing function on a data file at each of all the workstations and terminals. Repeat this test with data files of size 50 and 2000. Then run once with a mixture of data file sizes.
    • Test two: As test one, but supply data files with erroneous Bar Codes and Item Codes.

    Stocker Window

    • Test the structure and stability of the order and product databases as large order records are processed by the system.
    • Needed: A partial Order database of at least 10 records and matching lading forms. All Order records are to hold 5000 different products. Two terminals or workstations.
    • Test: Concurrently run both terminals, entering 5 invoice numbers each in sequence.

    Personnel Window

    • Test the structure and stability of the employee database as large numbers of employees are rapidly added and deleted.
    • Needed: A parsing function to parse records from datafiles and pass the data into either the add employee or delete employee functions while bypassing the interface buttons. A datafile that holds records for adding 1000 mock employees and then deleting those same 1000 employees. Another with records that adds employees in bursts of 3-6, deletes in bursts of 2-4 and halfway switches to adding in bursts of 2-4 and deletes in bursts of 3-6. This datafile should not try to delete any mock employee record before it is added and must be designed to leave zero mock employee records in the database. A workstation or terminal.
    • Test: Run the two test files at different times with the parsing function.

    Inventory Process:

    • Test the stucture of the product database.
    • Needed: A parsing function as described in the Personnel Window test, and datafiles as described in the Personnel Window test utilizing records of mock products.
    • Test: Run the two test files at different times with the parsing function. Note, the parsing function is not required to run rapidly.

    Order Process:

    • Test the structure and stability of the order database by adding a large number of order records, flagging a large number as sent to the warehouse, and flagging a large number as physically received. These three tasks will be intermingled.
    • Needed: Three parsing functions as described in earlier tests that holds order records. Three terminals, or work stations. One hundred sets of three datafiles holding order records. In each set, one will be input to generate orders in the Stock window, one will be input to the warehouse function to flag orders as being processed, and one will be input to the Stockers Window to flag orders as physically received. The twenty sets shall terminate expecting that all orders will be flagged as being physically received. Each set is not required to end in this state before continuing on with the next set.
    • Test: At each workstation, the appropriate data file as a member of a set will be run, sequencing through the order generation, flagged as being processed, and flagged as physically received.

    Login Process:

    • Test the stability of the Login Process.
    • Needed: All available terminals and workstations. A employee database with sets of mock employee records. Each set must be large enough to allow a different user at each workstation or terminal. There will be one set for every variation of interface access. In addition one set will be a mixture, trying to cover all interface access types.
    • Test: For each set of employee records, all workstations request the login window at the same time. Followed by the entry of login id's and passwords. Then the login data is submitted at the same time. System should initiate all interfaces correctly.

    Acceptance Testing


    State of the System

    • One default employee record as Head Manager with default login data.
    • A 'mock' department.
    • A partial product database of ten records of 10th level solutions products. These products will belong to the 'mock' department. The minimum on all these will be set to 2.
    • An empty order database.
    • Default interface settings in the interface database.
    • Demo mode, system will have hidden keystroke to force order generation, warehouse processing, and demo screen.

    The New System

    • Login to the system using the default username and password.
    • Assign Customer Groups leader as new Head Manager user with a new password.
    • Create two departments of any name.

    Employees

    • Create a new user as a department manager.
    • Assign him to one of the new departments.
    • Give him maximum authorization in that department.

    • Create another new user as a department manager.
    • Assign him to the other new department.
    • Give him the second level of authorization (no manipulation of personnel files)

    • Create a new user in the cashier position in the 2nd managers department.
    • Limit that user to sales only.(cannot give a refund)

    • Freeze the terminal.(allows unfreeze with same user password or another (valid user login)

    • Login as the 2nd Manager.
    • Display that this manager is unable to manipulate the personnel files.
    • Freeze the terminal.

    • Login as the 1st Manager.
    • Create a new user as a stocker.
    • Give the stocker maximum authorization.
    • Display that this manager may not manipulate personnel files of the 2nd Manager's department.
    • Freeze the terminal.
    • Login as the Head Manager.
    • Create a new user as a cashier in the 2nd Managers department.
    • Give that user maximum authorization.

    Products

    • Assign all the 'mock' products to the 2nd department.
    • Add a new product to the 2nd department.
    • Delete one of the original products.
    • Modify some fields of an original product including price but not the quantities: minimum, maximum or current.
    • Freeze terminal.

    Sales

    • Login as the 1st cashier.
    • Sell one of the new products entered, and two of the modified products.
    • Display that this cashier may not refund the new product that she just sold.
    • Freeze terminal.
    • Login as the 2nd cashier.
    • Refund the new product just sold by the 1st cashier.
    • Try and sell one more of the modified products (sold by the 1st as well). (note that this will not go through as there are none of that product left in stock)
    • Freeze the terminal.

    Orders

    • Keystroke automatic order generation

    • Login as 2nd Manager.
    • Manually order 20 more of the new product.
    • Freeze the terminal.

    • Login as Head Manager.
    • Look at and authorize the new order.(Notice that a case of the modified product has been ordered)
    • Authorize the order.
    • reeze the terminal.

    • Keystroke warehouse processing

    • Login as the stocker.
    • Enter the order as fully received.
    • Reduce the amount of the new product by 20 to simulate a shortage.
    • Freeze the terminal

    Modification

    • Login as Head Manager
    • Give the 2nd Manager full authorization.
    • Freeze the terminal.

    • Login as 2nd Manager.
    • Give the 1st Cashier full authorization.(notice the 2nd Manager can now do that)
    • Freeze the terminal.

    • Login as the 1st Cashier.
    • Sell two of an original product and 2 of the modified product. (notice that the modified product as now recognized as stocked)
    • Refund one of the original products just sold. (notice the 1st cashier can now do that)
    • Freeze the terminal.

    Security

    • Attempt a number of invalid logins.

    • Login as Head Manager
    • Logout of the system

    Go to the Future Enhancements.