Você está na página 1de 45

Software Quality Assurance

Banking System

Ruchika Bajaj Taranpreet Kaur

Requirement Analysis

Introduction

Designed to simplify bank account keeping Implemented with the objective to computerize the handbook account maintenance system. Aims at reducing the workforce, management and clerical task. It increases the reliability and portability of the database storage.

Purpose
The current manual system includes the following problem:

Account maintenance as paperwork is a cumbersome task. Each transaction needs access to large database making transaction slow and records difficult to maintain. Generating monthly interest and adding it to each account manually is very difficult. Modifying the details of customer is a large process and closing an account and reissuing the account number may lead to chaos.

Purpose (cont..)

No backup can be maintained as the data is large and duplication of data consumes lot of time. Large work force required to do small clerical tasks. Analysis on data and access to database tedious. Maintaining year books requires large storage area.

Overview
New Account

Display Account Details Banking System

Transaction

Monthly report

Edit Account

Functional Requirements

User can create a new account where account number will be automatically generated. User can modify the account details User can delete an account User can view account details User can deposit or withdraw money User can view monthly report with monthly interest added to each users account

Representation Of Product Functions


Date Account Number Open New Account Name Address Name of Verifying Person Initial Balance

Representation Of Product Functions


Date Account Number Display Account Details Name Address Current Balance Monthly Report

Representation Of Product Functions


Deposit

Perform Transaction

Amount

Mode of Payment (cash/cheque)

Withdrawal

Assumptions and Validation Checks

The account numbers should be generated automatically. While opening account, name and address should not be left blank. Initial deposit should not be less than Rs. 1000. Transaction date should be the current date.

Non-functional Requirements

Usability

Has user friendly interface Can run both on Windows and Linux platform

Portability

Reliability

Facility of transaction rollback provided and maintaining backup

Security

The system is not secure as it doesn't performs any authentication checks

Design Phase

Entity Relationship Diagram (ERD)


Type Acc. No. Opening Date

BANK

maintain

ACCOUNT

Balance Verifying Person

needs

opens

stored in

CUSTOMER

performs

TRANSACTION

Mode

Amount Name Address Date Type

Context Level Diagram


User
Perform transactions

Accounts

Opens account

maintains

Adds interest

Inquires account status

Banking System

Control (management)

Generates reports Command + data

Monthly Report Display

Risk Analysis

Steps To Follow
Identify the risks Identify the risks Analyse the risks Analyse the risks Evaluate the risks Evaluate the risks Treat the risks Treat the risks

Risk Evaluation
Extreme Almost certain Severe Very high Moderate Severe High Low Major Negligible Moderate

Likely Moderate Unlikely Rare

Severe High Major Significant

High Major Significant Moderate

Major Significant Moderate Low

Significant Moderate Low Very low

Moderate Low Very low Very Low

Risk Projection Table


Risk Severity Probability Risk Level
High

Action

Security breach

Extreme

Moderate

High level authentication and checking procedures to be implemented Ensure atomicity and rollback of transactions Can be deferred

Incomplete Transaction

Extreme

Likely

Severe

Large number of concurrent users than planned

Moderate

Rare

Low

Testing
Black Box Testing

Equivalence Partitioning
Transaction (Date)
Test case Input (Day) Input (Month) Input (Year) Partition tested Expected Output 1 -1 5 2009 D<1 Error Message 2 12 5 2009 0 < D < 32 Valid 3 45 5 2009 D > 31 Error Message 4 14 0 2009 M<1 Error Message 5 14 11 2009 0 < M <13 Valid

Equivalence Partitioning
Transaction (Date) (Cont)
Test case Input (Day) Input (Month) Input (Year) Partition tested Expected Output 6 14 15 2009 M > 12 Error Message 7 14 5 2008 Y < 2009 Error Message 8 14 5 2009 Y = 2009 Valid 9 14 5 2011 Y > 2009 Error Message 10 a b c alphabets Error Message

