FinCheck File Handling for Transaction Data Processing

Business Scenario

After successfully understanding Reusable Methods and Modular Validation Logic inside Java Programs, your manager now assigns you responsibility for handling Transaction Datasets using Files inside the FinCheck Banking System.

Inside Banking Applications, large amounts of Transaction Data are stored inside :-
CSV Files
Text Files

Validation Reports
Transaction Logs

QA Testers regularly process these files during :-
Transaction Validation
Reconciliation Testing
Data Verification
Report Generation
Audit Processing

Recently, testers reported that manually validating large Transaction Datasets is becoming difficult and time-consuming.
The testing team now needs to understand how Java File Handling helps process Transaction Datasets efficiently.

Before starting testing activities, your manager clearly says :-

“”A QA Tester must understand how Transaction Datasets are processed using File Handling Operations inside Automation Programs. “”

Your responsibility is to understand :-
How File Handling Works in Java
How Transaction Datasets are Read from Files
How Validation Results are Written into Files
How Large Transaction Datasets are Processed

How Validation Logs are Stored

Pre-Lab Preparation

  • Read data from CSV/text files
  • Write results to output files
  • Process large datasets
  • Store validation logs
git pull origin branchName

Git Pull

Task 1: Understand File Handling in Java

Understand File Handling

1

What is File Handling?

File handling means reading, writing, and processing data stored inside files using Java programs.

QA testers use file handling to :-

  • process transaction datasets

  • store validation results

  • analyze banking records

  • manage large data files

Inside real banking projects, transaction data is not always directly available inside application screens.

Many times QA testers work with :-

  • transaction reports

  • reconciliation files

  • audit datasets

  • daily transaction exports

These files are usually stored in :-

  • CSV format

  • TXT format

  • Excel reports

QA testers use Java file handling to :-

  • read transaction records automatically

  • validate banking datasets

  • store testing results

  • generate execution logs

  • process large financial datasets

Types of File Handling

  • File Reading

     Used to read transaction datasets.

  • File Writing

     Used to store validation results.

  • Log File Handling

     Used to store execution logs.

How File Handling Works

  • Java program connects with file.

  • System reads or writes file content.

  • Tester processes data using Java logic.

Real Life Example

FinCheck QA team reads transaction dataset from CSV file during reconciliation testing.

Activity

  • Import Java File class

  • Create file object

  • Provide file path

  • Execute Java program

  • Observe file handling initialization

Task 2: Read Transaction Data from File

Understand File Reading 

1

What is File Reading?

File reading means retrieving stored data from file into Java program for processing and validation.

QA testers use file reading to :-

  • process transaction datasets

  • analyze customer records

  • validate banking data

  • read reconciliation reports

  • process validation logs

Types of File Reading

  • CSV File Reading

Used to process structured transaction datasets.

  • TXT File Reading

Used to process validation logs and execution reports.

How File Reading Works

  • Java program opens file.

  • System reads data line by line.

  • Program processes records automatically.

Real Life Example

Tester reads banking transaction datasets from CSV files and validation reports from TXT files during reconciliation testing.

Understanding CSV Files in Banking Systems

2

What is CSV File?

CSV stands for Comma Separated Values.

CSV files store data in row and column format separated using commas.

Real Life Banking CSV Example

transaction_id,account_no,transaction_type,amount

TXN22021,300924,Credit,5000

TXN22260,300389,Debit,-2500

TXN21610,301929,Credit,8000

CALL METHOD WITH ARGUMENT

public static void main(String[] args) {
finCheck_Login("argument 1 for username", "argument 2 for password");
}

Activity

  • Create reusable customer validation method

  • Create customer name parameter inside method  

  • Pass customer name during method call

  • Print customer validation message

  • Call method multiple times using different customer names

  • Execute Java program

  • Observe parameter-based method execution

Task 3: Understand Access Specifiers

Understand Public and Private  

1

What are Access Specifiers?

Access specifiers control the visibility and accessibility of variables and methods inside Java programs.

They help secure sensitive banking information.

Banking applications contain sensitive data like :-

  • account balance

  • PIN number

  • customer details

  • transaction amount

Private access helps protect sensitive information from unauthorized access.

Types of Access Specifier

  • Public

Accessible from anywhere

  • Private

Accessible only inside same class  

Syntax

