SRS (1) Merged

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

TE OF ENGINEER

ITU ING
NST AN
I D
G H

TE
IN

CH
HS

NO
AT

LOG
UMA N

SESSION 2022 – 2023

Y
Veer Bahadur Singh Purvanchal University, Jaunpur

LAB FILE
ON
SOFTWARE ENGINEERING

Submitted To: - Submitted By: -


Mrs. Deepti Pandey Anamika Singh (205410)
Mr. Pravin Kumar Pandey Tripti Singh (205471)
(Assistant Professors) I.T. (3rd year)
(Department of C.S.E) 6th Semester
CANDIDATE’S DECLARATION

We Anamika Singh (205410), Tripti Singh (205471) are the students of B.Tech.
(Information Technology) at Uma Nath Singh Institute of Engineering and
Technology, VBS Purvanchal University, Jaunpur, declare that the work presented
in this Software Requirement Specification titled “RESUME BUILDER”, submitted
to Department of Information Technology for the award of Bachelor of Technology.
All the work done in this project is entirely my own except for the reference quoted. To
the bet of my knowledge, this work has not been submitted to any other university or
Institution for award of any degree.

Date……………
Place: UNSIET, Jaunpur Student’s Name
Anamika Singh (205410)
Tripti Singh (205417)
(B. Tech. I.T.)

i
ACKNOWLEDGEMENT

A student of a university will have to write the acknowledgement for their software
requirement specification stating that the submission is done and is not copied. The
acknowledgement sample for the university project is mostly attached after the
dedication page thanking all the faculty members of the department, HOD, the Dean
and the mentor.

We would like to express my profound gratitude to Mrs. Deepti Pandey, Mr. Pravin
Kumar Panday (Asst. Professor of C.S.E. & I.T.), and Dr. Sanjeev Gangwar, Head
of CSE & IT department, and Dr. B.B Tiwari Dean of faculty of engineering for their
contributions to the completion of Software Requirement Specification titled
RESUME BUILDER.

ii
TABLE OF CONTENTS

S. No. CONTENT PAGE NO.

1. Candidate Declaration i
2. Acknowledgement ii
3. Table of Contents iii – iv
4. List of Figures v
5. Chapter 1: Introduction 1–2
1.1 Introduction
1.2 Project Overview
1.3 Scope
6. Chapter 2: Software Requirement Analysis 3 – 14
2.1 Software Development Life Cycle Model
2.2 E- R Diagram
2.3 Data Flow Diagram
7. Chapter 3: Feasibility Study 15 – 16
3.1 Market Research
3.2 Technical Feasibility
3.3 Financial Feasibility
3.4 Legal and Ethical Feasibility
3.5 User Experience and Interface
3.6 Monetization Strategy
3.7 Marketing and Promotion
3.8 Scalability and Future Growth
3.9 Risk Assessment
8. Chapter 4: System Design 17 – 18
4.1 User Interface
4.2 Backend Server
4.3 Database
4.4 Authentication and User Management
4.5 Template Management
4.6 Resume Generation
4.7 Versioning and Editing
iii
4.8 Export and Sharing
4.9 Performance and Scalability
4.10 Security
4.11 Error Handling and Logging
4.12 Testing
4.13 Monitoring and Analytics
4.14 Backup and Recovery

9. Chapter 5: Implementation 19
10. Chapter 6: System Testing 20-29
6.1 White-Box Testing
6.2 Black Box Testing
6.3 Unit Testing
6.4 Integration Testing
6.5 Verification and Validation
11. Conclusion 30-31
Project Overview
Functional Requirements
Non- Functional Requirement
Use Cases and User Scenarios
Constraints and Assumptions
Dependencies
12. References 32

iv
LIST OF FIGURES

FIGURE FIGURE’S NAME PAGE NO.

FIG.2.1 Waterfall Model 5

FIG.2.2 Prototype Modal 8

FIG.2.3 Admin E-R Diagram 9

FIG.2.4 Registration E-R Diagram 9

FIG.2.5 Personal E-R Diagram 10

FIG.2.6 Skills E-R Diagram 10

FIG.2.7 Education E-R Diagram 11

FIG.2.8 0-Level DFD 13

FIG.2.9 1-Level DFD 13

FIG.2.10 2-Level DFD 14

FIG.5.1 Activity Diagram 19

v
CHAPTER 1
INTRODUCTION

1.1 INTRODUCTION