Equivalence Partitioning
Transaction (Date) (Cont)
Test case Input (Day) Input (Month) Input (Year) Partition tested Expected Output 11 14.5 15.5 2009.5 real number Error Message 12 { ; # special characters Error Message 13 null null null null Error Message

Equivalence Partitioning
Transaction (Type)
Test case Input (Type) Partition tested Expected Output 1 D deposit Ask for mode 2 d deposit Ask for mode 3 W withdrawal 4 w withdrawal 5 e Any other alphabet

Ask for modeAsk for mode Error Message

Equivalence Partitioning
Transaction (Type) (Cont)
Test case Input (Type) Partition tested Expected Output 6 % special character Error Message 7 14 integer Error Message 8 35.6 9 Daf 10 null null Error Message

real number More than 1 characters Error Message Error Message

Equivalence Partitioning
Transaction (Mode)
Test case Input (Mode) Partition tested Expected Output 1 C cash Ask for amount 2 c cash Ask for amount 3 Q cheque Ask for amount 4 q cheque Ask for amount 5 e Any other alphabet Error Message

Equivalence Partitioning
Transaction (Mode) (Cont)
Test case Input (Mode) Partition tested Expected Output 6 % special character Error Message 7 14 integer Error Message 8 35.6 9 Daf 10 null null Error Message

real number More than 1 characters Error Message Error Message

Equivalence Partitioning
Transaction (Amount)
Test case Input (Amount) Input (Type) Partition tested 1 9 d A < 10 2 5000 d 9 <A< 50001 3 60000 d A > 50000 4 9 w A < 10 5 70000 w Greater than minimum Error Message

Expected Output

Error Message

Make changes in account

Error Message

Error Message

Equivalence Partitioning
Transaction (Amount)(Cont..)
Test case Input (Amount) Input (Type) 6 1000.50 d or w 7 a d or w alphabet Error Message 8 $ d or w special character Error Message 9 null d or w null Error Message

Partition tested real number Expected Output Error Message

Equivalence Partitioning
Monthly Report (Month)
Test case Input (Month) Partition tested Expected Output 1 -1 M<1 Error Message 2 6 0 < M < 13 Valid 3 15 M > 12 Error Message 4 9.5 real numbers Error Message 5 g alphabets Error Message

Equivalence Partitioning
Monthly Report (Month) (Cont..)
Test case Input (Month) Partition tested Expected Output 6 ^ special character Error Message 7 Null Null Error Message

Cause Effect Graph

For opening an account

Causes: C1: Valid name is entered C2: Valid address is entered C3: Initial amount deposited > Rs.1000 C4: Verifying person present Effects: E1: New account is opened E2: Account not opened

Cause Effect Graph


C1 E1 C2 E2

C3

C4

E1 = C1 ^ C2 ^ C3 ^ C4 E2 = ~C1 V ~C2 V ~C3 V ~C4

Decision Table
C1 T
T T T T T T T F F F F F F F F

C2 T C3 T

C4 T

E1 T E2 F

Test Cases
Name Ruchika Taranpreet Rajni Simmi Manisha Barkha Reena Vashita Null 1234 #**** -122 0000 99.345 ,,,!!!!! null Address F-59, Delhi G-45, Delhi Kohat, Delhi A12,Pitampura null 123456.788 #$****** null 36B, Noida K12, delhi F-44, preetvhr L12, gurgaon null 00000000000 ######### aaaaaaaaaaaa Amount 3100.00 2955.00 500.00 Null 12555.00 2222.00 Babc ,,*()! 9999.00 6565.00 Null 0000 12345.00 54321.00 Abcdef ##### Verifying Person Present Not present Present Not present Present Not present Present Not present Present Not present Present Not present Present Not present Present Not present Account Status Opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened Not opened

Testing
White Box Testing

White Box Testing


Statement and Branch Coverage Linear Code Sequence and Jump (LCSAJ testing)

Source Code
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

void display_account(void) { statements if(t_accno==0) return; clrscr(); if(!found_account_ini(t_accno)) { statements return; } box_for_display(t_accno); while(fread(&acc,sizeof(acc),1,fb)>0) { if(acc.accno==t_accno) { statements if(acc.transaction== 'D'||acc.transaction=='d') { statements }

22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.

else { statements } statements if(row>23) { statements } } } statements for(j=1;j<=79;j++) printf("="); statements if(!flag) { statements } }

A B D E F G H I J K L N O P R S T U C W V Q M

FLOW GRAPH Statement coverage 1. A-B-C : 3/23 = 13.04% 2. A-B-D-E-F-C : 6/23 = 26.08% 3. A-B-D-E-G-H-R-S-T-U-V-C: 12/23 = 52.17%

Branch coverage 1. A-B-C : 1/18 = 5.5% 2. A-B-D-E-F-C : 2/18 = 11.11% 3. A-B-D-E-G-H-R-S-T-U-V-C: 7/18 = 38.88%

Source Code

Source Code

LCSAJ Testing
Control Flow 16 16 19 19 26 26 28 28 70 43 43 61 61 73 74 73 87 87 17 18 20 25 27 71 29 70 26 44 50 62 69 74 73 75 88 93 Jump No Yes No Yes No Yes No Yes Yes No Yes No Yes No Yes Yes No Yes Required Condition Account number == 0 Account number != 0 Account Found Account not found Data exists in file No data present in file Account number matches with the entered account no. for transaction Account no. not matched with the entered account no. for transaction Always executed Transaction==D || Transaction == d Transaction!=D || Transaction != d Row>23 Row<=23 J<=79 J>79 Always executed Flag == flase Flag == true

LCSAJ Testing

Startpoints: 2,18,25,26,50,69,70,71,73,75,93 Triplets:


18,19,25 18,26,71 18,28,70 18,70,26 18,43,50 18,61,69 18,74,73 18,73,75 18,87,93 25,26,71 25,28,70 25,70,26 25,43,50 25,61,69 25,74,73 25,73,75 25,87,93 26,26,71 26,28,70 26,70,26 26,43,50 26,61,69 26,74,73 26,73,75 26,87,93 50,61,69 50,74,73 50,73,75 50,87,93

2,16,18 2,19,25 . 2,26,71 2,28,70 2,70,26 2,43,50 2,61,69 2,74,73 2,73,75 2,87,93

Thank You!!

Você também pode gostar