PUBLIC ACCESS SPECIFIER IN VARIABLE AND METHOD

public dataType variableName = value;
public void methodName() { // code }

PRIVATE ACCESS SPECIFIER IN VARIABLE AND METHOD

private dataType variableName = value;
private void methodName() { // code }

Activity

  • Create private variable

  • Access variable using public method

  • Execute Java program

  • Observe controlled data access

Task 4: Understand Getter and Setter Methods

Understand Encapsulation

1

What is Encapsulation?

Encapsulation means protecting variables using private access and accessing them using public getter and setter methods.

Encapsulation improves :-

  • data security

  • controlled access

  • code maintainability

  • modular programming

Types of Encapsulation Methods

  • Getter Methods

Getter methods are used to retrieve private variable values.

Purpose of Getter Methods :-

  1. Access private data safely

  2. Read variable values

  3. Maintain data security

  • Setter Methods

Setter methods are used to update private variable values safely.

Purpose of Setter Methods  :-

  1. Modify private data safely

  2. Control data updates

  • code maintainability

  • modular programming

Types of Encapsulation Methods

  • Getter Methods

Getter methods are used to retrieve private variable values.

Purpose of Getter Methods :-

  1. Access private data safely

  2. Read variable values

  3. Maintain data security

  • Setter Methods

Setter methods are used to update private variable values safely.

Purpose of Setter Methods  :-

1. Modify private data safely

2. Control data updates

3. Apply validations before updating values

Real Life Example

Tester retrieves account balance using getter method and updates customer details using setter method.

Syntax

ENCAPSULATION — PRIVATE VARIABLE

private dataType variableName = value;

GETTER METHOD

public dataType methodName() {
return variableName;
}

SETTER METHOD

public void methodName (dataType variableName) {
this.variableName = variableName;
}

Activity

1. Retrieve Account Balance using Getter Method

  • Create private balance variable

  • Assign balance value

  • Create getter method

  • Return balance value using getter method

  • Access getter method using object

  • Print account balance

  • Execute Java program

  • Observe secure data retrieval process

2. Customer Name using Setter Method

  • Create private customer name variable

  • Create setter method

  • Pass customer name into setter method

  • Update customer name using setter method

  • Create getter method

  • Print updated customer name

  • Execute Java program

  • Observe controlled data update process

Task 5: Modularize Validation Logic

Understand Modular Validation

1

What is Modular Validation Logic?

Modular validation means separating validation logic into reusable methods instead of writing everything inside main method.

This helps testers :-

  • simplify programs

  • reuse validation logic

  • manage large programs easily

  • improve readability

How Modular Validation Works

  • Validation logic gets separated into methods.

  • Main method calls reusable validation methods.

  • Each method handles specific operation.

Real Life Example

FinCheck QA team creates separate reusable validation method for validating transaction amounts.

Activity

  • Create reusable transaction validation method

  • Pass transaction amount parameter

  • Apply validation condition

  • Print valid or invalid status

  • Call validation method multiple times

  • Execute Java program

  • Observe modular validation execution

Task 6: Improve Code Reusability

Understand Code Reusability

1

What is Code Reusability?

Code reusability means using the same method multiple times instead of rewriting the same logic repeatedly.

Reusable code helps testers :-

  • reduce duplicate code

  • improve maintenance

  • simplify automation programs

How Reusability Works

  • Reusable method gets created once.

  • Same method executes multiple times with different values.

Real Life Example

Tester uses same validation method to validate multiple banking transactions automatically.

Activity

  • Create reusable transaction validation method

  • Pass transaction ID and transaction amount parameters

  • Print transaction details

  • Apply validation condition on transaction amount

  • Print transaction status

  • Call same method multiple times

  • Execute Java program

  • Observe reusable modular validation flow

 

Good Job!!

In this lab, you learned about Java File Handling, reading Transaction Datasets, writing Validation Results, and processing Bulk Transaction Data.

You also practiced creating File Objects, reading Text Files, generating Validation Reports, and handling File-Based Processing using loops.

By completing this lab, you now understand how QA Testers Process Banking Datasets, Generate Validation Logs, and Manage Automation-Related File Handling Activities.

Checkpoint

Next-Lab Preparation

   Git Push

git push origin branchName
  • Implement try-catch blocks

  • Handle runtime errors

  • Log errors into files

  • Ensure stable execution