58
1 1. System Introduction Walmart is a very successful and internationally renowned chain of supermarkets providing a shopping experience to their customers like none other. They have identified that that primary target of customer segment is day-to-day consumers interested in a personalized service for an affordable price. Walmart's key strength comes from their ability to pay attention to the benefit of the society, from which they earn their wealths, while generating revenue. 1.1 Walmart Corporate Office Walmart. 702 SW 8 th Street, Bentonville, Arkansas. 72716-8611 1.2 Walmart Corporate Purpose “If we work together, we'll lower the cost of living for everyone... we'll give the world an opportunity to see what it's like to save and have a better life.” (Walmart Stores, Unknown) 1.3 Walmart General Corporate Drive Community – Walmart is funding more than 350 local nonprofit organizations that will help expand nutrition, learning and employment services for elementary, middle and high school students through out the 2011. Opportunity – Walmart is playing a major role side by side with Sam's Club University of Wales Institute, Cardiff. (BCO308)

Main Report

Embed Size (px)

Citation preview

1

1. System Introduction

Walmart is a very successful and internationally renowned chain of supermarkets

providing a shopping experience to their customers like none other. They have

identified that that primary target of customer segment is day-to-day consumers

interested in a personalized service for an affordable price. Walmart's key strength

comes from their ability to pay attention to the benefit of the society, from which they

earn their wealths, while generating revenue.

1.1 Walmart Corporate Office

Walmart.

702 SW 8th Street,

Bentonville, Arkansas.

72716-8611

1.2 Walmart Corporate Purpose

“If we work together, we'll lower the cost of living for everyone... we'll give the world

an opportunity to see what it's like to save and have a better life.” (Walmart Stores,

Unknown)

1.3 Walmart General Corporate Drive

• Community – Walmart is funding more than 350 local nonprofit organizations

that will help expand nutrition, learning and employment services for

elementary, middle and high school students through out the 2011.

• Opportunity – Walmart is playing a major role side by side with Sam's Club

University of Wales Institute, Cardiff. (BCO308)

2

Military Family Promise to deliver support services to families with members

who served their country with honor as part of a project initiated by the First

Lady of the United States of America, Michelle Obama and Dr. Jill Biden.

• Sustainability – Walmart has taken initiative to reduce the number of miles

driven by taking trucks off the roads as much as possible, and keeping track of

efficiency in delivery process while paying attention to alternate methods.

• Health and Wellness – Walmart strongly believes that everyone should have

access to fresh fruits and vegetables at an affordable price. Walmart has even

taken an initiative by committing to opening between 275 – 300 stores in

specifically selected food deserts.

Apart from these specific lines of corporate drive, Walmart is also taking a keen

interest in their customers as a driving force. Walmart understands that a happy

customer is a profit. But a delighted and retained customer is pure wealth. This

ideology is like the soul of Walmart that has become the bloodline for its integrated

marketing strategies.

1.4 Proposition for a New Computerized Sales Management System

It has been proposed that Walmart should take interest in computerizing their sales

process in supermarkets in order to provide a better service to their customers. It is

my understanding that Walmart is already utilizing sophisticated Point of Sales (PoS)

systems in their supermarket outlets. Further more they have their very own online

web based e-store for the customers who prefer to make their purchases online than in

person. But for the purpose of completing this assignment, we stand in a point of time

line where Walmart is still using manual filing based sales management system

without using any computers. This assumption leads us to understanding following

key objectives Walmart would have been trying to achieve by implementing a

computerized sales management system.

University of Wales Institute, Cardiff. (BCO308)

3

• Provide a better service to the customers - As it had been pointed out before,

the majority of the customers of Walmart are day-to-day consumers who are

interested in personalize, speedy and low cost services for their wants and

needs. By computerizing the sales management process, the sales assistants

can provide a faster service to the customers, not having to keep them waiting

in lines for hours on end so that the sales person can check out the price index

and add up the bill for one customer whith a number of small items.

• Increase customer delight and reduce customer frustration – A better service

with minimum service period possible not only makes the customer delighted,

it also reduces customer frustration. In a busy world, it is not justifiable to

keep customers idling in a shopping mall because of a new sales assistant who

cannot seem to remember the price index even vaguely. A computerized

system would eliminate this problem and reduce customer frustration.

• Improve sales tracking abilities – though a manual system can be helpful in

keeping all the sales transactions recorded, tracking them in order to identify

patterns of destructive and constructive nature would be close to almost

impossible. A computer can do a faster and better job at grinding through

piles of sales data in order to come up with just the thing you're looking for.

• Get better control over stocks – handling efficient control of stock is an

entirely different story compared to handling sales with a manual system. But

for a successful supermarket chain, it is imperative to have a good integration

between sales management and stock control. A computerized system can

help Walmart better integrate these two processes into one system, or two

components on a larger Enterprise Resource Planner (ERP) if they wish to

implement one later on as the business blooms.

• Improve the corporate image of Walmart as a whole – given the substantial

financial and business expenditure of computerizing the sales management

process, this will improve the corporate image of Walmart in the eyes of their

customers as well as competitors. A business that takes their business serious

will appeal more to the customer than a shop running on bare minimum.

University of Wales Institute, Cardiff. (BCO308)

4

The above given proposition will act as a rationale for continuing to computerize the

sales management process of Walmart supermarket chain with a new software based

solution. Within reasonable limits, this rationale will justify the costs over the

benefits of implementing a new software based sales management system for Walmart

supermarket chain to handle customers, sales, and stocks in whole.

University of Wales Institute, Cardiff. (BCO308)

5

2. Unified Software Development Process.

2.1 Introduction.

To simply put, Unified Software Development Process or just Unified Process (UP) is

one of the most popular software development frameworks used through out the

software development industry in an International scale. It is a culmination of both

iterative and incremental software development models brought together to provide a

flexible and adaptable framework for the software development process.

2.2 The Need for a Software Development Framework.

Software development and engineering is a complex and important task that deals

with real hard cash in a world where computers are core to almost all major business

processes. And because of this importance and complexities, there is a huge risk

factor involved in engaging in software development. Given that any complex task

can be easily overcome by breaking the task into a multiple of relatively simpler

tasks, the best approach is to breakdown the software development process into a set

of sub-processes, thus allowing the part takers to focus and excel in one area at a time.

To take down the software development Goliath, the software developer David can

easily use the Slingshot of Unified Process. Though this analogy stops at the face

value, the premise it presents is still in tact. What Unified Process offers to the

software developer is a framework which can be used, adapted or extended to his

particular project. Software development projects vary in a number of ways,

depending on the domain, the requirements dictated by the environment, standards

