You are on page 1of 43

A Project on

Photo Editor
Web Application
Submitted by
JASH BHUPTANI (20604)

ALI ISHKEY (20616)

SANCHEET WALEKAR (20619)

2020-2021
Under the guidance of
Sherilyn Kevin…..
Submitted in partial fulfilment of requirement for qualifying B.Sc.-(IT)
Semester-VI Examination

Thakur College of Science and Commerce,

Thakur Village, Kandivali (E),

Mumbai-400101

1|Page
Certificate

This is to certify that the project titled “Photo Editor Application”. Undertaken at the
“Thakur College of Science and Commerce” by Mr. Jash Bhuptani Seat no. 20604 in
partial fulfilment of B.Sc. I.T degree Examination had not been submitted for our other
examination and does not form part of any other course undergone by the candidate.

It is further certified that we have completed all required phases of the project.

External Examiner Internal Examiner

Project Guide Head of Department

2|Page
Certificate

This is to certify that the project titled “Photo Editor Application”. Undertaken at the
“Thakur College of Science and Commerce” by Mr. Ali Ishkey Seat no. 20616 in
partial fulfilment of B.Sc. I.T degree Examination had not been submitted for our other
examination and does not form part of any other course undergone by the candidate.

It is further certified that we have completed all required phases of the project.

External Examiner Internal Examiner

Project Guide Head of Department

3|Page
Certificate

This is to certify that the project titled “Photo Editor Application”. Undertaken at the
“Thakur College of Science and Commerce” by Mr. Sancheet Walekar Seat no. 20619
in partial fulfilment of B.Sc. I.T degree Examination had not been submitted for our
other examination and does not form part of any other course undergone by the
candidate.

It is further certified that we have completed all required phases of the project.

External Examiner Internal Examiner

Project Guide Head of Department

4|Page
INDEX

Sr. No Topics Page no.

INTRODUCTION 7-12
1.1 Objective 7
1.2 Scope 8
1.3 Theoretical Background 8-9
1.4 Problem Definition 11
1.5 Software requirement specification (SRS) 10
1.6 Feasibility study 11-12
1.6.1 Technical feasibility 11
1.6.2 Operational feasibility 11
1.6.3 Economical feasibility 11
1.7 Details of Hardware and Software 12
SYSTEM ANALYSIS AND DESIGN 13-21
2.1 Context diagram 13
2.2 Data flow diagram 14
2.3 Entity relationship diagram 15
2.4 Class diagram 16
2.5 Use case diagram 17
2.6 Architecture diagram 18
2.7 Table design 19-21
SYSTEM PLANNING 22-23
3.1 Gantt chart 22
3.2 Pert chart 23
COST AND BENEFITS ANALYSIS AND 24-26
SOFTWARE PARAMETER ESTIMATION
4.1 Calculation of Unadjusted function points 24-25
4.2 Calculation of Adjusted points 25-26
4.3 Calculation of Source Lines of Code (SLOC) and 26
formulas
SOFTWARE TESTING 27
5.1 Introduction 27
5.2 Testing Approach 28
5.2.1 White box testing 28
5.2.2 Black box testing 28
5.3 Types of testing 29-30
5.3.1 Alpha testing 29
5.3.2 Beta Testing 29
5.3.3 Performance Testing 30

5|Page
5.3.4 Recovery Testing 30
5.4 Testing Strategies Adopted 31-32
5.4.1 Conditional Testing 31
5.4.2 Loop Testing 31
5.4.3 System Testing 31
5.4.4 Usability Testing 31
5.4.5 Regression Testing 32
5.4.6 Integration Testing 32
5.4.7 Unit Testing 32
5.5 Test cases 33
IMPLEMENTATION 34-40
FUTURE WORK 41
References 42

6|Page
Introduction