Being a student in college is one of the most stressful periods in a young adult’s life. It
is the time in which individuals determine their career paths, all while finding their
independence and fighting to be successful students and employees. In order to do so,
students must showcase their talents, experiences, and skills on a single sheet of paper:
the resume. Resumes represent who students are, not only as employees, but as
teammates; thus, there is a lot of pressure on students to create flawless portfolios.
Many students do not have practical knowledge in the process of creating a resume. For
those who do, it is still difficult to describe one’s achievements and to determine which
items will look most appealing to modern day employers. Hence, there is a necessity
for a solution that aids students in creating effective resumes that will help them achieve
their goals and set them on the right path for a successful post-graduate career.

Our solution is a free web application that generates creative and personalized
infographic resumes with little effort.

1.2 PROJECT OVERVIEW

Online Resume Builder is a platform that allows users to create professional and
visually appealing resumes online. The project is designed to simplify the resume-
building process, reduce errors, and help job seekers to stand out in a competitive job
market. It allows users to create high-quality resumes quickly and easily.

The project is divided into modules, they are


1.2.1 User registration
This module is used for new users. Already existing users can directly access the resume
preparation, but in the case of new users they have to use the user registration module.
1.2.2 Resume preparation
This module is used by the existing and registered users to prepare their resumes
in proper format and retrieve the resume details.

1
1.2.3 Resume types
This module is used by the existing users to directly print the give format of resume.

1.3 SCOPE
We describe what features are in the scope of the software and what are not in the scope
of the software to be developed.
• Create different system users and assign different roles with related
permissions.
• Manage all the account details such as user name, phone numbers, address,
websites, email addresses of all the user from one central location.
• Track all the users and their contact details.
• Confirmation of end user identity and will verify which users are authorized
to receive support.
• Maintain history of each user and their related information.
• User can select the format of their resume from the given templates.
• User can update or edit their resume h. Users can take print of their resume
• Interface for filling up the information like Skill sets, Training details.
• Users can save their resumes in pdf format.

2
CHAPTER 2
SOFTWARE REQUIREMENT ANALYSIS

System models are used to gain precision and to avoid the ambiguities often found
in thenatural language system descriptions modeling techniques used in the system an
alysis avoids ambiguity by using precise modelling constructors and process
descriptions. They also assist analysts to define precisely the requirement of the new
system. Software tools that help analyst in their work now often support system
analysis. These tolls are the models developed during analysis and some convert these
models to trail designs.

This phase is detailed appraisal of the existing system. The appraisal includes finding
how the system works and what it does. It also includes system’s problems and what
the end-users required for any new or changed system. After this phase, analyst should
be familiar with both the detailed operation of the system and what is required of the
new system.

Analysts must spend considerable time in examining components of exiting system.


Analysis has to find out what information is sent between the end – users and the staff.

One of the most important factors in system analysis is to understand the system and
its problems. A good understanding of the system enables designers to identify and
correct problems and suggest realistic solutions for them. It also helps them to develop
solutions that satisfy all users and One of the most important factors in system analysis
is to understand the system and its problems. A good understanding of the system
enables designers to identify and correct problems and suggest realistic solutions for
them. It also helps them to develop solutions that satisfy all users and thus make the
new system acceptable in an organization. System users are the first information source
investigated by the analysts.

Form users it is to find out the existing system activities and to develop the user’s
objectives and requirements. a system analyst must spend a lot of time talking to users
and finding how they use the system, any problem they find with the system and what
they expect from it.

3
2.1 SOFTWARE DEVELOPMENT LIFE CYCLE MODEL
The sequence of events in the development of an information system (application),
which requires mutual effort on the part of user and technical staff is called Software
Development Life Cycle.

2.1.1 Waterfall Model

Waterfall approach was first SDLC Model to be used widely in Software Engineering
to ensure success of the project. In "The Waterfall" approach, the whole process of
software development is divided into separate phases.

2.1.1.1 Requirements Gathering and Analysis

Begin by understanding the requirements for your resume builder application. List
down the essential features, such as personal information, education, work experience,
skills, resume templates, preview, and download options.
Talk to potential users (students, job seekers, etc.) to gather their expectations and
preferences.
2.1.1.2 System Design

Based on the gathered requirements, design the user interface (UI) of the resume
builder. Create mock-ups or wireframes to visualize the layout and flow of the
application.
Decide on the resume sections and their order in the builder.
2.1.1.3 Implementation (Coding)