adhered to by the industry as well as technical advancements and application. Making

a boiler plate model to handle this varying set of processes in a herculean task very

much tend to fail at the face of it. The very next change brought to the industry will

University of Wales Institute, Cardiff. (BCO308)

6

render such a model obsolete, leading to the adaptation of another new model. In the

other hand, a framework that leave space for adaptation and extension much like the

Unified Process can just be the thing software development industry needs.

2.3 The Attributes of Unified Software Development Process.

• Iterative and Incremental – the phases of the process framework are lapsed

on a series of time slots in a repetitive iteration. As with every iteration, the

state of the system is incremented a step further. This allows the developer or

the development team to focus on an abstract subset of functionalities of the

software at one given iteration and incrementally add more and more functions

as suited.

• Use Case Driven – in the Unified Process framework, Use Cases assume an

important and leading role in driving the software development process in the

right direction at right phase. Use Cases are used to capture requirements in

both business level as well as system level. The primary focus at this phase is

given to system level use cases which basically define functional requirements

of the proposed system and identify the area to be covered in each iteration of

the process phases. Use case can also help break down the tasks in an

incremental manner.

• Architecture Centric – the Unified Process puts the architecture of the

system in the center of the development process. Given than no single

architecture or model would be able to successfully support all given software

development project, Unified Process is flexible enough to support multiple

architectural models as well. Loosely defined, an architectural model is a

conceptual model that maps functional requirements to the software and

hardware platforms with a variety of tools, compilers, interpreters, supportive

software code, and etc.

• Risk Focused – as it is already mentioned before, there is a significant level of

University of Wales Institute, Cardiff. (BCO308)

7

risk involved with software development projects that can have a measurable

financial impact if not handled carefully. The Unified Process strongly

encourages developer or the development team to charge in an handle the

highest risks first. Usually risks are categorized as “high impact – high

probability”, “high impact – low probability”, “low impact – high

probability”, and “low impact – low probability”. Usually it is advised that

“high impact – high probability” risks are handled within the first few

iterations, so that the project can incrementally proceed to handle lower risks

through the rest of the project.

2.4 Phases of a Unified Process Project Life Cycle.

1. Inception Phase: This is the shortest phase of a Unified Process project life

cycle. In this phase, a justifiable business case or a rationale is established to

proceed with the rest of the software development project. It gives the

development and analysis teams to establish a scope and a set of boundaries

for the prospective system. Identifying risks, categorizing them, and laying

out risk handling procedures are also done at this phase.

2. Elaboration Phase: Arguably this is the most important phase of a Unified

Process Project Life Cycle. A majority of the system requirements are

captured and put into one design specification in this phase. Further, most of

the risks are handled at this stage as much as possible. Complete system use

case diagrams, basic class diagrams, package hierarchies and architectural

outlines are all put to draft at this phase. Much of the rest of the life cycle

builds up on the foundational architecture laid at this phase.

3. Construction Phase: This is the longest phase of a Unified Process project

life cycle. It also is where most of the iterations are taken place, most

incremental work is done, and notably the heaviest load of work is carried out.

Computer language programmers play a major role at this phase than system

analysts and such. The designs developed from the elaboration phase are put

University of Wales Institute, Cardiff. (BCO308)

8

to implementation in short bursts of time slots each incrementally adding a

feature or two to the already implemented set of functions. Rigorous testing is

carried out through out the phase in order to assure that the outcomes are met

with the system requirements laid out by the system use cases.

4. Transition Phase: This is the final phase of a usual software development

project. It encompasses tasks such as deployment of the system, handing over

deliverables, user training, data and system conversions, etc. If proper care is

taken at the prior stages of the life cycle to address all potential risks and

identify the requirements of the final system, this transition can be achieved

with minimum resistance.

2.5 Adaptation of Unified Process for Walmart Project.

In a professional discipline such as software development where theory is of no good

if it cannot be put to practice, mere discussion of the Unified Process would not have

done much good if we were not going to actually implement it for the project at

discussion. It is understandable that the Unified Process seems like an over

complication of a task that could have been achieved so easily with the integration of

a Software Development Life Cycle (SDLC) model such as the “Waterfall Model”. It

in fact is simpler and much more suitable for a small scale project as this one. But the

practice we gain by adhering to this new discipline is more important in this learning

process than to actually get the assignment over with by any means.

The beauty of the Unified Process is that it can be as simpler or complex as you want

it to be. As the applicant, you are at complete liberty to adapt this framework to your

project the way you find it suits. You are free to bend it, twist it and extend it the way

you want so that it suits your requirements better. This is one of the major reasons

why many industry giants as well as emergent software firms find Unified Process to

be of much use in small, to medium to large scare software development projects.

Because of this very reason, I have also adapted Unified Process software

University of Wales Institute, Cardiff. (BCO308)

9

development framework in a simpler, yet effective manner into this assignment in

developing Walmart Sales Management System as well.

Much of the Inception Phase is already covered for me by the assignment

specification provided to me as part of my course material. I have a well defined case

scenario outlining a number of key system requirements which must be addressed in

the system I am supposed to develop. Through the case scenario I easily managed to

identify the key requirements and the scope. After a bit of brain storming time, I

managed to isolate the limitations and layout a boundary for the project as well.

In the Elaboration Phase of the project, I started off by completing the System Use

Case Diagram which gave me a clear understanding of how I should break down

functions in various parts of the proposed system. Also I used these use cases to lay

out a basic test plan for the system. Then using the use cases, I designed the basic

layout of the classes that would interact within the system. One I got their

interrelations worked out, I refined them further by adding more and more details and

finally completing the Class Diagram. A hierarchy of classes was also prepared to

keep things in perspective.

Through the Construction Phase of the project, I started off by coding basic skeletal of

the the classes by simply dummy procedures, coupled with simple accessors and

mutators. I kept all attributes encapsulated from the very beginning as a good practice

that would prove helpful in providing me with well defined interfaces to get the

fundamental interactions working. A simple sequence diagram was used to keep track

of the order of interactions and messages passed between various entities of the

system. But much of the work was put to Class Diagram than the Sequence Diagram

since most of the interactions and messages being passed were designed in a way that

would make them look self apparent.

The Transition Phase is almost redundant in this particular project since this project is

not going to be implemented for real. But I used my imagination to understand how it

University of Wales Institute, Cardiff. (BCO308)

10

would be like having to actually implement this system and came up with a list of

recommendations for the implementation phase.

As an additional part of this assignment work I have given my own conclusion to the

project along with future recommendations and improvements. Some of them were

too complex to be implemented at my level of knowledge, some of them would