Photo Editing is quite a popular term in the recent era of mankind as such it has turned into a profession itself.
Our (Name) Editing software is accessible cross platform meaning you will be able to use on it on a completely
different platforms like Linux, OS X, Windows and more. With the help of our (Name) Editing Software it will
be pretty much easy for a newbie to use and also will be easily accessible amongst the professional editors to
use the Software. The common scope of our project is not only it is user friendly but will also be used to do "H-
E-A-V-Y"(Hard, Effective, Advanced, Valued, YET yearning) editing of the images.

Our main problem arises for its upcoming feature which is going to be cloud saving which will be explained
shortly. Our common goals is that the user can have access to the short and simple editing features as well as
hard and more achievable type of success while editing on big projects.

Objectives:

 Photo editor contains all the tools you need for creating, editing, and retouching your images. It is
friendly enough for the casual user who wants to enhance family photographs, yet powerful enough for
the professional who needs to work with Images containing maps or with Image Processing.

 Users will have an opportunity to add or change filters easily. It will be possible to adjust several filters
like blur or vignette.

 It allows users to combine several photos into a new one. As a result, users will have a platform to
memorize memorable photos at one place.

 Provide users with the opportunity to replace the photo background with a few clicks. Visitors need to
cut a part of the photo and select the new background.

 It’s possible to provide users with various beautiful frames. Consumers need to select an image from the
phone gallery and choose the frame they like.

 Users can Directly insert text on the photo. Users can choose the color and add some personalized text.
This function tends to make images more exciting and customized.

7|Page
Scope:

 As there is lot of improvement towards graphics, photos or images editing, processing is very important
in that process. This application is accessible on any system and any platform.

 Users can adjust their canvas’s aspect ratio therefore, they can make it square, portrait, or landscape.
They can also zoom in on their photo. It also enables users to crop the unnecessary parts of the photo.

 Users can apply filters, moreover, they can adjust the brightness, contrast, moreover it has tools to blur
parts of the photo or to sharpen the edges.

 The app has an impressive collection of artworks and stickers, and users can utilize them for overlaying
on the photo.

 Users can Directly insert personalized text on the photo and can choose the color to make images more
exciting and customized.

Theoretical Background:

Comparison Between Other Software

We have compared our software with three different online software that are:

 Fotor
 BeFunky
 Canva
 Pixlr

These online photo editing software have same common features that we have included in our project. The
features consist of:

Image altering: Image editors can resize images in a process often called image scaling, making them larger, or
smaller. High image resolution cameras can produce large images which are often reduced in size
for Internet use.

Cropping: Digital editors are used to crop images. Cropping creates a new image by selecting a desired
rectangular portion from the image being cropped. The unwanted part of the image is discarded.

Image orientation: Image editors are capable of altering an image to be rotated in any direction and to any
degree. Mirror images can be created and images can be horizontally flipped or vertically flopped. A small
rotation of several degrees is often enough to level the horizon, correct verticality or both. Rotated images
usually require cropping afterwards, in order to remove the resulting gaps at the image edges.

Image Enhancing (Hue Control): In computer graphics, the process of improving the quality of a digitally
stored image by manipulating the image with software. It is quite easy, for example, to make an image lighter or
8|Page
darker, or to increase or decrease contrast. Advanced photo enhancement software also supports many filters for
altering images in various ways.

We also have some unique features of our own such as:

Unique Filters: We have unique filters such as VSCO filter, Retro filter, Fade, Grayscale filter, Polaroid, Blur
etc.

Cloud save: The images that are being uploaded by the user can also be saved inside cloud network.

Problem Definition:

Photo editing wasn’t always done so easily on a computer. Before today’s digital image manipulation tools,
photo editing was often done by hand. Creative Live takes a closer look at the history of the wet collodion
method, photo editing, pointing to the 1850s discovery of the wet collodion method of putting multiple photos
together (using negatives).

Shortly thereafter, photo manipulators used it to put silhouettes of ghosts on photos of deceased soldiers. One
famous example is an image of Abraham Lincoln’s spirit behind widow Mary, placed by William H. Mumler.

