Professional Documents
Culture Documents
PP1 2019 - Securelyshare - 20171CSE0276,20171CSE0429
PP1 2019 - Securelyshare - 20171CSE0276,20171CSE0429
PP1 2019 - Securelyshare - 20171CSE0276,20171CSE0429
ON
BY
AT
(June, 2019)
1
A REPORT
ON
BY
AT
(June, 2019)
2
DECLARATION
I hereby declare that the report entitled “APPLICATION DEVELOPMENT DEPARTMENTS AND TYPES
OF TESTING” which is being submitted to the Presidency University; Bengaluru is a bonafide report
of the work carried out by us. The material contained in this report has not been submitted to any
University or Institution for the award of any degree.
3
ACKNOWLEDGEMENT
This report has been prepared for the internship that has been done in the Securelyshare, order to
study the practical aspect of the course and implementation of the theory in the real field with
the purpose of fulfilling the requirements of the course of BTech (Bachelor of Technology).
The aim of this internship is to be familiar to the practical aspect and uses of theoretical knowledge
and clarifying the career goals, so I have successfully completed the internship and compiled this
report as the summary and the conclusion that have drawn from the internship experience.
I would like to express my sincere gratitude to our internship coordinator who have given their
valuable time and given me chance to learn something despite having their busy schedule
Dr.B.V.Prabhu and Ms. Diana Steffi D.D his great guidelines for internship. I am also thankful to
Mr.Gunupuree Ravi (VP Engineering) and other staff member for their co-operative support, and
also presenting with an opportunity for me to have a practical experience in this organization.
Lastly, I would like to thank Mr. Gunupuree Ravi of Securelyshare for providing this opportunity to
work in Securelyshare and Ms. Nagashree who helped me to clutch the rear opportunities to learn
the real world situation. I am also grateful to all member of Securelyshare providing several
documents, papers, data, figures and services as well as sharing their experience with me and
teaching me different types of testing to operate effectively and efficiently. Thus, the time in
Securelyshare was very audacious and supportive to my career through which I have gained valuable
work experience that will help definitely makes a favorable impression on me as a prospective
future employer.
4
PRESIDENCY UNIVERSITY, BENGALURU
Professional Practice Program
Professional Practice (IP) – I
Key Words: AES 256 encryption, Black box testing, White box testing, Unit testing, System testing,
Integration testing, Acceptance testing.
Abstract: -In software organization testing is done which is use to identify quality of software
application. Now a day’s organizations mainly focus on software testing field so that the developed
application should satisfy the customer as well as organizations needs. Testing is done with the intent
of identifying the correctness, completeness, and security of developed software application. The
report attempts to provide the overview of application development departments and software
testing field. There are different types testing which are conducted at different stages. The objective is
to put all the levels of testing with their objective and its purpose in a single unified context. Although
with respect to vastness of the field the paper gives the idea about how different types of testing
should be done at different levels.
5
TABLE OF CONTENTS
1. Introduction 7
a. About the company 7
b. Company’s product 7
2. Frontend developer 9
a. Explanation 9
b. Role of frontend developer 9
c. Skills of frontend developer 9
3. Backend developer 10
a. Explanation 10
b. Roles of a backend developer 11
c. Skills for backend developer 11
4. Differences between frontend and backend developer 13
5. User Interface designer (UI Designer) 14
a. Explanation 14
b. Role of UI designer 15
c. Skills of UI designer 15
6. QA Specialist 16
a. Role of QA Specialist 16
b. Skills of QA Specialist 16
7. Types of testing 17
a. Black Box testing 18
b. White Box testing 20
c. Unit testing 22
d. System testing 23
e. Integration testing 24
f. Acceptance testing 25
8. Project Manager 26
a. Explanation 26
b. Role of Project Manager 27
c. Skills of Project Manager 27
9. Conclusion 28
10. References 28
6
Introduction:
Website http://www.securelyshare.com
Founded 2017
Traditional communication channels such as SMS, Email and Chat do not have the persistent end-to-
end security that is critical for safely delivering sensitive personal data, such as bank statements,
bills, reports, etc. These messages reside in the same inbox as spyware, malware, phishing, and
spam and there is no easy way to set and enforce privacy controls and persistent security. And for
years, third parties like credit reporting and background check agencies have been making money by
selling your personal data.
7
Company’s Vision:
Company’s Purpose:
Innovations:
Automated Keys
Uses standard AES 256 encryption, keys are computed and recomputed, no need to pre-
provision users.
PawaaFILEContainer
Dynamic policies – ‘where’, ‘when’, ‘how’, ‘how long’, complete audit trail and life time
control.
Id.SecurelyShare.com
Flexibility for recipient to link and use different authentication sources & devices such as Email
ID, User ID, Social ID, Device ID and Biometric data.
8
FRONT END DEVELOPER:-
A front-end developer is a type of computer programmer that codes and creates the visual front-
end elements of a software, application or website. He or she creates computing
components/features that are directly viewable and accessible by the end user or client.
A front-end developer is also known as a client end developer, HTMLer and front-end coder.
EXPLANATION:-
A front-end developer is a programmer that codes the front end of a website. Typically, the front-
end developer's job is to convert website design files into raw HTML, JavaScript (JS) and/or CSS
code. This includes the basic website design/layout, images, content, buttons, navigation and
internal links. The end result is code that serves as the website's front-end structure, which is used
by a back-end developer to add business logics and connect databases and processes, among other
processes.
A front-end developer is responsible for ensuring that a website's visual front end is free of
errors and looks exactly as designed.
A front-end developer also ensures that a website has the same visibility across different
computing and mobile Web browsers.
Similarly, in software applications, a front-end web developer creates the graphical user
interface (GUI) that enables access to the software's back-end features and capabilities.
9
BACK END DEVELOPER:-
A back-end developer is a type of programmer who creates the logical back-end and core
computational logic of a website, software or information system. The developer creates
components and features that are indirectly accessed by a user through a front-end application or
system.
EXPLANATION:-
Back-end developers primarily develop and maintain the core functional logic and operations of a
software application or information system. Typically, a back-end developer has expert
programming skills in C++, C#, Java and other high-level programming languages.
The key job role of a back-end developer is to ensure that the data or services requested by the
front-end system or software are delivered through programmatic means. Back-end developers also
create and maintain the entire back-end of a system, which consists of the core application logic,
databases, data and application integration, API and other back-end processes. Moreover, a back-
end developer performs the testing and debugging of any back-end application or system.
10
ROLES OF A BACKEND DEVELOPER:-
The backend developer job is to understand the goals of the website and come up with
effective solutions.
Storing data and also ensuring that it is displayed to those users who are supposed to have
access to it.
Responsible for developing Payment processing system like accepting data, securely storing
that info, and making charges to that payment.
He or she might be involved in the architecture of a system and Data science analyses.
Developers are responsible to organize the logic of the system which runs across various
devices.
Backend developer also needs to involve in building frameworks or the architecture to make
it easier to program against.
Back-end developers should have the skill for implementing algorithms and solving system
related problems.
11
1. Web Development Languages
Backend engineer should know at least one server-side programming languages like Java,
Python, Ruby, .Net etc.
MySql, MongoDB, Oracle, SQLServer, Redis are widely used for this purpose.
12
DIFFERENCES BETWEEN FRONT END AND BACK END DEVELOPER:-
13
User Interface Designer (UI Designer):-
User interface design (UI design) refers to the design of various types of software and hardware
interfaces through which users interact with computers and other technologies.
In today’s diverse tech world, UI design involves a wide spectrum of engineering practices applied to
different kinds of products and devices.
EXPLANATION:-
In general, UI design principles revolve around a user-friendly result. Developers and engineers
should look at what is most convenient for a user audience, as well as the requirements of the
system and other aspects of research that feed into UI design.
Some developers also consider the principle of consistency in UI design essential, where consistent
visual, functional or control elements flow through the interface's different parts. It is also important
to make interfaces easy to navigate and set up clear and accessible controls.
Messaging is also important because engineers must respond to the reality of different user events
and different types of errors or problems, such as
Hang-ups
Crashes
Dead screens
These and many other common issues of different kinds of interfaces, such as the familiar operating
systems (OS) on personal computers, must be addressed.
14
ROLES OF UI DESIGNER:-
1. Collaborate with product management and engineering to define and implement innovative
solutions for the product direction, visuals and experience.
2. Execute all visual design stages from concept to final hand-off to engineering.
3. Conceptualize original ideas that bring simplicity and user friendliness to complex design
roadblocks.
4. Create wireframes, storyboards, user flows, process flows and site maps to effectively
communicate interaction and design ideas.
5. Present and defend designs and key milestone deliverables to peers and executive level
stakeholders.
15
QA SPECIALIST (Quality Assurance):-
A QA Specialist is responsible for quality assurance audits and ensures the product integrity and that
standards are being met.
A good QA specialist will know how to troubleshoot systems to ensure reliability, usability and
performance.
Writing a good job description for QA specialist will require you to understand the skills and
responsibilities needed for the specific project and ongoing work.
ROLE OF QA SPECIALIST:-
1. An accountable team player who is detail and quality-oriented with solid understanding of
quality assurance principles, systems, methods and procedures.
2. Quality certification (from American Society for Quality or equivalent), is highly desirable.
3. An accountable team player who is detail and quality oriented with an understanding of
quality assurance principles, systems, and procedures.
4. Registered Quality Assurance Professional – Good Clinical Practices (RQAP-GCP) from the
Society of Quality Assurance.
5. Strong organizational skills, ability to pay attention to detail, good verbal and written skills.
6. Knowledge of functionality, compatibility, usability, reliability, exploratory, and load/stress
testing practices.
7. Ability to show exceptional attention to detail, and be able to interact well with others.
8. Great attention to detail, process-orientation and the ability to stay focused while
performing the review.
9. The ability to demonstrate a strong understanding of good customer service principles.
10. Able to solve problems and make informed decisions, using knowledge, logic and good
judgment.
1. Confidence
2. Excellent technical skills
3. Good numerical skills and an understanding of statistics
4. Leadership skills
5. Planning and organization skills
6. Communication and interpersonal skills
7. Problem-solving skills
8. Team working skills
9. IT skills
16
TYPES OF TESTING:-
1. Manual Testing:-
Manual Testing is a type of Software Testing where Testers manually execute test cases
without using any automation tools. Manual Testing is the most primitive of all testing types
and helps find bugs in the software system.
Any new application must be manually tested before its testing can be automated. Manual
Testing requires more effort but is necessary to check automation feasibility.
The key concept of manual testing is to ensure that the application is error free and it is working in
conformance to the specified functional requirements.
Test Suites or cases, are designed during the testing phase and should have 100% test coverage.
It also makes sure that reported defects are fixed by developers and re-testing has been performed
by testers on the fixed defects.
Basically, this testing checks the quality of the system and delivers bug-free product to the
customer.
17
Types of Manual Testing:
BLACK BOX TESTING, also known as Behavioral Testing is a software testing method in which the
internal structure/design/implementation of the item being tested is not known to the tester. These
tests can be functional or non-functional, though usually functional.
18
This method is named so because the software program, in the eyes of the tester, is like a black box;
inside which one cannot see. This method attempts to find errors in the following categories:
Example:
A tester, without knowledge of the internal structures of a website, tests the web pages by using a
browser; providing inputs (clicks, keystrokes) and verifying the outputs against the expected
outcome.
Advantages:
Tests are done from a user’s point of view and will help in exposing discrepancies in the
specifications.
Tester need not know programming languages or how the software has been implemented.
Tests can be conducted by a body independent from the developers, allowing for an
objective perspective and the avoidance of developer-bias.
Test cases can be designed as soon as the specifications are complete.
Disadvantages:
Only a small number of possible inputs can be tested and many program paths will be left
untested.
Without clear specifications, which are the situation in many projects, test cases will be
difficult to design.
Tests can be redundant if the software designer/developer has already run a test case.
Ever wondered why a soothsayer closes the eyes when foretelling events? So is almost the
case in Black Box Testing
19
WHITE BOX TESTING:-
WHITE BOX TESTING (also known as Clear Box Testing, Open Box Testing, Glass Box Testing,
Transparent Box Testing, Code-Based Testing or Structural Testing) is a software testing method in
which the internal structure/design/implementation of the item being tested is known to the tester.
The tester chooses inputs to exercise paths through the code and determines the appropriate
outputs. Programming know-how and the implementation knowledge is essential.
White box testing is testing beyond the user interface and into the nitty-gritty of a system.
This method is named so because the software program, in the eyes of the tester, is like a
white/transparent box; inside which one clearly sees.
Example:
A tester, usually a developer as well, studies the implementation code of a certain field on a
webpage, determines all legal (valid and invalid) AND illegal inputs and verifies the outputs against
the expected outcomes, which is also determined by studying the implementation code.
White Box Testing is like the work of a mechanic who examines the engine to see why the car is not
moving.
Advantages:
Testing can be commenced at an earlier stage. One need not wait for the GUI to be
available. Testing is more thorough, with the possibility of covering most paths.
Disadvantages:
Since tests can be very complex, highly skilled resources are required, with a thorough
knowledge of programming and implementation.
Test script maintenance can be a burden if the implementation changes too frequently.
Since this method of testing is closely tied to the application being tested, tools to cater to
every kind of implementation/platform may not be readily available.
20
Differences between Black Box Testing and White Box Testing:-
21
UNIT TESTING:-
UNIT TESTING is a level of software testing where individual units/ components of software are
tested. The purpose is to validate that each unit of the software performs as designed.
A unit is the smallest testable part of any software. It usually has one or a few inputs and usually a
single output.
In procedural programming, a unit may be an individual program, function, procedure, etc. In
object-oriented programming, the smallest unit is a method, which may belong to a base/ super
class, abstract class or derived/ child class.
When is it performed?
Unit testing is the first level of software testing and is performed prior to Integration Testing.
22
SYSTEM TESTING:-
SYSTEM TESTING is a level of software testing where, complete and integrated software is tested.
The purpose of this test is to evaluate the system’s compliance with the specified requirements.
EXAMPLE:-
During the process of manufacturing a ballpoint pen, the cap, the body, the tail, the ink cartridge
and the ballpoint are produced separately and unit tested separately. When two or more units are
ready, they are assembled and Integration Testing is performed. When the complete pen is
integrated, System Testing is performed.
When is it performed?
System Testing is the third level of software testing performed after Integration Testing and before
Acceptance Testing.
System software architecture and business requirements are both tested in system testing.
Proper system testing help in mitigating after production go live issues and bugs.
23
Integration Testing:-
INTEGRATION TESTING is a level of software testing where individual units are combined and tested
as a group.
The purpose of this level of testing is to expose faults in the interaction between integrated units.
Test drivers and test stubs are used to assist in Integration Testing.
Example:-
During the process of manufacturing a ballpoint pen, the cap, the body, the tail and clip, the ink
cartridge and the ballpoint are produced separately and unit tested separately. When two or more
units are ready, they are assembled and Integration Testing is performed.
For example, whether the cap fits into the body or not.
Advantages:
It is very convenient to approach if the systems are small. As the time taken for this
approach is more, big systems can lead to more consumption of time.
Fault detection is very easy with this, considering small systems.
24
ACCEPTANCE TESTING:-
ACCEPTANCE TESTING is a level of software testing where a system is tested for acceptability. The
purpose of this test is to evaluate the system’s compliance with the business requirements and
assess whether it is acceptable for delivery.
EXAMPLE:-
During the process of manufacturing a ballpoint pen, the cap, the body, the tail and clip, the ink
cartridge and the ballpoint are produced separately and unit tested separately. When two or more
units are ready, they are assembled and Integration Testing is performed. When the complete pen is
integrated, System Testing is performed. Once System Testing is complete, Acceptance Testing is
performed so as to confirm that the ballpoint pen is ready to be made available to the end-users.
When is it performed?
Acceptance Testing is the fourth and last level of software testing performed after System Testing
and before making the system available for actual use.
External Acceptance Testing is performed by people who are not employees of the organization
that developed the software.
Customer Acceptance Testing is performed by the customers of the organization that developed the
software. They are the ones who asked the organization to develop the software. [This is in the case
of the software not being owned by the organization that developed it.]
User Acceptance Testing (Also known as Beta Testing) is performed by the end users of the
software. They can be the customers themselves or the customers’ customers.
25
PROJECT MANAGER:-
A project manager is the person responsible for leading a project from its inception to execution.
This includes planning, execution and managing the people, resources and scope of the project.
Project managers must have the discipline to create clear and attainable objectives and to see them
through to successful completion.
The project manager has full responsibility and authority to complete the assigned project.
A project manager's position may end with the completion of the assigned project, or it may be a
semi permanent position for a limited time or until a predetermined point in the project’s schedule
or stage of completion.
EXPLANATION:-
A project manager's responsibilities include overall management, but he or she is seldom directly
involved with the activities that actually produce the end result. The position also oversees any
associated products and services, project tools and techniques to help ensure good practices. In
addition, project managers are responsible for recruiting and building project teams, and making
projections about the project's risks and uncertainties.
26
Roles of Project Manager:-
Communication
Leadership
Team management
Negotiation
Personal organization
Risk management
27
CONCLUSION
In application development there are various departments which contribute for the application
development successfully. A team of Frontend developers, Backend developers, UI designer, QA
specialist, Project manager everyone has equal priority and equal contribution for the app
development.
In Software testing there are different types of testing which are done for different purpose so that
quality product is developed. The main objective behind this is to develop error free software.
Adequate verification will lead to less issues being present during the validation phase as most of
issues are already discovered and corrected during verification and Adequate validation will ensure
that software application is developed is as per software artifacts finalized in verification. Therefore
it is important to know all the testing activities as Validation and Verification process goes hand in
hand and they reduces the future rework and cost.
REFERENCES
1. www.softwaretestingclass.com
2. www.guru99.com
3. www.softwaretestingfundamentals.com
4. www.educba.com
5. www.techopedia.com
28