require a larger time span with specialized expertise with a stiff learning curve, and

some of them are purely for the sake of betterment of the system to bring it to the

level of industry strength.

University of Wales Institute, Cardiff. (BCO308)

11

3. Requirements Analysis.

3.1 Functional Requirements of Walmart Sales Management System.

I have identified three (3) primary actors who are directly interacting with the

proposed sales management system.

1. System Administrators – these are the users of the system who work on a

higher level, having more control over important aspects of the system such as

adding more users, giving them proper authorization levels and making sure

that the system runs as smoothly as expected.

2. Branch Managers – these are working on a higher level of the organizational

hierarchy of the Walmart, who has more decision making power than a usual

employee. They are responsible for doing day-to-day maintenance of the

system that allows smoother operation of the system.

3. Sales Assistants – these users put the system into heavy use. They spend more

time with the system than any other user, since they are the ones handle sales

transactions, which add up to be a majority of system's collective operations.

They play a major role in the long term where system's true benefits can be

visible. Their actions could lead to catastrophe as well as to the success of the

system.

Apart from these primary actors, there are two (2) other auxiliary actors who do not

interact directly with the system, but through a primary actor.

1. Suppliers – these are the people who supply products to Walmart so that they

can resell them to their customers. The system requires that suppliers be kept

track of so that they can be paid off for the amount of goods purchased.

2. Customers – the key to any business, still they interact with this system

through the Sales Assistants. Customers are kept track of and provided with a

reward point scheme as well.

University of Wales Institute, Cardiff. (BCO308)

12

Given that the primary users of the system are System Administrators, Branch

Managers, and Sales Assistants, I have identified following system requirements.

1. System Administrators

• Sign in to the system with proper credentials.

• Sign off of the the system when done working with it.

• Add new branches to the supermarket chain.

• Remove a branch from the supermarket chain.

• Update the information of a branch of the supermarket chain.

• Add users to the system and provide them proper permission.

• Remove users from the system and remove their permission.

• Update user information and alter permission levels.

• Change passwords of the users.

• Add new suppliers to the supermarket chain.

• Remove suppliers from the supermarket chain.

• Update supplier information when required.

• Add new brands to the branches.

• Remove brands from the branches.

• Update brand details when requied.

2. Branch Managers

• Sing in to the system with proper credentials.

• Sign off of the the system when done working with it.

• Add new sections to a branch.

• Remove a section from a branch.

• Update the section details when required.

• Add new products to sections.

• Remove products from a section.

• Update product information as required.

University of Wales Institute, Cardiff. (BCO308)

13

3. Sale Assistants

• Sing in to the system with proper credentials.

• Sign off of the the system when done working with it.

• Add new customers to the supermarket chain.

• Remove customer details from the supermarket chain as required.

• Update customer information when required.

• Add sales transactions on behalf of the customers.

• Remove sales transactions when deemed necessary.

• Update sales transactions data when required.

Even though at a first glance the Systems Administrator seems to have more tasks to

do with the system, the recurrence of these tasks is very low. In the other hand, Sales

Assistants have a few number of tasks that tend recur many times over a short time

period.

After identifying the above list of requirements for the proposed system, I prepared a

System Use Case diagram using the standard UML notations.

University of Wales Institute, Cardiff. (BCO308)

14

3.2 System Use Cases Diagram of Walmat Sales System.

Diagram 1. Use Case Diagram. This diagram depicts the finalized Use Case Diagram with primary

Actors and their interactions with various Use Cases.

University of Wales Institute, Cardiff. (BCO308)

15

4. System Design Specifications.

4.1 Class Diagram with Basic Notation.

Diagram 2. Basic Class Diagram. This diagram depicts the Class Diagram with the basic notation.

The extensive notation of attributes and methods has been postponed until the finalized for of the same

diagram presented later.

University of Wales Institute, Cardiff. (BCO308)

16

4.2 Complete Class Diagram with Full Notation.

Diagram 3. Complete Class Diagram. This is the complete Class Diagram finalized with attributes

and methods. All the mutators and accessors are included as well. The DBAccess interface was

removed as it does not hold a significance in the system design point of view.

University of Wales Institute, Cardiff. (BCO308)

17

4.3 Complete Package – Class Hierarchy.

Diagram 4. Complete Class – Package Hierarchy. This is the complete hierarchy of Classes,

Interfaces and Abstract Classes being used for this assignment. I have omitted the UI generating

classes since most of the entire Swing package is being used for this purpose.

University of Wales Institute, Cardiff. (BCO308)

18

4.4 Database Structure.

Branch [ Branch_ID [PK] Branch_Location Branch_Phone ]

Section[ Section_ID [PK] Section_Name Section_Description Section_Branch_ID [FK: Branch -> Branch_ID] ]

Staff [ Staff_ID [PK] Staff_First_Name Staff_Last_Name Staff_Address Staff_Phone Staff_Mobile Staff_Section_ID [FK: Section -> Section_ID] ]

Supplier [ Supplier_ID [PK] Supplier_Name Supplier_Address Supplier_Phone Supplier_Mobile ]

Brand [ Brand_ID [PK] Brand_Name Brand_Supplier_ID [FK: Supplier -> Supplier_ID]]

University of Wales Institute, Cardiff. (BCO308)

19

Item [ Item_ID [PK] Item_Name Item_Description Item_Section_ID [FK: Section -> Section_ID] Item_Cost_Price Item_Sales_Price Item_Stock Item_Reorder_Level Item_Return_Period Item_Comment Item_Brand_ID [FK: Brand -> Brand_ID]]

Customer[ Customer_ID [PK] Customer_Name Customer_Address Customer_Phone Customer_Mobile Customer_Points_Earned Customer_Points_Spent]

Receipt[ Receipt_ID [PK] Receipt_Customer_ID [FK: Customer -> Customer_ID] Receipt_Payment_Mode Receipt_Timestamp Receipt_Value Receipt_Points_Reduced ]

Sale [ Sale_ID [PK] Sale_Item_ID [FK: Item -> Item_ID] Sale_Quantity Sale_Value Sale_Receipt_ID [FK: Receipt -> Receipt_ID] Sale_Status ]

University of Wales Institute, Cardiff. (BCO308)

20

User[ User_ID [PK] User_Username User_Password User_Staff_ID [FK: Staff -> Staff_ID] User_Access_Level User_Status]

Given above is the generic basic structure of the database I have used for this

particular assignment. I used the Pseudo Code notation to design the database as I

find it faster as well as easier to work with. Further, this could have easily been fed to

a SQL Code Generator program to generate the SQL commands to implement this