Fast forward to the 1980s, when Adobe announced the first digital photo-editing software which brought image
editing into the modern age its line of products, and digital photo-editing tools which editors can use on their
computers. Today, there are tons of photo-editing tools available, both paid and free. However, Adobe’s
Creative Cloud remains one of the most popular and well-known.

Photo-editing software is a tool which you can use to manipulate and enhance images. Because photos have an
increasing number of uses — spanning from display ads to social media and print catalogues to posters — more
businesses are finding ways to repurpose photos and use them on multiple channels.

To make this easier, editors use photo-editing software programs. There are many kinds of photo-editing
software, each with its own costs, features and pros/cons.

9|Page
Software Requirement Specifications (SRS)

Category:

Will be mainly Online application and will also support android and IOS platform.

ADMIN:

 Admin is responsible for inserting, deleting and updating values of photo editing application.

 Controls the total maintenance of the system.

 Update application on the basis of user requirements.

 Offers feedback to the system.

USER:

 The system shall require the user to enter a valid combination of user ID and password in order to
use the system.
 User can Upload a photo from their photo gallery to perform various operations like:
 User module will contain attributes like:
1. ID
2. Username
3. Password

Functional Requirements:
1. Basic Requirements: User can login and create their own account and also can edit images.
2. Upload/Download photo: User can either download a photo or upload it.
3. Use of filters: There are different filters in our web application that user can use to edit.
4. Crop and rotate: User can crop the image and also rotate in any direction needed.
5. Hue Control: User can change the colour of the background of any image.
6. Canvas Control: User can easily add shapes, text and can also use paint functionalities.

Non-Functional Requirements:
1. Performance: The performance of the Application can be determined by it responsive time,
time to complete the given task.
2. Scalability: App should able to adopt itself to increased usage or able to handle more data as
time progress.
3. Responsiveness: Application should be responsive to the user Input or to any external
interrupt which is of highest priority and return back to same state.
4. Use-ability: User should be able to understand the flow of App easily i.e., users should able
to use App without any guideline or help from experts/manuals.
5. Reliability: The application should be reliable to perform the business, i.e., when user
perform some important action it should be acknowledged with confirmation.
6. Security: All the app data should be secured and be encrypted with minimum needs so that
it’s protected from outside environment also from internal attack.
10 | P a g e
7. Availability: There should be a common plane where the user can access your web
application 24/7 and look for regular updates to give feedbacks.

Feasibility Study

Many feasibility studies disillusioning for both users and analyst. First the study often presupposes that
when the feasibility document is being prepared the analyst is in a position to evaluate solutions; second most
studies tend to overlook the confusion inherent in system development. The three key considerations are
involved in feasibility analysis are:

 Economic feasibility
 Technical feasibility
 Behavioural feasibility

Economic feasibility:
Economic feasibility is the most frequently used methods for evaluating the effectiveness of a
candidate system. More commonly known as cost/benefit analysis, the procedure is to determine the benefits
and savings that are expected from a candidate system and compare them with cost. The result of comparison is
found and changed if needed. If benefits outweigh costs then the decision is made to design and implement the
system. Otherwise, further justification or alternation in the proposed system will have to be made if it is to
have a chance of being approved. As we are developing a completely new system the cost is on the higher side.
The implementation costs involve the installation of a new hardware and software as well as the cost of hosting
the website on the internet. Maintenance of the system is much costly. Training for the operating personnel is
also expected to be by the people who have never been initialized to operating a computerized system.
In this case, benefits outweigh costs computerization reduces the need for manual labour. This saves much
money and also save many hours of manual labour resulting in financial savings. Saving on time is also a
benefit of the new system. Thus, concluding that the benefits of the system outweighed its cost culminated the
economic feasibility study.

Technical feasibility:
Technical feasibility centres on the existing system and to what extend it can support the proposed
addition. Here we have many technologies existed which can give effects to an image. But our proposed system
have almost all the operations together in one unit. We can choose any effect faster and easily whenever we
required, otherwise we have to select an effect, then add an effect to image, if we are not much impressed with,
we have to search for another one. In the proposed system there is no need to search for effects .All the effects
are put together and select an image give effects, change to another one and so on easily. The main feature of
the proposed system is that it is more users friendly.

