Report STQA Final
Report STQA Final
SUBMITTED BY
SUBMITTED BY
are bonafide students of this institute and the work have been carried out by them under the
supervision of Prof. Sushma A Shirke and it has been approved for the partial fulfilment of
the requirement of, Fourth-Year course on Software Testing and Quality Assurance of
Savitribai Phule Pune University.
Place: Pune
Date:
We are overwhelmed in all humbleness and gratefulness to acknowledge our depth to all those
who have helped us to put these ideas, well above the level of simplicity and helped us develop
this into something concrete. The outcome of this project required a lot of guidance and
assistance from many people, and we are extremely grateful and privileged to be provided with
it through all the helping entities.
We owe our deep gratefulness to our project guide Prof. Sushma A Shirke, who gave his
attention and took an interest on our project work and steered us in the right direction all along,
throughout our project work by providing all the necessary information for developing a good
system. We are extremely thankful to him for providing his fascinating support and guidance,
despite his busy schedule.
We are thankful and fortunate enough to get constant encouragement, support, and guidance
from all the teaching staff of the Computer Engineering Department which helped us in
successfully completing our project work. Also, we would like to extend our sincere esteem
to all our seniors for their timely and knowledgeable support without which completion of
this project would’ve been much harder to achieve.
VARSHIT REDDY
VINAY TIWARI
VIKASH PURI
1.2 Motivation
• The motivation behind this project is to create a user-friendly library management system suitable for small
libraries or educational purposes. This project demonstrates how Python can be integrated with Excel for
data storage and manipulation while emphasizing basic library functionalities.
• Objectives:
➢ To enable the addition of new books with unique identifiers and details.
➢ To allow users to view all available books and search for specific titles or authors.
➢ The project follows OOP principles, where each book is an object with attributes (title,
author, ID, etc.) and methods (add, delete, issue, return).
• Excel Data Management:
➢ Book data is stored and retrieved using the openpyxl library, which provides
functionality to read and write data in an Excel workbook.
• Automatic Account Number Generation:
• Exception Handling:
➢ The project uses exception handling to manage errors such as insufficient funds or
invalid.
Chapter 2 : Software Requirements Specification
2.1 Introduction
• The Software Requirements Specification (SRS) outlines the functional and non-functional requirements
for the Python-based Library Management System. This document serves as a reference for the
development, design, and implementation phases of the project.
• Delete Book :
➢ All Users can delete a book from the library by specifying its Book ID.
• Issue Book :
➢ Users can issue a book, updating its availability status in the library.
• Return Book :
➢ Users can return an issued book, restoring its availability in the library..
• Software Interface:
➢ Uses the openpyxl Python library to interact with an Excel file for reading and writing book data .
• Hardware Interface:
➢ Requires a system capable of running Python 3.x.
• Security:
➢ Basic user authentication may be implemented for sensitive operations to prevent unauthorized
access.
• Scalability:
➢ As the system relies on Excel for storage, its scalability is limited. Performance may degrade as the
number of books increases.
• Usability:
➢ The system should be easy to use, with a simple, intuitive command-line interface for navigating
library operations.
• Error Handling:
➢ The system should handle input errors, such as invalid books or incorrect books Ids , gracefully
without crashing.
Chapter 3 : Test Plan
3.1 Introduction
• The test plan provides a framework for testing the Python-based Library Management System. It includes
details about features to be tested, a taxonomy of potential bugs, test cases, and procedures for verifying
that the system meets its functional and non-functional requirements.
• Delete Book :
➢ Verify that the system allows users to delete a book and that the book is removed from the library
database
• Issue Book :
➢ Test that users can successfully issue a book, and that the availability count is updated correctly.
• Return Book:
➢ Ensure that the system allows users to return a book, and that the availability count is updated
accordingly
• View Books:
➢ Verify that users can view a list of all books in the library, displaying correct details (title, author,
Book ID, etc.).
3.5 Conclusion
• The test plan defines a structured approach to test the key features of the Python-based banking system. It
identifies critical operations, potential bugs, and testing strategies to ensure the system performs reliably,
securely, and as expected. By executing the outlined test cases, we ensure that the banking application
meets its functional and non-functional requirements, providing a stable user experience.
Chapter 4 : Unit Tests and Integration Tests
4.1 Unit Tests
Definition:
• Unit testing focuses on verifying individual components or functions in isolation to ensure they work as
intended. In the context of the Python-based Library Management System, unit tests are written to check
the functionality of core methods such as adding a book, deleting a book, issuing a book, and viewing all
books. The goal is to test these individual units in isolation from the rest of the system.
• Early Detection of Bugs: Unit tests allow developers to catch issues in individual functions or methods
early in the development process, minimizing the chances of defects making their way into the integrated
system.
• Simplified Debugging: Since unit tests focus on small, independent components, it becomes easier to
identify and fix errors when a test fails.
• Code Quality: By ensuring that each unit behaves correctly, unit testing promotes higher code quality and
reliability. Well-tested units are less likely to introduce bugs when changes are made in the future.
Definition:
• Integration testing focuses on verifying how different components or modules work together as a group. It
ensures that combined parts of the system function as expected when integrated. In the case of the Python
Library Management System, integration testing would check whether components like book management
(add, delete, issue, and return) and Excel file handling work together harmoniously to achieve end-to-end
functionality, such as adding a book, issuing it, and saving the library’s state to the Excel sheet.
• Detects Issues in Interaction: While individual units may work correctly, integration testing uncovers
problems that arise when they interact with each other, such as issues with data flow between components.
• Ensures Data Consistency: Integration tests can verify that data is handled consistently across
components, ensuring that operations like issuing and returning books persist correctly in the Excel sheet.
• End-to-End Verification: Integration testing provides confidence that the system performs all required
actions correctly from start to finish, simulating real user scenarios.
• Purpose:
o setUp: Prepares the test environment by creating a temporary Excel file
(test_library.xlsx) to simulate the library database.
o tearDown: Cleans up by deleting this temporary file after each test to ensure no residual data
impacts other tests.
• Outcome: Ensures that each test starts with a fresh, consistent environment, which is crucial for accurate
and isolated test results.
• Purpose: Ensures the return functionality updates the book’s status back to Available.
• What it Verifies:
o Checks that the book’s Issued status changes to No and the borrower’s details are cleared upon return.
• Expected Outcome: The book entry should no longer reflect it as issued, with cleared borrower details.
4. Return a book :
5. Stream lit Application :
• Account Creation and Data Handling: The system accurately creates new books and generates unique
IDs, ensuring that all relevant details (title, author, year, etc.) are correctly saved in the Excel file.
• Book Operations: Functions for adding, viewing, deleting, issuing, and returning books are correctly
implemented. Unit tests confirmed that each function updates the Excel data file as expected.
• Error Handling: Exception handling was effectively tested, covering cases such as attempting to issue an
already issued book or deleting a non-existent book. All such cases raised appropriate and informative error
messages, improving system usability and reliability.
• Data Persistence: The system accurately reads and writes data to the Excel file, ensuring data is stored
correctly between sessions.
• Command-Line Interface: The system’s command-line interface was verified to be user-friendly, with
clear prompts and feedback messages, making it simple to navigate for the end-user.
• Functional Accuracy: All core functionalities, such as book management and status updates (issued,
returned, deleted), were executed without errors.
• Reliability: The unit tests highlighted the system’s reliability in performing consistent and accurate book
management operations.
• Efficiency: Operations such as adding, viewing, and deleting books performed efficiently. The system
handled interactions with the Excel file smoothly, with no observed delays for the current dataset size.
• Data Management: The use of Excel for data storage allowed for easy data manipulation and persistence
across sessions.
• User Experience: With a simple command-line interface and clear feedback, the system is intuitive and
easy to use.
• Code Quality and Maintainability: The project employs modular, object-oriented programming
principles, making it easy to maintain and extend.
Limitations:
• Scalability: As the system relies on Excel for storage, performance may degrade with very large datasets.
For future versions, a relational database like SQLite or MySQL could improve scalability.
• Security: The system does not include advanced security features for data protection, such as encryption.
This is a limitation if used in a real-world environment where data security is critical.
• Database Migration: Transitioning from Excel to a database management system (DBMS) would improve
scalability, data integrity, and access speed.
• Enhanced User Interface: Integrating a graphical user interface (GUI) would make the system more user-
friendly and visually intuitive.
• Advanced Search and Filter Options: Implementing search filters by author, year, or title could improve
usability, especially as the library grows.
• Security Enhancements: Adding features like encryption, access controls, and audit logging could make
the system suitable for handling sensitive or private information.
5.5 Conclusion
In conclusion, the Library Management System has proven to be a reliable and efficient tool for basic book
management. It successfully meets the requirements for a small-scale library environment, enabling users to add,
issue, and manage books with minimal setup. While there are areas for improvement, particularly in terms of
scalability and security, the system provides a solid foundation for library management and could be extended with
additional features for enhanced functionality.
Through this testing process, we validated the importance of unit and integration testing in ensuring system
functionality and reliability. The tests served as valuable tools for identifying both strengths and potential areas of
refinement in the Library Management System. Moving forward, the recommendations listed here could guide
future development efforts to expand the system's capabilities and enhance its performance.