table structure in a database with minimum alterations and effort.

The actual Structured Query Language instructions used to create the database in a

MySQL database server that runs on my personal computer are also included in the

companion CD.

University of Wales Institute, Cardiff. (BCO308)

21

4.5 Object Sequence Diagrams.

Diagram 5. Sign In Sequence. This is the sequence diagram for signing in to the system with a

Username, Password, and Access Level.

University of Wales Institute, Cardiff. (BCO308)

22

Diagram 6. Sign-Out Sequence. This is the sequence diagram for signing out of the system.

University of Wales Institute, Cardiff. (BCO308)

23

Diagram 7. Manipulation of Staff Members Sequence. This is the sequence diagram for the

manipulation of Staff Member records. It shows adding, removing and viewing of these records.

University of Wales Institute, Cardiff. (BCO308)

24

Diagram 8. Manipulation of User Accounts Sequence. This is the sequence diagram for the

manipulation of System User records.

University of Wales Institute, Cardiff. (BCO308)

25

Diagram 9. Manipulation of Supplier Information Sequence. This is the sequence diagram of the

operations involving the manipulation of the Suppliers.

University of Wales Institute, Cardiff. (BCO308)

26

Diagram 10. Manipulation of Branches Sequence. This is the sequence diagram for the actions

involving the manipulation of the Branch records.

University of Wales Institute, Cardiff. (BCO308)

27

Diagram 11. Manipulation of the Staff Members Sequence. This is the sequence of manipulation

of the Staff Members by a Branch Manager.

University of Wales Institute, Cardiff. (BCO308)

28

Diagram 12. Manipulation of Sections Sequence. This is the sequence diagram of activities

involving the manipulation of the Sections by a Branch Manager.

University of Wales Institute, Cardiff. (BCO308)

29

Diagram 13. Manipulation of Product Items Sequence. This is the sequence diagram of the

activities involving the manipulation of Product Items by a Branch Manager.

University of Wales Institute, Cardiff. (BCO308)

30

Diagram 14. Manipulation of Customer Records Sequence. This is the sequence diagram of the

activities involving the manipulation of the Customer records by a Sales Assistant.

University of Wales Institute, Cardiff. (BCO308)

31

Diagram 15. Sale Transactions Sequence. This is the sequence diagram for the Sale transactions. It

starts off by creating a Receipt and adding only one Sale.

University of Wales Institute, Cardiff. (BCO308)

32

4.6 System Design Rationale.

4.6.1 Class Diagram Design.

In designing Class diagrams for this system, I have taken the approach of first

designing the classes with the basic notation. This makes it easier to get all the

classes in one screen and see their relationships and how they are formed. Once the

relationships are identified and added to the classes, the classes can be extended with

the extensive and troublesome details.

The complete and detailed design in the other hand if based on the basis found in the

previous basic diagram, only this time with added attributes, and methods to classes.

Every attribute is encapsulated with an accessor and a mutator. This gives universal

interfaces to the classes, leaving the internal structure open for tinkering.

Every class hoping to use the database to map themselves to a record in the database

can implement the interface DBAccess which is nothing but a collection of constant

variables providing the database Driver, URL, Username and Password that can be

used by the classes. This makes it easier to change the Database at will.

Every class that must be read or written to the database are provided with a common

set of four methods, one for adding a new record, one for loading a record from the

database and mapping it to the class attributes, one for updating the database record

by mapping attributes back to data items, and finally allowing a record to be removed

from the database. These methods make it very much easier in handling objects and

mapping them back and forth with their respective database records.

The classes are also categorized into two different package levels. The common

“com.uwic.walmart” package is used to put the entire code base of this application. A

sub-package of this “com.uwic.walmart.ui” is used to put in the few User Interface

template classes that are instantiated for UI generation.

University of Wales Institute, Cardiff. (BCO308)

33

4.6.2 Sequence Diagram Design.

The design of the sequence diagrams is carried out parallel to the design of the Class

diagram as well as the database structure. Though ideologically I could have drawn

each at their own time, I realized that to do them together is the best way to get the

little pieces of the system work perfectly well together to complete the system.

You may notice that most of the data manipulation sequence diagrams resemble each

other in a significant manner. In fact this is no coincidence since I intentionally made

sure that a consistent class structure would be used. This gives them all the same set

of methods that can be invoked the same way, thus making it easier for the developers

to use them classes later on without having to learn how each class would work. They

only have to learn one, and then apply to the rest of the classes the same sequence.

For the sales, I have used a transaction based entry, giving it a level of sophistication

that is useful in a actual sales management system. This was more like an

experimental feature that gave me an opportunity to try out something I haven't tried

before.

4.6.3 Database Structure Design.

Instead of using the boiler plated Entity-Relationship (ER) diagram for this purpose, I

took advantage of the flexibility of the Unified Process and took the opportunity to

explore a Pseudo Code based approach to structuring the database. I have in almost

all cases, a table in the database matching a class one-to-one. By using this methods,

I could easily change my design to suit the changes done in the Class level. This

flexibility was important since I was designing the Class diagrams, sequence diagrams

and the database incrementally and parallel to each other.

University of Wales Institute, Cardiff. (BCO308)

34

5. Test Plan and Test Reports.

5.1 Planned Test Cases.

Table 1. Test Cases. This table has 50 test cases that I have identified spreading over about 11 test

classes selected by analyzing the Use Cases. There is no end to what kind of tests could have been

performed over this system. This is just to demonstrate my understanding and approach to the task.

CaseID#

Test Case Test Data Expected Results

Class 1: Testing User Access Authentication.

01

Test if a user with a valid username and a password can sign-in to the system with proper access level.

Username {valid}

Password {valid}

Access Level {valid}

Complete the authentication process and sign-in to the system.

02

Test if a user with a valid username and an invalid password can sign-in to the system with proper access level.

Username {valid}

Password {invalid}

Access Level {valid}

A sing-in error dialog must be displayed.

03

Test if a user with a valid username and a valid password can sign-in to the system with an improper access level.

Username {valid}

Password {valid}

Access Level {Invalid}

A sign-in error dialog must be displayed.

04

Test if a user with an invalid username and a valid password can sign-in to the system with a proper access level.

Username {invalid}

Password {valid}

Access Level {valid}

A sign-in error dialog must be displayed.

05

Test if a user providing no username and no password can sign-in to the system with any access level.

Username {empty}

Password {empty}

Access Level {random}

A sign-in error dialog must be displayed.

Class 2: Testing Access Privileges During Sign-In Process.

06

Test if a user signed-in to the Administrator level is given administration level.

Username {valid}