Behavioural feasibility:
11 | P a g e
It is also known as operational feasibility. People are inherently resistant to change and computers have been
known to facilitate change. Now most people support computerized system. An estimate should be made of how
strong a reaction the user staff is likely to have toward the development of a new system. Therefore it is
understandable that the introduction of the new system required special effort to educate and train the staff on
way of operating system. Also required to give awareness to the customers. The staffs were not against the
system; in however, the user would accept the concept.

Details of hardware and software:


Software tools used:
 Node.js
 Angular.js
 Cropper.js
 Visual Studio
 Python/PyCharm
 Django (Framework)
 MySQL

Hardware Specification:

 Windows: 10
 Processor: Intel or AMD processor with 64 but support
 OS: Windows 10 (1903) or later
 Ram:3GB
 Hard Disk:1GB
 Monitor:1024x 764 display
 GPU: GPU with DirectX12 support and 1GB VRAM

MACOS:

 Processor: Multicore intel processor with 64bit support


 OS: MacOS10.14 or later
 Ram:3 Gb
 Hard Disk:1GB
 Monitor Resolution:1024x 764 display

Mobile:

 Processor: Quad Core CPU with 1.5 GHz frequency and ARMv7 architecture
 RAM: 1 GB
 Internal storage: 8 GB
 Android OS version: 5.x (Lollipop) and later OR IOS 12.3 later

12 | P a g e
System Analysis and Design

Context diagram:

A context diagram, sometimes called a level 0 data-flow diagram, is drawn in order to define and clarify the
boundaries of the software system. It identifies the flows of information between the system and external
entities. The entire software system is shown as a single process.

This is a DFD level 0 diagram.

13 | P a g e
Data flow diagram:

A data-flow diagram is a way of representing a flow of data through a process or a system (usually an


information system). The DFD also provides information about the outputs and inputs of each entity and the
process itself. The data-flow diagram is part of the structured-analysis modelling tools.

This is level 2 DFD diagram

14 | P a g e
Entity relationship diagram:

Entity relationship diagrams are used in software engineering during the planning stages of


the software project. They help to identify different system elements and their relationships with each other. It
is often used as the basis for data flow diagrams or DFD's as they are commonly known.

15 | P a g e
Use case diagram:
A use case diagram is a dynamic or behaviour diagram in UML. Use case diagrams model the functionality
of a system using actors and use cases. Use cases are a set of actions, services, and functions that the system
needs to perform.

16 | P a g e
Class diagram:
In software engineering, a class diagram in the Unified Modelling Language (UML) is a type of static
structure diagram that describes the structure of a system by showing the system's classes, their attributes,
operations (or methods), and the relationships among objects.

17 | P a g e
Architecture Diagram:

Software Architecture Design is a crucial step for software and application developers to describe the basic
software structure by separating functional areas into layers. It depicts how a typical software system might
interact with its users, external systems, data sources, and services.

18 | P a g e
Table Design:

In relational databases, and flat file databases, a table is a set of data elements (values) using a model of vertical
columns (identifiable by name) and horizontal rows, the cell being the unit where a row and column intersect. A
table has a specified number of columns but can have any number of rows. Some abbreviations used in table
design are:

 PK: Primary Key

 FK: Foreign Key

 NN: Not Null

Admin:
Table name Admin

Description This table contains description for admin

Primary Key a_id

Field Name Data Type Constraints

a_id Int PK

Password Varchar (50) NN

User:
Table name User

Description This table contains description for user

Primary Key u_id

Field Name Data Type Constraints

u_id Int PK

Uname Varchar (50) NN

Umobno Int NN

19 | P a g e
Login:
Table name Login

Description This table contains description for login

Primary Key l_id

Foreign Key u_id

Field Name Data Type Constraints

l_id Int PK

password Varchar (50) NN

u_id Int FK