Start coding the frontend of the resume builder. Use HTML, CSS, and JavaScript, or
any chosen frontend framework (e.g., React, Angular, Vue.js) to create the user
interface and interactivity.
Implement the logic to handle user input and store the resume data in a structured
format (e.g., JSON).
2.1.1.4 Testing

Conduct thorough testing to ensure the application functions as expected and is free
from bugs and errors.
Test each feature of the resume builder, including resume data input, template
selection, preview, and download options.

4
2.1.1.5 Deployment (Installation)
Once the testing phase is complete, deploy the resume builder application to a web
server or hosting platform so that users can access it.

2.1.1.6 Maintenance

After deployment, monitor the application for any issues or bugs reported by users.
Consider adding new features or enhancements based on user feedback and
requirements.

Requirement
Analysis

System
Design

Implementation

Testing

Deployment

Maintenance

Fig. 2.1 Waterfall Model

2.1.2 Prototype Model

The prototyping model is a systems development method in which a prototype is built,


tested and then reworked as necessary until an acceptable outcome is achieved from
which the complete system or product can be developed.

5
2.1.2.1 Requirements Gathering and Analysis:

Understand the requirements for the resume builder application. List down the essential
features, such as personal information, education, work experience, skills, resume
templates, preview, and download options.
Talk to potential users (students, job seekers, etc.) to gather their expectations and
preferences.
2.1.2.2 Prototype Development

Start with developing a basic, functional prototype of the resume builder. Focus on
implementing the core features, such as adding personal information and education
details.
Keep the design simple initially to quickly gather feedback and validate the concept.
2.1.2.3 Evaluation and Feedback

Present the prototype to potential users and stakeholders for evaluation and feedback.
Encourage them to use the prototype and gather their input on the user experience and
any additional features they would like to see.

2.1.2.4 Refinement

Based on the feedback received, refine and improve the prototype. Incorporate the
suggested changes and additional features to enhance the user experience.
Iterate through this process until the prototype meets the expectations of the users.
2.1.2.5 Iteration

Repeat the prototyping, evaluation, and refinement process for each resume section
(e.g., work experience, skills) and resume template.
Continue to gather feedback and make improvements based on user preferences.
2.1.2.6 Final Product Development

After several iterations and refinements, finalize the prototype based on the feedback
received. Implement the remaining features and polish the user interface for a more
professional look.

6
2.1.2.7 Testing

Conduct thorough testing to ensure the application functions as expected and is free
from bugs and errors. Test each resume section, template, and download option to
verify their correctness and usability.

2.1.2.8 Deployment (Installation)

Once the testing phase is complete, deploy the resume builder application to a web
server or hosting platform so that users can access it.

2.1.2.9 Maintenance

After deployment, monitor the application for any issues or bugs reported by users.
Consider adding new features or enhancements based on ongoing user feedback and
requirements.

7
Requirements Gathering
and Analysis

Quick Design

Prototype
Refinement
Development

Evaluation and Feedback

Iteration

Final Product Development

Testing

Deployment (Installation)

Maintenance

Fig.2.2 Prototype Model

8
2.2 E – R DIAGRAM
The Entity-Relationship Diagram depicts a relationship between data objects. The ERD
is the notation that is used to conduct the data modelling activity. The attributes of each
data object noted in the ERD can be described using a data object description.
At first a set of primary components are identified for ERD i.e., Data objects, attributes
relationships and various type indicators. Data objects are represented by labelled
rectangles. Relationships are indicated with labelled lines connecting objects.
Connectors between data objects and relationships are established using a variety of
special symbols that indicate cardinality and modality. ERD notation also provides a
mechanism that represents the association between objects.
Data modelling and the entity- relationship diagram provides the analyst with a concise
notation for examining data within the context of data processing application.
The ER Diagram for the overall proposed system is given in the figures

Admin

Fig. 2.3 Admin E-R diagram

User ID Password ID

REG

Dob
Regno

Eid
Fname
Lname Sex

Fig 2.4 Registration E-R Diagram

9
Personal Details

Regno hobbies

Name
Lang

Nationality
Fname

Addr
Dob

obj
Sex
religion

Eid

contno

Fig 2.5 Personal E-R Diagram

Regno Sql

Pack

Pskils

Web
Skills

Os
pdesc

Fig 2.6 Skills E-R Diagram


Plang
Dbms

10
Tper

Rid
Tyr

Mq

Tu

Myr
Tq

Educational
Mper
Iper