Password {valid}

Access Level {admin}

User will be redirected to the administration main window.

07 Test if a user signed-in to the Manager level is given manager level.

Username {valid} User will be redirected to the manager main

University of Wales Institute, Cardiff. (BCO308)

35

Password {valid}

Access Level {manager}

window.

08

Test if a user signed-in to the Sales Assistant level is given sales assistant level.

Username {valid}

Password {valid}

Access Level {user}

User will be redirected to the sales main window.

Class 3: Testing Administration of Staff Members.

09 Test if a staff member record is properly displayed when the Staff ID is selected.

Staff ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the staff member of whom the Staff ID was used for the test.

10

Test if a staff member record is properly updated when the Staff ID is selected and valid data are provided and asked to update.

Staff ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Staff ID.

11

Test if a staff member record is actually removed when the Staff ID is selected as asked to be deleted.

Staff ID {valid}

Remove Button {click}

The record of the staff member referred to by the Staff ID should no longer be available.

12

Test if a new staff member can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Staff ID must be available in the Staff ID list.

13

Test if a new staff member can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Staff ID in the list.

Class 4: Testing Administration of System Users.

14

Test if a system user record is properly displayed when the User ID is selected.

User ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the user of whom the User ID was used for the test.

15

Test if a user record is properly updated when the User ID is selected and valid data are provided and asked to update.

User ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the User ID.

16 Test if a user record is actually removed when the User ID is selected as asked to be deleted.

User ID {valid}

Remove Button {click}

The record of the user referred to by the User ID should no longer be

University of Wales Institute, Cardiff. (BCO308)

36

available.

17

Test if a new user can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new User ID must be available in the User ID list.

18

Test if a new user can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a User ID in the list.

Class 5: Testing Administration of Suppliers.

19

Test if a supplier record is properly displayed when the Supplier ID is selected.

Supplier ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the supplier of whom the Supplier ID was used for the test.

20

Test if a supplier record is properly updated when the Supplier ID is selected and valid data are provided and asked to update.

Supplier ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Supplier ID.

21

Test if a supplier record is actually removed when the Supplier ID is selected as asked to be deleted.

Supplier ID {valid}

Remove Button {click}

The record of the supplier referred to by the Supplier ID should no longer be available.

22

Test if a new supplier can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Supplier ID must be available in the Supplier ID list.

23

Test if a new supplier can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Supplier ID in the list.

Class 6: Testing Administration of Branches.

24

Test if a branch record is properly displayed when the Branch ID is selected.

Branch ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the branch of which the Branch ID was used for the test.

25

Test if a branch record is properly updated when the Branch ID is selected and valid data are provided and asked to update.

Branch ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Branch ID.

26 Test if a branch record is actually removed when the Branch ID is selected

Branch ID {valid} The record of the branch referred to by

University of Wales Institute, Cardiff. (BCO308)

37

as asked to be deleted. Remove Button {click} the Branch ID should no longer be available.

27

Test if a new branch can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Branch ID must be available in the Branch ID list.

28

Test if a new branch can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Branch ID in the list.

Class 7: Testing Administration of Sections in Branches.

29

Test if a section record is properly displayed when the Section ID is selected.

Section ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the section of which the Section ID was used for the test.

30

Test if a section record is properly updated when the Section ID is selected and valid data are provided and asked to update.

Section ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Section ID.

31

Test if a section record is actually removed when the Section ID is selected as asked to be deleted.

Section ID {valid}

Remove Button {click}

The record of the section referred to by the Section ID should no longer be available.

32

Test if a new section can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Section ID must be available in the Section ID list.

33

Test if a new section can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Section ID in the list.

Class 8: Testing Administration of Product Items available for Sale.

34

Test if a product record is properly displayed when the Item ID is selected.

Item ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the product of which the Item ID was used for the test.

35

Test if a product record is properly updated when the Item ID is selected and valid data are provided and asked to update.

Item ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Item ID.

36 Test if a product record is actually Item ID {valid} The record of the

University of Wales Institute, Cardiff. (BCO308)

38

removed when the Item ID is selected as asked to be deleted. Remove Button {click}

product referred to by the Item ID should no longer be available.

37

Test if a new product can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Item ID must be available in the Item ID list.

38

Test if a new product can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Item ID in the list.

Class 9: Testing Administration of Customer Records.

39

Test if a customer record is properly displayed when the Customer ID is selected.

Customer ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the customer of which the Customer ID was used for the test.

40

Test if a customer record is properly updated when the Customer ID is selected and valid data are provided and asked to update.

Customer ID {valid}

All Fields {valid}

Save Button {click}

The new values in the fields will be stored updating the record referred to by the Customer ID.

41

Test if a customer record is actually removed when the Customer ID is selected as asked to be deleted.

Customer ID {valid}

Remove Button {click}

The record of the customer referred to by the Customer ID should no longer be available.

42

Test if a new customer can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Customer ID must be available in the Customer ID list.

43

Test if a new customer can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Customer ID in the list.

Class 10: Testing Administration of the Sales Transactions.

44

Test if a transaction record is properly displayed when the Transaction ID is selected.

Transaction ID {valid}

View Button {click}

The fields on the screen must be populated with the data of the transaction of which the Transaction ID was used for the test.

45 Test if a transaction record is properly updated when the Transaction ID is selected and valid data are provided and asked to update.

Transaction ID {valid}

All Fields {valid}

The new values in the fields will be stored updating the record referred to by the

University of Wales Institute, Cardiff. (BCO308)

39

Save Button {click} Transaction ID.

46

Test if a transaction record is actually removed when the Transaction ID is selected as asked to be deleted.

Transaction ID {valid}

Remove Button {click}

The record of the transaction referred to by the Transaction ID should no longer be available.

47

Test if a new transaction can be added with valid data.

New Button {click}

All Fields {valid}

Save Button {click}

A new record with a new Transaction ID must be available in the Transaction table list.

48

Test if a new transaction can be added with invalid data.

New Button {click}

Some Fields {invalid}

Save Button {click}

The record should not be entered into the database and available with a Transaction ID in the list.

Class 11: Testing of the User Interfaces.

49Test if all the command buttons respond to mouse clicks.

All Buttons {click} The buttons should respond by carrying out the intended tasks.

50

Test if the menu items in the menu bar respond properly to mouse clicks.

Menu Items {click} The menu items should respond properly carrying out the intended tasks.

5.2 Testing Rationale.

The beauty of the Unified Process is that it not only focuses on risks, it also takes an

approach of testing software with rigor through out the development process. I have

the following testing methods to ensure that the software I am developing is of

standard and can be used to cover the assignment specification.