Delete:
Table name Delete

Description This table contains description for delete

Foreign Key i_id, al_id

Field Name Data Type Constraints

Image Varchar (50) NN

Album Varchar (50) NN

i_id Int FK

al_id Int FK

20 | P a g e
Album:
Table name Album

Description This table contains description for album

Primary Key al_id

Foreign Key i_id

Field Name Data Type Constraints

al_id Int PK

alname Varchar (50) NN

i_id Int FK

download Varchar (50) NN

Image:
Table name Image

Description This table contains description for image

Primary Key i_id

Field Name Data Type Constraints

i_id Int PK

download Varchar (50) NN

21 | P a g e
System Planning and Analysis
Gantt Chart

22 | P a g e
Pert Chart

The Program Evaluation Review Technique (PERT) breaks down the individual tasks of a project for analysis.
PERT charts are considered preferable to Gantt charts because they identify task dependencies, but they're often
more difficult to interpret. It helps the project manager to analyze project's tasks and estimate the amount of
time required to complete each task in the project. Using this information, the project manager can estimate the
minimum amount of time required to complete the entire project.

23 | P a g e
Cost and benefit analysis and software project estimation

In order to achieve efficient and effective management of software projects, it is important to estimate the size
and cost of the project. For the size and cost estimation of my project, I will use Function Point Analysis (FPA)
model to predict the development effort of the statistical analysis package. Function point analysis model are an
accepted standard for the measurement of software size in software engineering.

Function Points Analysis


The FPA is a reliable method for measuring the size of computer software. It essentially measures functionality
that the user requests and receives. It also measures the software development and maintenance cost and size
independently of the technology used for implementation
The general approach that FPA follows is:

 Count the number of inputs, outputs, inquiries, master files, and interfaces required, then calculate the
Unadjusted Function Points (UFP)
 Calculate the adjusted function point (AFP) by multiplying these counts by an adjustment factor; the
UFP and the product complexity adjustment.
 Calculate the Source Lines of Code (SLOC) with the help of the AFP and the Language Factor (LF)

1. Calculation of the unadjusted function points (UFP):

The FPA measures functionality that the user requires. The specific user functionality is a measurement
of the functionality delivered by the application as for user request. The 5 function types identified are
external input which receives information from outside the application boundary, external output which
presents information of the information system, external enquiries which is special kind of an external
output.
An external inquiry presents information of the information system based on a uniquely identifying
search criterion, without applying additional processing (such as calculations). internal logical files
contain permanent data that is relevant to the user. The information system references and maintains the
data and external interface files also contain permanent data that is relevant to the user. The information
system references the data, but the data is maintained by another information system.
For each function identified above the function is further classified as simple, average or complex and a
weight is given to each. The sum of the weights quantifies the size of information processing and is
referred to as the Unadjusted Function points.

24 | P a g e
The table below shows the function types and the weighting factors for the varying complexities.

Function type Simple Average Complex

Internal logical file 7 10 15

External interface file 5 7 10

External input 3 4 6

External output 4 5 7

External inquiry 3 4 6

2. Calculate Adjusted Function Point:

To calculate the Complexity adjustment value, several factors must be considered, such as Backup and
recovery, code design for reuse, etc. All the factors and their estimated values in this project are shown in the
following table.
The adjusted function point denoted by FP is given by the formula:
FP = total UFP * (0.65 + (0.01 * Total complexity adjustment value))
or
FP = total UFP * (Complexity adjustment factor)
Total complexity adjustment value is counted based on responses to questions called complexity weighting
factors in the table below. Each complexity weighting factor is assigned a value (complexity adjustment value)
that ranges between 0 (not important) to 5 (essential).

Table Adjusted Function Points:


Number Complexity weighting factor Value

1 User details 2

2 Enter login Id 2

3 Payment 3

4 Application server to database 4

5 User to application server 2

6 Connection 5

Total complexity adjusted value 18

25 | P a g e
Weighting Factor Points