Uq Iyer

Iu
Uu
Iq

Uyr
Uper

Ptitle Pdes

Fig 2.7 Education E-R Diagram

11
2.3 DATA FLOW DIAGRAM
The data flow diagram (DFD) is one the most important modelling tools. It is used to
model the system components. These components are the system process, the data used
by the process, an external entity that interacts with the system and the information
flows in the system.
DFD shows how the information moves through the system and how it is modified by
a series of transformations. It is a graphical technique that depicts information flow and
those transformations that are applied as data moves from input to output.
DFD is also known as bubble chart. A DFD may be used to represent a system at any
level of abstraction. DFD s may be partitioned into levels that represent increasing
information flow and functional details.
A level 0 DFD, also called as the context diagram, represents the entire system as a
single module with input and output data indicated by incoming and outgoing arrows
respectively. Additional process and information flow paths are represented, as the level
0 DFD is partitioned to reveal more details.
A level 1 DFD, also called as top-level DFD, represent the system with major modules
and data stores. The other levels will show each module in the top-level DFD in a more
detailed fashion.
2.3.1 Notation

2.3.1.1 Data Flow


Data move in a specific direction from an origin to a destination. The data flow is a
“packet” of data.

2.2.1.2 Process
People, procedures or devices that produce data. The physical component is not
identified.

2.3.1.3 Source or Destination of data


External sources or destinations of data, which may be people or organizations or other
entities.

2.3.1.4 Data Store


Here, the data referred by a process in the system.

12
2.3.2 Zero – Level DFD
Zero Level DFD provides a high-level overview of the resume builder project's main
processes and data flows. Zero- level DFD for project shown below

Input Resume output


User Builder Resume
Application

Fig 2.8 0-Level DFD

2.3.3 One – Level DFD


One-level DFD provides a more detailed view of the major processes and data flows
within the resume builder project. One – level shown below

Build resume Resume

Login

Resume
Get resume
User Format1

Resume
Format2
Registration

Resume
Format3
Fig. 2.9 1-Level DFD

2.3.4 Two – Level DFD


the Level 2 DFD provides a more detailed view of how the data flows and activities are
handled within the resume builder project. Two-level DFD shown below

13
Login to Check
Admin System Roles of
Access
Manage Resume Details
System

Manage job Details

Forgot
Check Manage
Password
Credentials Modules Manage Skills Details

Manage Jobseeker Details


Send Email

To User
Manage Salary Details

Manage User Profiles

Manage System Admins Manage Roles of User Manage User Permission Manage Report

Fig 2.10 2-Level DFD

User

14
CHAPTER 3
FEASIBILITY STUDY

A resume builder project is a valuable tool that can assist users in creating professional
and well-structured resumes. Conducting a feasibility study is essential to assess
whether the project is viable and worth pursuing. Here are the key aspects to consider
in the feasibility study for a resume builder project

3.1 MARKET RESEARCH

Identify the target audience for the resume builder. Is there a demand for such a tool
among job seekers, students, or professionals?
Analyse competitors in the resume builder domain. Determine their strengths,
weaknesses, and unique selling points.

3.2 TECHNICAL FEASIBILITY

Assess the technical requirements for developing the resume builder platform,
including web hosting, database management, and software development.
Evaluate the availability of skilled developers and technologies necessary for the
project.

3.3 FINANCIAL FEASIBILITY

Estimate the total cost of development, including software development, hosting,


marketing, and ongoing maintenance.
Determine potential revenue streams, such as offering premium templates or charging
for additional features.

3.4 LEGAL AND ETHICAL FEASIBILITY

Investigate any legal and copyright issues related to resume templates and content
generated through the platform.
Ensure compliance with data protection regulations and user privacy concerns

15
3.5 USER EXPERIENCE AND INTERFACE

Understand user expectations and requirements for resume builders. Conduct surveys
or user interviews to gather feedback.
Consider the ease of use, mobile responsiveness, and overall user experience of the
platform.

3.6 MONETIZATION STRATEGY

Explore different monetization models, such as subscription plans, one-time purchases,


or freemium options. Analyse the potential revenue generation and return on investment
(ROI) over time.

3.7 MARKETING AND PROMOTION

Develop a marketing plan to reach the target audience effectively.


Identify potential marketing channels, such as social media, SEO, partnerships with
job portals, etc.

3.8 SCALABILITY AND FUTURE GROWTH