1. Testing of the Use Cases – after the identification of the use cases by reading

the assignment specification provided to me, I realized that it is best if I put

my uses cases to a simple test. I took assistance of an individual who has no

idea about this assignment, not that much thorough with the software

development processes, but has a general understanding of how to use a

University of Wales Institute, Cardiff. (BCO308)

40

computer software to get some routine work done. This person could provide

the intellectual balance needed in this task. The test was simple. All that was

done was allowing that person to read the assignment a few times. Then I

used by Use Cases to explain what they system does. He compared his

understanding of the scenario with what I explained to see if there are any

mismatches. This early heads on approach helped me find out some missing

edges on my Use Cases and complete them.

2. Testing of the Conceptual Diagrams – after completion of the class diagrams

and sequence diagrams checking up continuously with the use cases

generated, I have run a number of imaginary sequences using rough paper and

pencils to see how each and every class would interact, how and when objects

will be created, destroyed, how alternate paths can be used and their effect

compared to the effects predicted by the sequence diagrams. These exercises

proved to be more useful than I expected them to be. Though I could not find

any substantial errors that needed to be corrected, I was able to integrate these

conceptual items in a number of ways to see which fits best together and

which does not. This understanding allowed me to proceed to the

development phase with a better understanding of the system as well as the

design.

3. Unit Testing of the System – given that this is an object oriented program

developed using Java as the programming language, the word “unit” can refer

to both classes as well as methods. In either case, methods provide the

functionalities of a class. Therefore to test methods of a class is to test the

class itself as a unit. Through out the development process, methods have

been tested with an approach of certain rigor by making sure that all known

exceptional situations are handled properly. In the case of possible unseen

exceptional situations, and exceptions that have almost zero probability, they

have been handled at least not to crash the system. All parameters are tested to

validity before being either used or assigned to internal calculations of a class.

All arguments passed are suspected of invalidity at all times and kept on a

tight leash to make sure that no mishaps happen. All attributes are kept private

University of Wales Institute, Cardiff. (BCO308)

41

to the classes, and accessors and mutators are used to manipulate them.

Except for a selected set of public interfaces in the form of methods, the rest of

the workings of the class are always kept encapsulated behind the class scope.

4. Integrated Testing of the Components – the components of this program can

be classes, their objects, or methods when they are being called upon for

service. I have started integration testing from the design phase itself by

putting sequence diagrams into role play to see how they fit and interact. Since

public interfaces of the classes participating in this program are well identified

and designed to be consistent through out the application, integration testing at

the coding level has also not been that difficult. In fact, the OOP concepts

facilitate conducting integrated testing to a certain extent with public

interfaces without having to fully implement all units. Ass long as messages

are available to be passed, lest they be pseudo or dummy, it would still be

useful in conducting testing. I simply started with a skeletal structure of the

entire class hierarchy with dummy procedures and dummy messages, and then

put the whole system to work together. Then one by one at a time, I kept on

implementing each unit at a time, letting them test themselves through the

integration. As incremental iterations continued, at one step I ended up

actually implementing all units of the system.

5. System Level Testing – this usually is the most popular and tangible form of

testing that can be carried out on software. I have taken the black box

approach though I am the developer, to assume the role of external tester. The

above test plan with 50 selected test cases spanning through out 11 classes of

tests is prepared for this purpose. All above classes were carefully selected to

reflect the requirements specified in the assignment and as identified and

documented in the Use Cases. But the test cases can be numerous and there is

no way all of them can be covered within the given constraints. Therefore the

following test report randomly picks 10 out of the above 50 test cases to

demonstrate my understanding of carrying out a test procedure and

documenting it.

University of Wales Institute, Cardiff. (BCO308)

42

5.3 Selection of Test Data.

Table 2. Test Data Set. These are the test data sets used to conduct testing procedures for a selected

set of Use Cases out of the above 50 use cases in the test plan.

CaseID#

Test Data Set

02Username = “sandeep”Password = “pa55”Access Level = “Manager”

03Username = “rajiv”Password = “123”Access Level = “Sales Assistant”

09 Staff ID = “1”

17

Username = “dilu”Password = “ab123”Confirm Password = “ab123”Staff ID = “1”Access Level = “Manager”Authorized = checked

21 Supplier ID = “3”

34 Item ID = “2”

37

Product Name = “Prod XYZ”Description = “A testing product of XYZ”Purchase Price = “450.00”Sales Price = “500.00”Stock = “1000”Reorder Level = “100”Return Allowed = checkedPeriod = “3”Section ID = “2”Brand ID = “4”Comment = “Not much of a useful comment!”

43

Name = “Mythily Bala”Address = “Wellawatta, Colombo 6.”Phone = “+94114738928”Mobile = “+947747383g8”Points Earned = “1000”Points Spent = “100”

44 Transaction ID = “1”

47

Customer ID = “1”Payment Method = “Cash”Item Code = “2”Quantity = “100”Item Code = “3”Quantity = “5”

University of Wales Institute, Cardiff. (BCO308)

43

5.4 System Test Case Results.

Table 3. Test Result – Case ID #02

Case ID # 02

Test Class 01: Testing User Access Authentication.

Test Case Test if a user with a valid username and an invalid password can sign-in to the system with proper access level.

Description Providing proper authentication procedures is a key to the requirements of this system. We have identified even during the Use Case generation that Sign-In and Sign-Out features must be provided for the proposed system. In most cases users may remember their username, but easily forget their password. In such as case, the user must be restrained from using the system until a new password is assigned by an administrator. This will ensure that no unauthorized user will be able to gain access to the system to cause any kind of harm.

Test Data Username = “sandeep”Password = “pa55”Access Level = “Manager”

Prerequisites The application should be running and no other user is already signed in to the system.

Steps 1. Enter the “sandeep” as the Username to the text field.2. Enter “pa55” as the Password to the password field.3. Select “manager” as the Access Level from the combo box.4. Click “Sign In” button.

Expected Result A Sign In Error Dialog must be displayed.

Actual Result A Sign In Error Dialog was displayed.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

44

Table 4. Test Result – Case ID #03

Case ID # 03

Test Class 01: Testing User Access Authentication.

Test Case Test if a user with a valid username and a valid password can sign-in to the system with an improper access level.

Description The access levels play a major role in an information based system. In this system, some users such as administrators have higher control over system compared to the general sales assistant staff. It is important that a user is never granted a higher level of access than that which is granted to him. It would reduce the risk factors involving data corruption and unfortunate accidents by a significant ratio.

Test Data Username = “rajiv”Password = “123”Access Level = “Sales Assistant”