26 | P a g e
Simple Average Complex
Inputs Enter the user details 4

Enter the login ID 3

Payment 4 14

Enter Images and album 3

Outputs Images Stored 4

Generate album 5 14

Generate bill 5

Inquiries View images and album 3

7
Validate Payment receipt 4

Files Get Images and album 7


14
Get Bill 7

Interfaces Application server to database 7

User to application server 5 22

Connections 10

Total UFP 71

3. Calculate the Source Lines of Code (SLOC) and the formulas used:
 Total Unadjusted Function Points (UFP) = 71

 Product Complexity Adjustment (PC) = 0.65 + (0.01 *18) = 0.83

 Total Adjusted Function Points (FP) = UFP * PC = 71*0.83 = 58.93

 Language Factor (LF) for C assumed as = 42

 Source Lines of Code (SLOC) = FP * LF = 58.93*42= 2475.06

 Total hours spent to complete the work= 3.5 Months/3 developers =1.16 months to complete the
work

 Average productivity for system of this type is: 19.64 FP/pm

27 | P a g e
 Labour rate is: 10,000 INR per month

 Cost per FP is: 10,000/19.64=30,005 INR

 Total Estimated Effort is: 30,005/10000 =3.000509165  3 person-months

Software Testing

Introduction:

Software testing is an investigation conducted to provide stakeholders with information about the quality of
the software product or service under test. Software testing can also provide an objective, independent view of
the software to allow the business to appreciate and understand the risks of software implementation. Test
techniques include the process of executing a program or application with the intent of finding failures, and
verifying that the software product is fit for use.
Software testing involves the execution of a software component or system component to evaluate one or more
properties of interest. In general, these properties indicate the extent to which the component or system under
test:

 Meets the requirements that guided its design and development,


 Responds correctly to all kinds of inputs,
 Performs its functions within an acceptable time,
 Is sufficiently usable,
 Can be installed and run in its intended environments,
 Achieves the general result its stakeholder’s desire.

Testing Approach:

28 | P a g e
Software testing methods are traditionally divided into white- and black-box testing. These two approaches are
used to describe the point of view that the tester takes when designing test cases. A hybrid approach called grey-
box testing may also be applied to software testing methodology. With the concept of grey-box testing which
develops tests from specific design elements gaining prominence, this "arbitrary distinction" between black- and
white-box testing has faded somewhat.
In our project majority of the testing was done using White box testing but the factor of user registration and
database was done via Black-box Testing.

a) White box testing


This type of testing ensures that

• All independent paths have been exercised at least once


• All logical decisions have been exercised on their true and false sides
• All loops are executed at their boundaries and within their operational bounds
• All internal data structures have been exercised to assure their validity.

To follow the concept of white box testing we have tested each form. we have created independently to
verify that Data flow is correct, all conditions are exercised to check their validity, all loops are
executed on their boundaries.

b) Black Box Testing

Black-box testing (also known as functional testing) treats the software as a "black box," examining
functionality without any knowledge of internal implementation, without seeing the source code. The
testers are only aware of what the software is supposed to do, not how it does it.
This testing was also done so as to find errors such as:
1. Initialization and termination errors
2. Behavior and performance errors
3. Incorrect or missing functions
4. Interface errors
5. Errors in data structures and external database access
6. Performance errors.

Types of Testing:

29 | P a g e
1. Alpha Testing

Alpha testing is one of the most common software testing strategy used in software development.
It’s specially used by product development organizations.
This test takes place at the developer’s site. Developers observe the users and note problems.44
Alpha testing is testing of an application when development is about to complete. Minor design
changes can still be made as a result of alpha testing.
Alpha testing is typically performed by a group that is independent of the design team, but still
within the company, e.g., in-house software test engineers, or software QA engineers.
Alpha testing is final testing before the software is released to the general public. It has two
phases: In the first phase of alpha testing, the software is tested by in-house developers. They use
either debugger software, or hardware-assisted debuggers.
The goal is to catch bugs quickly. In the second phase of alpha testing, the software is handed
over to the software QA staff, for additional testing in an environment that is similar to the
intended use. Alpha testing is simulated or actual operational testing by potential users/customers
or an independent test team at the developers’ site.
Alpha testing is often employed for off-theshelf software as a form of internal acceptance testing,
before the software goes to beta testing.