Consider the ability of the platform to handle an increasing number of users and
resumes over time. Plan for future updates and enhancements to keep the product
competitive and relevant.

3.9 RISK ASSESSMENT

Identify potential risks and challenges that may arise during development and
operation. Formulate mitigation strategies to address these risks effectively.

Based on the findings from the feasibility study, you can make an informed decision
about whether to proceed with the resume builder project.

16
CHAPTER 4
SYSTEM DESIGN

Designing a resume builder project requires considering various components and


functionalities. Below is a high-level outline of the system design for a resume builder:

4.1 USER INTERFACE (UI)

The UI should be user-friendly and intuitive. Provide a form for users to input their
personal information, work experience, education, skills, etc. Allow users to customize
the layout and design of their resume. Offer templates for users to choose from.

4.2 BACKEND SERVER

Handle incoming requests from the UI and process user data. Store resume data
securely in a database. Validate user inputs and sanitize data to prevent security
vulnerabilities like SQL injection or XSS attacks.

4.3 DATABASE

Store user data and resumes in a structured format. Design tables to store personal
information, work experience, education details, skills, etc. Choose an appropriate
database system, like MySQL or PostgreSQL.

4.4 AUTHENTICATION AND USER MANAGEMENT

Implement user authentication and authorization mechanisms. Allow users to sign up


and log in securely. Maintain user sessions and handle password resets.

4.5 TEMPLATE MANAGEMENT

Store various resume templates in a repository. Allow users to preview and select
templates during the resume creation process.

4.6 RESUME GENERATION

Create a template rendering engine that populates user data into the selected resume
template. Generate a downloadable resume in different formats (e.g., PDF, Word).

17
4.7 VERSIONING AND EDITING
Provide users the ability to save multiple versions of their resumes. Allow users to edit
and update their resumes easily.

4.8 EXPORT AND SHARING


Allow users to export their resume or share it online via a unique URL.

4.9 PERFORMANCE AND SCALABILITY


Optimize the application for performance, ensuring quick response times. Design the
system to handle a large number of users and resumes.

4.10 SECURITY
Implement security best practices to protect user data and prevent unauthorized access.
Use HTTPS to encrypt data transmission.

4.11 ERROR HANDLING AND LOGGING


Implement robust error handling mechanisms. Log errors and exceptions for
monitoring and debugging.

4.12 TESTING
Perform unit testing, integration testing, and end-to-end testing to ensure the system
works as expected.

4.13 MONITORING AND ANALYTICS


Implement monitoring and logging tools to track system performance and user activity.
Utilize analytics to gain insights into user behaviour and preferences.

4.14 BACKUP AND RECOVERY


Regularly back up the database to prevent data loss. Implement a recovery plan in case
of system failures.

18
CHAPTER 5
IMPLEMENTATION

Does the user no


Access have an Create
Webpage account Account

yes

Does the no
Log In yes
user have
a LinkedIn
Profile
Access Profile
Save
Status Log in via
LinkedIn
Create Account
with Email

Does the user


wish to update yes
their profile
info

info

no
Go to
Profile Enter Confirm yes
Settings information

Does the user no


yes
wish to make Select
/modify resume Resume

no
Resume Confirm
Enter Editing Make yes
Mode Changes
no
Does the user yes
wish to print
any resume
Select
Resume Print

no

Fig 5.1 Activity Diagram


Is the user yes
finished with Log Out
the web app?

19
CHAPTER 6
SYSTEM TESTING
System testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. Software testing fundamentals
define the overriding objectives for software testing. Testing is one of the steps in the
software engineering process that could be viewed (psychologically, at least) as
destructive rather than constructive. Testing is a process of executing a program with
the intent of finding an error. A good test case is one that has a high probability of
finding a yet undiscovered error. A successful test is one that uncovers an as yet
undiscovered error.

6.1 WHITE-BOX TESTING (GLASS-BOX TESTING)


White-box testing, also known as clear-box testing or structural testing, is a software
testing technique that examines the internal structure and implementation of a software
application. For a resume builder project, white-box testing involves evaluating the
source code, algorithms, and logic used to create the application. The primary goal is
to ensure that all parts of the code function correctly, and no errors or bugs are present.

Here are some key aspects and strategies to consider when conducting white-box testing
for a resume builder project
6.1.1 Code Coverage Analysis
Measure the code coverage achieved during testing. Tools like code coverage analysers
can help identify which parts of the code have been executed and which haven't. Aim
for high code coverage to increase confidence in the testing process.
6.1.2 Unit Testing