Prerequisites The application must be running and no other user must be signed in already.

Steps 1. Enter “rajiv” as the Username in the text field.2. Enter “123” as the Password in the password field.3. Select “Sales Assistant” as the Access Level from the combo box.4. Click “Sign In” button.

Expected Result A Sign In Error Dialog must be displayed.

Actual Result A Sign In Error Dialog was displayed.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

45

Table 5. Test Result – Case ID #09

Case ID # 09

Test Class 01: Testing Administration of Staff Members.

Test Case Test if a staff member record is properly displayed when the Staff ID is selected.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Staff Members in important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Staff Members, but also on other classes that rely on the same set of operations.

Test Data Staff ID = “1”

Prerequisites The system should already be running with someone signed in as the administrator. A record for the user ID should be availabe in the database.

Steps 1. Select “1” as the Staff ID from the combo box.2. Click “View” button.

Expected Result The fields on the screen must be populated with the data of the staff member of whom the Staff ID was used for the test.

Actual Result The fields on the screen were populated with the data of the staff member of whom the Staff ID was used for the test.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

46

Table 6. Test Result – Case ID #17

Case ID # 17

Test Class 01: Testing Administration of System Users.

Test Case Test if a new user can be added with valid data.

Description Once again, not only having authentication is going to be enough if we cannot grant them properly. This is ensured by management of user accounts, with usernames and passwords. We are going to insert some valid data and see if we can actually create these permitted users.

Test Data Username = “dilu”Password = “ab123”Confirm Password = “ab123”Staff ID = “1”Access Level = “Manager”Authorized = checked

Prerequisites The system should already be running with someone signed in as the administrator. A record for the user ID should be availabe in the database.

Steps 1. Click “New” button.2. Enter “dilu” as the Username in the text field.3. Enter “ab123” as the Password in the password field.4. Enter “ab123” as the Confirm Password in the the password field.5. Enter “1” as the Staff ID in the text field.6. Select “Manager” as Access Level from the combo box.7. Set Authorization to check.8. Click “Save” button.9. Select the newly added User ID from the combo box.10. Click “View” to confirm that the record was added successfully.

Expected Result A new record with a new User ID must be available in the User ID list.

Actual Result A new record with a new User ID was available in the User ID list.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

47

Table 7. Test Result – Case ID #21

Case ID # 21

Test Class 01: Testing Administration of Suppliers.

Test Case Test if a supplier record is actually removed when the Supplier ID is selected and asked to be deleted.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Suppliers is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Suppliers, but also on other classes that rely on the same set of operations.

Test Data Supplier ID = “3”

Prerequisites The system should already be running with someone signed in as the administrator. A record for the supplier ID should be available in the database.

Steps 1. Select “3” as the Supplier ID from the combo box.2. Click “View” button.3. If the right one is found, click “Remove” button.

Expected Result The record of the supplier referred to by the Supplier ID should no longer be available.

Actual Result The record of the supplier referred to by the Supplier ID was no longer available.

Status SUCCESSFUL

Screen Grab N/A

University of Wales Institute, Cardiff. (BCO308)

48

Table 8. Test Result – Case ID #34

Case ID # 34

Test Class 01: Testing Administration of Product Items.

Test Case Test if a product record is properly displayed when the Item ID is selected.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Product Items is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Product Items, but also on other classes that rely on the same set of operations.

Test Data Item ID = “2”

Prerequisites The system should already be running with someone signed in as the manager. A record for the Item ID should be available in the database.

Steps 1. Select “2” as the Item ID from the combo box.2. Click “View” button.

Expected Result The fields on the screen must be populated with the data of the product of which the Item ID was used for the test.

Actual Result The fields on the screen were populated with the data of the product of which the Item ID was used for the test.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

49

Table 9. Test Result – Case ID #37

Case ID # 37

Test Class 01: Testing Administration of Product Items.

Test Case Test if a new product can be added with valid data.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Product Items is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Product Items, but also on other classes that rely on the same set of operations.

Test Data Product Name = “Prod XYZ”Description = “A testing product of XYZ”Purchase Price = “450.00”Sales Price = “500.00”Stock = “1000”Reorder Level = “100”Return Allowed = checkedPeriod = “3”Section ID = “2”Brand ID = “4”Comment = “Not much of a useful comment!”

Prerequisites The system should already be running with someone signed in as the manager. A record for the Item ID should be available in the database.

Steps 1. Click “New” button.2. Enter the test data into relevant input fields.3. Click “Save” button.4. Select the new Item ID from the combo box.5. Click “View” to confirm.

Expected Result A new record with a new Item ID must be available in the Item ID list.

Actual Result A new record with a new Item ID was available in the Item ID list.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

50

Table 10. Test Result – Case ID #43

Case ID # 43

Test Class 01: Testing Administration of Customers.

Test Case Test if a new customer can be added with invalid data.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Customers is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Customers, but also on other classes that rely on the same set of operations.

Test Data Name = “Mythily Bala”Address = “Wellawatta, Colombo 6.”Phone = “+94114738928”Mobile = “+947747383g8”Points Earned = “1000”Points Spent = “100”

Prerequisites The system should already be running with someone signed in as the sales assistant.

Steps 1. Click “New” button.2. Enter test data into relevant input fields.3. Click “Save” button.

Expected Result The record should not be entered into the database and available with a Customer ID in the list.

Actual Result The record was not entered into the database and available with a Customer ID in the list.

Status SUCCESSFUL

Screen Grab N/A

University of Wales Institute, Cardiff. (BCO308)

51

Table 11. Test Result – Case ID #44

Case ID # 44

Test Class Testing Administration of Sales Transactions.

Test Case Test if a transaction record is properly displayed when the Transaction ID is selected.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Transaction is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Transaction, but also on other classes that rely on the same set of operations.

Test Data Transaction ID = “1”

Prerequisites The system should already be running with someone signed in as the sales assistant. A record with the Transaction ID set to “1” must also be availabe in the database.

Steps 1. Select the row with the Transaction ID “1” from the table.2. Click “View” button.

Expected Result The fields on the screen must be populated with the data of the transaction of which the Transaction ID was used for the test.

Actual Result The fields on the screen were populated with the data of the transaction of which the Transaction ID was used for the test.

Status SUCCESSFUL

Screen Grab

University of Wales Institute, Cardiff. (BCO308)

52

Table 12. Test Result – Case ID #47

Case ID # 47

Test Class Testing Administration of Sales Transactions.

Test Case Test if a new transaction can be added with valid data.