2. Beta Testing

It is also known as field testing. It takes place at customer’s site. It sends the system to users
who install it and use it under real-world working conditions.
A beta test is the second phase of software testing in which a sampling of the intended
audience tries the product out. (Beta is the second letter of the Greek alphabet.) Originally,
the term alpha test meant the first phase of testing in a software development process.
The first phase includes unit testing, component testing, and system testing. Beta testing can be
considered “pre-release testing.
The goal of beta testing is to place your application in the hands of real users outside of your
own engineering team to discover any flaws or issues from the user’s perspective that you would
not want to have in your final, released version of the application.

3. Performance testing

30 | P a g e
Performance testing is in general testing performed to determine how a system performs in terms
of responsiveness and stability under a particular workload. It can also serve to investigate,
measure, validate or verify other quality attributes of the system, such as scalability, reliability
and resource usage.
It is a type of non-functional testing. Performance testing is testing that is performed, to
determine how fast some aspect of a system performs under a particular workload. It can serve
different purposes like it can demonstrate that the system meets performance criteria.
It can compare two systems to find which performs better. Or it can measure what part of the
system or workload causes the system to perform badly. This process can involve quantitative
tests done in a lab, such as measuring the response time or the number of MIPS (millions of
instructions per second) at which a system functions.

4. Recovery Testing

It is a type of non-functional testing. Recovery testing is done in order to check how fast
and better the application can recover after it has gone through any type of crash or hardware
failure etc.
Recovery testing is the forced failure of the software in a variety of ways to verify
that recovery is properly performed. For example: When an application is receiving data
from a network, unplug the connecting cable.
After some time, plug the cable back in
and analyses the application’s ability to continue receiving data from the point at which the
network connection was broken. Example: Restart the system while a browser has a definite
number of sessions and check whether the browser is able to recover all of them or not.

Testing Strategies Adopted

31 | P a g e
a) Conditional Testing: -
In this part of the testing each of the conditions were tested to both true and false aspects. And all
the resulting paths were tested. So that each path that may be generate on particular condition is
traced to uncover any possible errors.

b) Loop Testing: -

In this type of testing all the loops are tested to all the limits possible. The following exercise
was adopted for all loops:
• All the loops were tested at their limits, just above them and just below them.
• All the loops were skipped at least once.
• For nested loops test the inner most loop first and then work outwards.
• For concatenated loops the values of dependent loops were set with the help of connected loop.
• Unstructured loops were resolved into nested loops or concatenated loops and tested as above.

Each unit has been separately tested by the development team itself and all the input have been
teste

c) System Testing: -

System testing tests a completely integrated system to verify that the system meets its
requirements. For example, a system test might involve testing a login interface, then creating
and editing an entry, plus sending or printing results, followed by summary processing or
deletion (or archiving) of entries, then logoff. It may include tests based on risks and/or
requirement specifications, business process, use cases, or other. high-level descriptions of
system behaviour, interactions with the operating systems, and system resources. System testing
is most often the final test to verify that the system to be delivered meets the specification and its
purpose. System testing is carried out by specialists’ testers or independent testers. System
testing should investigate both functional and non-functional requirements of the testing.

d) Usability Testing: -

Usability testing is to check if the user interface is easy to use and understand. It is concerned
mainly with the use of the application. This is not a kind of testing that can be automated; actual
human users are needed, being monitored by skilled UI designers.

e) Regression Testing: -