Test individual components or units of the application in isolation. Focus on testing


functions, methods, and classes with different inputs to verify their correctness. This
can be done using testing frameworks like JUnit (for Java) or pytest (for Python).

20
6.1.3 Integration Testing

Test the interactions between different units/modules of the application. Ensure that
components work together as expected and that data is passed between them accurately.

6.1.4 Boundary Value Analysis

Identify boundary conditions for inputs and test how the application behaves at these
boundaries. For example, test with minimum and maximum values for input fields.

6.1.5 Decision Coverage

Ensure that all decision points in the code (such as if-else statements and switch-case
statements) are tested with both true and false conditions.

6.1.6 Statement Coverage

Verify that all statements in the code are executed during testing. This ensures that no
lines of code are left untested.

6.1.7 Path Coverage

Analyse the execution paths through the code and test all possible paths to identify any
potential issues that might arise due to specific sequences of actions.

6.1.8 Error Handling

Test how the application handles unexpected or erroneous inputs. Check if appropriate
error messages are displayed and that the application gracefully handles exceptions.

6.1.9 Security Testing

Ensure that user inputs are properly sanitized to prevent SQL injection, cross-site
scripting (XSS), and other security vulnerabilities.

6.1.10 Performance Testing

While this might not fall strictly under white-box testing, it's important to evaluate the
application's performance to ensure it can handle a significant number of users and
resume data without performance degradation.

21
6.1.11 Code Reviews

Conduct thorough code reviews to catch potential issues early in the development
process.

6.1.12 Regression Testing

Continuously perform white-box regression testing to make sure that new code changes
do not introduce new bugs or negatively impact existing functionality.

6.2 BLACK BOX TESTING

Black-box testing is a software testing technique that examines the functionality of an


application without looking at its internal code or implementation. For a resume builder
project, black-box testing involves evaluating the application's features, user interface,
and how it responds to different inputs and scenarios. The goal is to ensure that the
resume builder works as expected from the end-user's perspective. Here are some key
aspects and strategies to consider when conducting black-box testing for a resume
builder project

6.2.1 Functional Testing

Verify that all the functional requirements of the resume builder are met. Test each
feature and ensure that it performs its intended task correctly. Some of the main
functions to test in a resume builder might include
• Creating a new resume with various sections (e.g., personal information,
education, work experience, skills, etc.).
• Adding, editing, and deleting entries within different resume sections.
• Previewing the resume in different formats (e.g., PDF, DOCX).
• Downloading or saving the resume.

6.2.2 Usability Testing

Evaluate the user-friendliness and intuitiveness of the application's user interface.


Ensure that users can easily navigate through the resume builder, understand how to
use its features, and accomplish their tasks without confusion.

22
6.2.3 Boundary Testing

Test the application with inputs at the edge of acceptable ranges. For example, try
inputting extremely long names, education details, or work experience entries to ensure
that the application handles such cases gracefully.

6.2.4 Negative Testing

Test the application with invalid inputs and verify that appropriate error messages are
displayed. For instance, entering invalid characters in numeric fields or leaving required
fields blank should trigger relevant error notifications.

6.2.5 Compatibility Testing

Ensure that the resume builder works correctly on different browsers, devices, and
operating systems. Verify that the resume's layout and formatting remain consistent
across various environments.

6.2.6 Performance Testing

Check the resume builder's response time and resource usage under normal and peak
load conditions. Ensure that the application performs well even when multiple users
access it simultaneously.

6.2.6 Cross-Browser Testing

Test the application on various web browsers (e.g., Chrome, Firefox, Safari, Edge) to
verify its compatibility and consistent behaviour.

6.2.7 Cross-Platform Testing

Test the application on different platforms (e.g., Windows, macOS, Linux) to identify
any platform-specific issues.

6.2.8 Localization Testing

If the resume builder supports multiple languages, verify that the translation and text
display are accurate for each supported language.

6.2.9 Accessibility Testing

Ensure that the resume builder is accessible to users with disabilities, following
accessibility standards like Web Content Accessibility Guidelines (WCAG).

23
6.2.10 Integration Testing

Test the integration of the resume builder with any external services or APIs that it
interacts with (e.g., cloud storage for saving resumes).

6.2.11 User Acceptance Testing (UAT)

Involve actual end-users in testing the application to gather feedback and validate that
it meets their expectations and requirements.

6.3 UNIT TESTING