Description As we have identified during the Use Case generation and requirements analysis, maintenance and manipulation of the data related to Transaction is important. All classes in this application use the same pattern of interfaces to manipulate themselves. Therefore this is not just a test on Transaction, but also on other classes that rely on the same set of operations.

Test Data Customer ID = “1”Payment Method = “Cash”Item Code = “2”Quantity = “100”Item Code = “3”Quantity = “5”

Prerequisites The system should already be running with someone signed in as the sales assistant.

Steps 1. Click “Transaction” button.2. Enter test data into proper input fields.3. Click “Complete” Button.4. Check the new Transaction from the Transactions Table.

Expected Result A new record with a new Transaction ID must be available in the Transaction table list.

Actual Result A new record with a new Transaction ID was available in the Transaction table list.

Status SUCCESSFUL

Screen Grab Prior to Completion.

University of Wales Institute, Cardiff. (BCO308)

53

Post Completion.

5.5 Test Result Summary.

Table 13. Test Result Summary. This is a summary of the results gained after conducting tests to

check the validity of the system developed.

CaseID#

Status Note

02 SUCCESSFUL N/A

03 SUCCESSFUL N/A

09 SUCCESSFUL N/A

17 SUCCESSFUL N/A

21 SUCCESSFUL N/A

34 SUCCESSFUL N/A

37 SUCCESSFUL N/A

43 SUCCESSFUL N/A

University of Wales Institute, Cardiff. (BCO308)

54

44 SUCCESSFUL N/A

47 SUCCESSFUL N/A

Summary

The system reached a 100% success rate on the tests conducted, which is simply impossible if it was tested more rigorously. Since these tests were conducted to demonstrate the level of understanding on how tests can be conducted, I will leave this result as it is.

5.6 Test Conclusion.

I laid out about 50 test cases, which is a mere fraction of the test cases that can be

identified for this software application. I broke them down to the most obvious 11

test classes, which once again could have been an extensive. If I were to at least

conduct all these 50 tests and insert the results in this document, the report would

have been as twice as heavier and bulkier. Therefore I made a judgment and picked

10 prominent test cases spread among the identified test classes to demonstrate my

knowledge and understanding of carrying out testing and putting them in a document

properly. The results turned out to be 100% successful which is not a possibility in a

real world application. In my opinion, the cases were the most obvious ones and

hence they were considerably weak. But once again I believe that this level is suffice

to convince my understanding of the process of software development.

University of Wales Institute, Cardiff. (BCO308)

55

6. Future Recommendations.

There are a number areas in which this software application can be improved. I have

left some of these to a future version because some of them would consume more

time and effort than what its worth. Some of them will require specific technical

knowledge in implementation process. I have give them as bellow.

1. Remove access level field from the sign-in form and automatically select the

appropriate level of access granted with the aid of the user account

information.

2. Allow the user to select the location of the database server instead of always

using the local server run on localhost.

3. Integrate better response dialog methods to indicate errors and system

anomalies rather than ignoring them.

4. Maintain a log of every event taken place within the system, thus allowing a

full traceback in case of an emergency.

5. Enforce a security policy for valid usernames and passwords rather than

allowing any username or password that is not empty to be used.

6. Refine the User Interface to give the system a more appealing look and feel as

well as the make the use of the system effective, such as auto focusing the

most appropriate input fields.

7. Only if deemed necessary, adapt a new color scheme for the application to

increase user satisfaction.

8. Provide a context sensitive help facility to aid users when ever they need

within the system itself.

9. More testing should be carried out to rigorously check for the errors in the

system.

10. Instead of ignoring most of the Exceptional situations, they must be handled in

a graceful manner.

University of Wales Institute, Cardiff. (BCO308)

56

7. Conclusion.

This module, as well as this assignment had been a wonderful learning experience. I

gained a lot of knowledge about the Unified Process, and how it can be adapted to a

small scale software development project. I found out that sometimes applying theory

in to practice as issues, and to over come them is to learn something new with the

experience. In conclusion, I have developed a software based Sales management

application for the Walmart Supermarket Chain. The system may need a lot of

refinements and tweaks to even remotely resemble an industry strength application.

Instead this was an attempt to understand and learn the concepts of Object Oriented

Programming and software development, and I think I succeeded in that regard.

University of Wales Institute, Cardiff. (BCO308)

57

8. References.

Japenga, R., Unknown. How to Write a Great Software Test Plan. [online] Available

at: <http://www.microtoolsinc.com/howstp.php> [Accessed 18 August 2011].

Oracle, Unknown. How to Use Tables. [online] Available at:

<http://download.oracle.com/javase/tutorial/uiswing/components/table.html>

[Accessed 10 August 2011].

Regular-Expressions, 2009. Regular Expression Basic Syntax Reference. [online]

Available at: <http://www.regular-expressions.info/reference.html> [Accessed 10

August 2011]

MySQL, Unknown. SQL Statement Syntax. [online] Available at:

<http://dev.mysql.com/doc/refman/5.5/en/sql-syntax.html> [Accessed 12 August

2011]

Robbins, J., Unknown. Test Case Format. [online] Available at:

<http://readyset.tigris.org/nonav/templates/test-case-format.html> [Accessed 11

August 2011]

Sommerville, I., 2008. The Structure of a Test Plan. [online] Available at:

<http://www.cs.st-

andrews.ac.uk/~ifs/Books/SE9/Web/Testing/TestPlanStructure.html> [Accessed 15

August 2011]

EDraw Soft, Unknown. UML Package Diagrams. [online] Available at:

<http://www.edrawsoft.com/uml-package.php> [Accessed 10 August 2011]

University of Wales Institute, Cardiff. (BCO308)

58

Agile Modeling, 2009. UML 2 Sequence Diagramming Guidelines. [online] Available

at: <http://www.agilemodeling.com/style/sequenceDiagram.htm> [Accessed 10

August 2011]

Agile Modeling, 2010. UML 2 Class Diagrams. [online] Available at:

<http://www.agilemodeling.com/artifacts/classDiagram.htm> [Accessed 10 August

2011]

Agile Modeling, 2009. UML 2 Use Case Diagramming Guidelines. [online] Available

at: <http://www.agilemodeling.com/style/useCaseDiagram.htm> [Accessed 10 August

2011]

Java2S, 2009. JDBC Transaction. [online] Available at:

<http://www.java2s.com/Code/Java/Database-SQL-JDBC/JDBCTransaction.htm>

[Accessed 15 August 2011]

JavaDB, 2011. Using a Database Transaction with JDBC. [online] Available at:

<http://www.javadb.com/using-database-transaction-with-jdbc> [Accessed 16 August

2011]

University of Wales Institute, Cardiff. (BCO308)