32 | P a g e
During confirmation testing the defect got fixed and that part of the application started working as
intended. But there might be a possibility that the fix may have introduced or uncovered a
different defect elsewhere in the software. The way to detect these ‘unexpected side-effects’ of
fixes is to do regression testing. The purpose of a regression testing is to verify that modifications
in the software or the environment have not caused any unintended adverse side effects and that
the system still meets its requirements. Regression testing are mostly automated because in order
to fix the defect the same test is carried out again and again and it will be very tedious to do it
manually. Regression tests are executed whenever the software changes, either as a result of fixes
or new or changed functionality.

f) Integration testing: -

Integration testing tests integration or interfaces between components, interactions to different


parts of the system such as an operating system, file system and hardware or interfaces between
systems. Also, after integrating two different components together we do the integration testing.
As displayed in the image below when two different modules ‘Module A’ and ‘Module B’ are
integrated then the integration testing is done. Integration testing is done by a specific integration
tester or test team.46 Integration testing follows two approach known as ‘Top Down’ approach
and ‘Bottom Up’ approach.

g) Unit Testing: -

A unit is the smallest testable part of an application like functions, classes, procedures, interfaces.
Unit testing is a method by which individual units of source code are tested to determine if they
are fit for use. Unit tests are basically written and executed by software developers to make sure
that code meets its design and requirements and behaves as expected. The goal of unit testing is to
segregate each part of the program and test that the individual parts are working correctly. This
means that for any function or procedure when a set of inputs are given then it should return the
proper values. It should handle the failures gracefully during the course of execution when any
invalid input is given. A unit test provides a written contract that the piece of code must assure.
Hence it has several benefits.

Test cases

33 | P a g e
Test cases Expected Result Acquired Result Condition

Click on registration User/Admin Registered User/Admin Registered Successful


(Admin/user)

Click on login User/Admin logged in User/Admin logged in Successful


(User/Admin)

Click on password reset Opens password reset Password resets Successful


(Admin/User) page

User permission Visitor/user are restricted Visitor/user are restricted Successful


(Anonymous visitor, to access specific pages to access specific pages
admin, user)

Click on Upload Uploads image to the Uploads image to the Successful


editor editor

Click on Download Downloads the edited Downloads the edited Successful


image images

Click on Basic (Crop, Functionality working Functionality working Successful


Rotate, Resize, Round, perfectly perfectly
Colour)

Click on Text Text box created on Text box created on Successful


(Handwriting, Search image and editable image and editable
box)

Click on Drawing Selects brush and use on Selects brush and use on Successful
images images

Click on Filters On click applies Filters On click applies Filters Successful

Click on Shapes On click A shape should A shape is Selected and Successful


be Selected applied

Implementation: -

34 | P a g e
Homepage (User)

Homepage (Visitor)

Profile Page
35 | P a g e
Editor

Register Page
36 | P a g e
Login Page

37 | P a g e
Password reset form (1)

Password reset form (2)

38 | P a g e
Password reset form (3)

Password reset form (4)

Admin Panel (User)

39 | P a g e
Admin Panel (Group/User Permissions)

40 | P a g e
Customer Model

FUTURE WORK
41 | P a g e
Developments in software technology are continuing dynamically. This has forced developers to
look for new approaches to design and development. In order to face this situation, the modules
in a package should be upgraded any time. The modules in this package can be subjected to
further enhancements. Such as: -
1. We will Enhance more GUI in this app.
2. Creating more databases for future customers who opt for premium content
3. Adding more security features. Like the 3rd party users won’t be able to replicate the project and publish it.
4. Add more features to the editor which can further enhance the functionality of the editor. Also add limited
time special items to the editor for users who are using the editor from day n to access (meaning a special type
of award/features given to use like special filters, frames, shapes, brushes, etc. during official launch or 1 year
anniversary type of events)
5. Make the complexity of the code simpler so future developers who join the team will also be able to instantly
catch up and be up to the pace.

References:

42 | P a g e
1. https://docs.photoeditorsdk.com/

2. https://wiki.gimp.org/wiki/Main_Page

3. https://adobedocs.github.io/lightroom-api-docs/#api-autoTone-auto_tone_post

4. https://cloudinary.com/documentation

43 | P a g e

You might also like