Unit testing is an essential practice in software development that involves testing


individual units or components of a software application to ensure they work as
expected. When it comes to a resume builder project, unit testing helps ensure that each
function, method, or module functions correctly and produces the desired output. Here's
a general outline of how you can approach unit testing for a resume builder project:

6.3.1 Choose a testing framework

First, select a testing framework that suits the programming language and technology
stack used in your resume builder project. Common testing frameworks include JUnit
for Java, pytest for Python, NUnit for .NET, etc.

6.3.2 Isolate the components

Identify the various components or units in your resume builder project that can be
tested independently. These could include functions for formatting text, generating
PDFs, validating input data, etc.

6.3.3 Write test cases

Create test cases for each unit you want to test. A test case typically consists of a
method that exercises the unit being tested and asserts the expected output or behaviour.
Consider testing various scenarios, including normal cases, boundary cases, and error
conditions.

24
6.3.4 Set up and teardown

In some cases, you may need to set up initial conditions or clean up after the tests have
been run. Use setup and teardown methods provided by the testing framework to handle
such situations.

6.3.5 Mocking and stubbing

When testing certain units, you may need to simulate the behaviour of external
dependencies, such as a database or a third-party API. Use mocking or stubbing
techniques to replace these dependencies with controlled test doubles.

6.3.6 Test data

Prepare sample data to be used in your test cases. This data should cover a range of
possibilities and edge cases that the unit might encounter during real-world usage.

6.3.7 Run the tests

Execute the unit tests and examine the results. Most testing frameworks will provide a
summary of the test results, indicating which tests passed and which ones failed.

6.3.8 Debugging and fixing

If any tests fail, debug the unit and fix the issues until all tests pass successfully.

6.3.9 Automate testing

Integrate your unit tests into an automated testing system, such as a continuous
integration (CI) pipeline, to ensure they are run regularly during development and
before deploying changes.

6.3.10 Regression testing

As your resume builder project evolves, ensure that existing unit tests continue to pass
after each code change, preventing regression errors.

25
6.4 INTEGRATION TESTING

Integration testing for a resume builder project involves testing the interactions and data
flow between different components of the application when they are combined together.
Here's a step-by-step guide on how to perform integration testing for your resume
builder project:

6.4.1 Identify Integration Points

Determine the key components that make up your resume builder project. This might
include modules for user authentication, data input, template selection, PDF generation,
and storage. Identify the interactions between these components where data is
exchanged or dependencies exist.

6.4.2 Create Test Scenarios

Develop test scenarios that cover different integration points. For example, test
scenarios could include creating a resume with basic information, adding work
experience, education details, and generating a PDF output. Also, include scenarios that
test error conditions, such as invalid input or unexpected responses from external
services.

6.4.3 Prepare Test Data

Set up test data that simulates real-world scenarios. For instance, use mock user data
with various combinations of work experience, education history, and other resume
sections. Also, include edge cases like long names, special characters, and empty fields
to ensure the application handles them correctly.

6.4.4 Mock External Dependencies

Since integration testing focuses on interactions between components, you might need
to mock or stub external services like cloud storage or PDF generation APIs. This
allows you to test the behaviour of the application without relying on the actual external
services during testing.

26
6.4.5 Execute the Tests

Run the integration tests and observe the interactions between the components. Ensure
that data is passed correctly between modules, and the expected outcomes are produced,
such as the generation of the correct resume content and PDF.

6.4.6 Check Data Consistency

Verify that data stored in the database or external services is consistent and matches the
data entered during the resume building process. For example, check if user information
is correctly saved in the database and can be retrieved accurately.

6.4.7 Test Error Handling

Include test cases that intentionally trigger errors and exceptions, such as invalid user
input or server failures. Verify that the application handles these situations gracefully,
providing meaningful error messages to the user.

6.4.8 Clean Up Test Data

After each test run, ensure that test data is cleaned up and any changes made during the
test are reverted, leaving the system in a consistent state for subsequent tests.

6.4.9 Automation and Continuous Integration

Automate the execution of integration tests and integrate them into your CI/CD
pipeline. This ensures that tests are run regularly and consistently as part of your
development workflow.

6.4.10 Regression Testing

As your resume builder project evolves with new features or updates, re-run the
integration tests to ensure that existing functionalities continue to work seamlessly with
the new changes.

27
6.5 VERIFICATION AND VALIDATION

Verification and validation are two important processes in software development that
help ensure the quality, correctness, and reliability of a software application, including
a resume builder project. Let's explore verification and validation in the context of a
resume builder

6.5.1 Verification

Verification is the process of checking that the software is built correctly and that it
adheres to its specified requirements and design. It focuses on the question, "Are we
building the software, right?" In the case of a resume builder project, the verification
process would involve the following:

6.5.1.1 Code Reviews

Developers review each other's code to identify bugs, coding errors, and adherence to
coding standards.

6.5.1.2 Unit Testing

Individual units or components of the resume builder, such as functions or methods,


are tested in isolation to ensure they produce the correct output for various inputs.

6.5.1.3 Integration Testing The interactions between different components of the


resume builder are tested to ensure they work together as expected when integrated.

6.5.1.4 Design Reviews

The design of the resume builder is examined to ensure it meets the specified
requirements and is well-architected.

6.5.1.5 Requirements Review

The documented requirements for the resume builder are reviewed to ensure they are
complete, clear, and consistent.

6.5.1.6 Static Code Analysis Automated tools analyse the source code for potential
issues, such as coding style violations and potential bugs.

28
6.5.2 Validation

Validation is the process of evaluating the software to ensure it meets the intended user
needs and requirements. It focuses on the question, "Are we building the right
software?" For a resume builder project, validation involves the following

6.5.2.1 User Acceptance Testing (UAT)

Real users or stakeholders test the resume builder application in a controlled


environment to validate that it meets their expectations and needs.

6.5.2.2 Functional Testing

The resume builder is tested against its functional requirements to ensure that it
performs the expected tasks and operations.

6.5.2.3 Usability Testing

The user interface and user experience of the resume builder are evaluated to ensure it
is user-friendly and intuitive.

6.5.2.4 Performance Testing

The performance of the resume builder is tested under various conditions to ensure it
responds efficiently to user interactions.

6.5.2.5 Compatibility Testing

The resume builder is tested on different devices, browsers, and operating systems to
ensure it works correctly across various platforms.

6.5.2.6 Security Testing

The resume builder is evaluated for potential security vulnerabilities and weaknesses to
protect users' personal information.

29
CHAPTER 7

CONCLUSION
The Resume Builder is an essential software application designed to assist users in
creating professional and well-structured resumes with ease. The purpose of this
Software Requirements Specification (SRS) was to outline the functional and non-
functional requirements of the resume builder project and define the scope of its
development.

Throughout this document, we have thoroughly analysed and documented the


following aspects of the resume builder project

PROJECT OVERVIEW

We have presented a comprehensive overview of the resume builder, outlining its


purpose, target audience, and the benefits it brings to users in the job-seeking process.

FUNCTIONAL REQUIREMENTS

In close collaboration with stakeholders and user feedback, we have detailed the
functional requirements of the resume builder. These include features like user
authentication, data input, template selection, PDF generation, and export options.

NON-FUNCTIONAL REQUIREMENTS

We have specified the non-functional requirements, including performance, scalability,


usability, security, and compatibility, to ensure the resume builder delivers a robust and
seamless user experience.

USE CASES AND USER SCENARIOS

We have provided a set of use cases and user scenarios to illustrate the interactions
between users and the resume builder, guiding the development process and ensuring
alignment with user needs.

CONSTRAINTS AND ASSUMPTIONS

Various constraints and assumptions were considered during the requirements


gathering process, taking into account technical limitations and project-specific factors.

30
DEPENDENCIES

We have identified external dependencies, such as APIs for PDF generation and cloud
storage, which are essential for the successful operation of the resume builder.

The Resume Builder project aims to empower users with a powerful tool for creating
visually appealing and compelling resumes. By adhering to the requirements and
guidelines outlined in this SRS, the development team can work cohesively to build a
high-quality application that meets and exceeds user expectations.
As the project progresses, regular communication and collaboration between the
development team and stakeholders will be crucial for successful implementation.
Frequent reviews and iterations will ensure that the final product aligns with the
changing needs of the users and maintains a competitive edge in the market.
In conclusion, the Resume Builder project is poised to provide significant value to job
seekers by simplifying the resume creation process and enhancing their chances of
securing their desired positions. With careful planning, diligent implementation, and a
user-centric approach, we are confident that the Resume Builder will emerge as a
leading solution in the job application landscape.

31
REFRENCES

• www.google.com
• www.youtube.com
• www.tutorialspoint.com
• www.javapoint.com
• www.gfg.com

32

You might also like