Product Testing

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 35

PRODUCT TESTING

A thesis submitted in fulfillment of the Requirements


for the award of the degree of
INTEGRATED MASTERS OF SCIENCE IN MATHEMATICS AND
COMPUTING
BY NEHA ARCHY (IMH/10026/2017)

DEPARTMENT OF MATHEMATICS
BIRLA INSTITUTE OF TECHNOLOGY MESRA,
RANCHI - 835215. (INDIA)

1|Page
Declaration

I certify that
a. The work contained in the thesis is original and has been done by myself under the general
supervision of my supervisor(s).
b. The work has not been submitted to any other Institute for any degree or diploma.
c. I have followed the guidelines provided by the Institute in writing the thesis.
d. I have conformed to the norms and guidelines given in the Ethical Code of Conduct of the
Institute
e. Whenever I have used materials (data, theoretical analysis, and text) from other sources, I have
given due credit to them by citing them in the text of the thesis and giving their details in the
references.
f. Whenever I have quoted written materials from other sources, I have put them under quotation
marks and given due credit to the sources by citing them and giving required details in the
references.

Name: Neha Archy


Roll No: IMH/10026/17

2|Page
APPROVAL OF THE GUIDE(S)
Certificate
This is to certify that the contents of the thesis entitled “Product Testing” is a
bonafide work carried out by Neha Archy (Roll No.: IMH/10026/17) under my/our
supervision and guidance in fulfillment of the requirements for the degree of
Integrated Masters of Science in Mathematics and Computing.
The contents of the thesis have not been submitted earlier for the award of any
other degree or certificates and we hereby commend the work done by him in this
connection

(Mr. Sunil Kumar) (Dr. Subha Sarkar)


Technical Lead Department of Mathematics
Wipro Birla Institute of Technology, Mesra

3|Page
DEPARTMENT OF MATHEMATICS
BIRLA INSTITUTE OF TECHNOLOGY MESRA, RANCHI-835215

THESIS APPROVAL CERTIFICATE

This is to certify that the work embodied in this thesis entitled “Product Testing "
carried out by Neha Archy (Roll No. IMH/10026/2017) is approved for the degree
of Integrated Master of Science in Mathematics and Computing of Birla Institute
of Technology, Mesra, Ranchi.

Date:
Place:

Internal Examiner(s) External Examiner(s)


Name & Signature Name & Signature

(Dr. Saral Kumar Jain)


Head of Department
Department of Mathematics
Birla Institute of Technology

4|Page
ACKNOWLEDGEMENT

I would like to express my deep gratitude to my mentor Mr. Sunil Kumar


(External mentor) & project supervisor Dr. Subha Sarkar (Internal guide),
Department of Mathematics, Birla Institute of Technology Mesra, Ranchi under
whose guidance I was able to complete my project by overcoming all the hurdles
that came in between throughout this journey. Their encouragement, constant
supervision, and attention to detail have been of great help in carrying out this
project with success.

I am very thankful to Dr. Saral Kumar Jain, Professor, and Head, of


the Department of Mathematics, Birla Institute of Technology, Mesra, Ranchi for
his support and inspiration throughout the course.

I would like to extend my gratitude to Dr. Indranil Manna, Vice-


Chancellor, Birla Institute of Technology, Mesra, Ranchi, for providing me with all
the facilities to successfully complete this project.

I would like to thank all the faculties of the Department, staff members,
friends, and family members, especially my parents who always picked me up on
time and encouraged me to progress each day.

Thank you

Date-09 May 2022 Neha Archy


IMH/10026/2017

5|Page
ABSTRACT

Since the use of computers amplified the importance of software testing that has gained more

mainstream attention from information technology (IT)professionals. . From an IT point of view,

innovations made software developers to respond to each emerging technology quicker; thus it

negatively impacted software quality. Software quality has a directly connected with software

testing, therefore testing is an very tectonic part of the software development life cycle. From

1979 to 2012, there was significant decrease in expenditure of software testing, but from 2013

to 2016 the numbers are quite the opposite. However, this stabilization period may depend on

various factors, including the size and the complexity of the software development projects,

labor costs. Software testing is a discipline which is not very hard or tough to execute. However,

it may be costly and demanding in human effort or in technology which multiplies it . Software

testing is often considered as low-level task. Inspite of these baseless assumptions, it is a very

important part of software development process determining the efficacy of final output that is

inclined to have serious error. As a matter of fact, software testing faces a set of challenges with

the complexities of software growth. Spotting of the right domain that has to be tested, the lack

of skills in the areas of intelligence-driven testing strategies and newer test automation skills,

tight control of budgets, selection of the right testing techniques, types etc. Therefore, ensuring

that software behaves according to the desired levels of quality and dependability becomes more

crucial, increasingly difficult, and expensive.

NOTE- As I’ve signed Non-Disclosure Agreement (NDA) with Wipro, therefore I will not be
revealing any confidential data, code and information outside the organization

6|Page
TABLE OF CONTENTS

1)Abstract…………………………………………………………………………………. 6
2)About the company……………………………………………………………………… 9
3)Chapter 1:Software Testing………………………………………………………………10
1.1 What is software testing………………………………………………………………..10
1.2Why to test………………………………………………………………………………11
1.3What is defect……………………………………………………………………………12
1.4What is quality……………………………………………………………………………12
1.5 Principles of testing…………………………………………………………………..13-14
4) Chapter 2 : Level of testing……………………………………………………………….15
5) Chapter3 : Classification of testing…………………………………...…………………..16
3.1 Types of functional testing………………………………………………………………17
3.2 Types of non-functional testing………………………………………………………….17
3.1 (a)Smoke Testing………………………………………………………………………...18
3.1(b)Positive testing………………………………………………………………………...18
3.1(c) Negative testing………………………………………………………………………18
3.1(d)Regression testing……………………………………………………………………..18
3.2 (a) Security testing……………………………………………………………………….19
3.2(b) Performance testing…………………………………………………………………...19
3.2(c) Compatibility testing………………………………………………………………….20
3.2(d) Localization testing…………………………………………………………………...20
3.2(e) Installation testing…………………………………………………………………….20
3.2(f)  Internationalization testing……………………………………………………………………21
3.2(g) Portability testing……………………………………………………………………..21
6)Chapter 4:Software Development Life Cycle……………………………………………….22
4.1Phases of SDLC………………………………………………………………………...23-24
7)Chapter 5: Software Testing Life Cycle……………………………………………………...25
5.1Phases of STLC…………………………………………………………………………26-27

7|Page
TABLE OF CONTENTS

8)Chapter 6:Defect Management Life Cycle…………………………………………………28


6.1 Phases of defect management life cycle……………………………………………….29
9) Chapter 7: What is a test case in software testing…………………………………………30
10)Future scope of software testing…………………………………………………………...31
11)Conclusion…………………………………………………………………………………32
12)List of figures………………………………………………………………………………33
13)References…………………………………………………………………………………..34

8|Page
About the company
Wipro Limited is an Indian multinational corporation that provides information

technology, consulting and business process services.Wipro Limited a leading global information

technology, consulting and business process services company. Wipro controls the power of

cognitive computing, hyper-automation, robotics, cloud, analytics and emerging technologies to

help their clients to get adapted in this digital world and make them successful. A company

recognized globally for its comprehensive portfolio of services, strong commitment to

sustainability and good corporate citizenship, we have over 220,000 dedicated

employees serving clients across six continents. Wipro discover ideas and connects the dots to

build a better and great future. The Spirit of Wipro is the key of Wipro as these are wipro

values. It defines their character. Wipro aims to help their clients to maximize the value of their

businesses and make Wipro an employer of choice that attracts, develops, and retains a

productive and diverse talent base of 230,000+ employees representing 134 nationalities across

67 countries.

9|Page
Chapter 1: Software Testing
1.1 What is software testing
Software testing is a process that evaluates the functions of a software application with an aim
to find whether the developed software meets the specific requirements which ensures that the
product is error-free in order to produce a good quality product. It is used to identify the
correctness and quality of developed computer software. Testing is the step that is followed
before the launch of the product in the market. It includes examination, analysis, observation
evaluation, etc of different aspects of a product. Testing includes an examination of code in a
detailed manner and also the execution of code in various environments so that defects can be
known easily.

Fig 1.1 Software testing icon

Software testing is a concept that comes in different variations, which can be classified further on
basis of the level of testing and can also be classified as functional and non-functional testing.
Testing involves an examination of code and also the execution of code in many environments.
In the existing scenario of software development, a testing team can be separate from the
development team so that information derived from testing can be used to correct the process of
the software development team. The success of developed software completely depends upon the
audience who is targeted.

10 | P a g e
1.2 WHY TO TEST
Software testing provides a way of measuring the quality of the software and determining
whether
it fulfills the requirements and how well it works before it is installed in a live operation.
Software
testing has to be carried out because it gives the effective performance of the software
application. The role of testing in software development is significant the procedure helps
software teams in
verifying the functional and non-functional features and requirements of projects. The cost of
removing bugs is less if bugs or errors are detected at early stages than in comparison to later
stages of development .

The quality of the product very well speaks for itself and users can identify the quality and
experience. Not only can testing involves greater engagement from users, but if software found
in the market that has reduced performance or does not perform well, then reputation goes down
in the market. Users are not going to trust such software. There are chances that the reputation of
the organization is going to suffer a downfall. In accordance with experts, it is not very
important. But however, if in case, any software is introduced in the market without performing
software testing and if the performance of the software does not meet the expectation of the
clients, convincing people will be a big deal.

11 | P a g e
1.3 What is a defect
Deviation from requirement and software is doing what it should not do is

termed as a defect. When the actual result gets deviated from the expected outcome

while testing a of software application or product is performed then it results into a

defect.  In other words, a defect is a difference between expected and

actual outcome in the context of testing.

1.4 What is Quality


Defect-free product is known as quality.

Test the application -> defect found -> Defect fixed by developer -> % Defect

rate fall down -> Quality increases

Testing is directly proportional to quality.

12 | P a g e
1.5 Principles of testing
1.5.1)Testing shows the presence of defects
• Software testing reduces the presence of defects.

• Software testing talks about the presence of defects and does not talk
about the absence of defect.
• Even multiple testing can never ensure that software is 100 percent bug
free.

1.5.2) Exhaustive testing is not possible


• Its means that software can never test at every test cases.

1.5.3) Early Testing


•Testing should get initiated as early as possible in the Software Development
Life Cycle(SDLC), so that defects can be captured in the early stages. It is
recommended to start finding the bug the moment the requirements are defined.
• It is cheaper to find errors in initials stages of testing.

13 | P a g e
1.5.4) Defect clustering
•It states that 80 % of the defects emerges from 20% modules. Defects are not

distributed uniformly but it is concentrated across two or three

functionalities.

1.5.5) Absence of error fallacy


•If the software which is built is 99 % bug free but it do not meet user

requirements then it is unusable, it is not only important that software is

99% bug free but it should also fulfill all the customer requirements.

1.5.6) Testing is context department


• Approach of testing depends on context of software development,

different types of software need to perform different type of testing.

1.5.7) Pesticide paradox


• Repeating the same test cases repeatedly will not help in finding new bugs.

14 | P a g e
Chapter 2: Level of testing
• Unit testing - Unit testing is a part of software development process in which

the smallest testable parts of an application which is called units, are

individually and independently tested. The main purpose behind unit

testing is to check that all the individual parts are working properly.

• Integration testing- Integration Testing is the second level of software testing

where individual units are integrated and then tested to verify if they

are working in proper way.

• System testing- System Testing means testing the system in a whole way. All the

modules are integrated in order to verify if the system is working as predicted.

System Testing is executed after Integration Testing. This plays an important role in giving a

very good quality product.

• Acceptance testing- Acceptance testing final level of testing which is performed by client

to determine whether or not the software system has met the required target.

15 | P a g e
Chapter3: Classification of testing

a) Functional testing

b) Non-Functional testing

Functional Testing- It is a type of software testing which is used to

verify the functions of the software application, whether the

function is working according to the requirement specification. In

function testing, each function tested by giving the value, determining

the output, and verifying the actual output as expected.

Functional testing also known as black-box testing, as it focuses

on application specification rather than actual code. Tester has to test

only the program rather than the system

Non-Functional testing- Non-functional Testing is a method of software

testing that examines a software application's non-functional attributes

such as productivity, compatibility, functionality, efficiency, loading

capacity etc. It is aims to assess a system's preparation based on non-

functional conditions that never get covered by functional tests.

16 | P a g e
An example of a non-functional test is to see how many users could sign

into a program at same time. Non-functional testing is important

as functional testing, and it has plays good role in customer satisfaction.

3.1 Types of functional testing

a) Smoke testing

b) Positive testing

c) Negative testing

d) Regression testing

3.2Types of non-functional testing

a) Security testing

b) Performance testing

c) Compatibility testing

d) Localization testing

e) Installation testing

17 | P a g e
f)  Internationalization testing

g) Portability testing

3.1 (a) Smoke testing


It is a type of functional testing whose main motive is not to perform exhaustive
testing but its aim is to examine important functions of a software application

3.1(b)Positive testing
Positive testing is a process of testing where the system or an application

is tested against the valid input data that is software is tested by entering

valid values.

3.1(c)Negative testing
Negative testing is a process of testing where the system or an
application is tested against the invalid input data that is software is
tested by entering invalid values.

3.1(d) Regression testing


Regression testing is a kind of functional testing where we can examine the
changes made in the codebase do not affect the existing software

18 | P a g e
functions. For example, the code changes can include adding
new features, fixing bugs, or updating a existing features.

3.2(a)Security testing
Security testing is an non-functional testing that is an important part of

software testing which is used to find the weaknesses, risks, and threats in

the software application and also help us to stop the attack from the

outsiders ant it makes sure that software applications are secure. If we

perform security testing, then it helps us to identify all the possible security

threats that can take place and also helps the programmer to fix those

errors.

3.2(b)Performance testing
Performance Testing is a process which examines the quality and

capability of a product. It is a method which is executed to determine the

system performance in terms of speed, reliability and stability under changing

conditions. Performance testing is also known as Perf Testing. It mainly check response

time and loading time considering various factors.

19 | P a g e
3.2(c) Compatibiliity Testing
It is a type of non-functional testing which aims at checking compatibility

in different environments and platforms.Testing the application in the

the same platform but having differences in version is what known as


compatibility

testing.

3.2(d) Localization Testing


It is a type of non-functional testing  which aims at ensuring that the software application

has capability to be used in that specific region, it focuses at a small number of users.

3.2(e) Installation Testing


It is a type of non-functional testing which checks that software application is

20 | P a g e
successfully installed as per required and is working as expected after installation

3.2(f) Internalization Testing


It is a type of non-functional testing and it is the process of verifying the software application

works successfully and uniformly across multiple regions and cultures. Users are targeted

globally.

3.2(g) Portability Testing


Portability testing refers to the software testing with ease of moving one software product

From one platform to platform. Example: - It includes testing of a software

product which is executes successfully in Windows 7 and calculating its behavior in

Windows 8.

21 | P a g e
Chapter 4: Software development life cycle

Fig:4.1 sdlc diagram

Software Development Life Cycle (SDLC) is a process that defines the steps involved in the
development of software. It covers the detailed plan for building, deploying and maintaining the

22 | P a g e
software.Software Development Life Cycle (SDLC) is a process used by the software industry to
design, develop and test good quality software. The SDLC tries to produce top quality software
that meets or exceeds customer expectations, reaches completion within time.

4.1 Phases of SDLC

a)Planning
The planning stage is a phase in which developers will plan for

the upcoming project. The planning phase of the SDLC is

also when the project plan is developed that identifies, and

tasks and resources required for building the structure for a

project that is it involves resources, time, milestones,cost.

b)Analysis
The analysis phase is where analyze each requirement that is what

is needed , what is not needed, risks are predicted, documentation

prepared as software requirement specification.

c)Design
It is a part of SDLC that involves the architecture of software products. This is

a very important phase in the software development life cycle of a system as

23 | P a g e
the logical designing of the system is converted into physical design.

d) Development
In this stage of SDLC, the actual development of software starts and the

product is built. Different high-level programming languages is used for

execution such as C, C++, Pascal, Java, etc.

The programming language is chosen according to the type of software

being developed.

e) Testing
The testing phase of the software development lifecycle (SDLC) is which is

focused on investigation and discovery. During the testing phase, developers

track out whether the code written and programming work according to

customer requirements

f) Deployment
This is last phase in sdlc which deals with delivery of the software product to client .

24 | P a g e
Chapter 5: Software Testing Life Cycle

Fig:5.1 STLC diagram

The process of software testing is also known as STLC (Software Testing Life Cycle) which
includes phases in the testing process. This process is executed in a very planned and structured
25 | P a g e
manner. All these activities are done to improve the quality of the software product. The
Software Testing Life Cycle (STLC) is a sequence of specific actions performed during the
testing process to make sure that the software quality objectives are met totally.

5.1 Phases in STLC

a)Requirement Analysis
Requirement Analysis is the first stage in the Software Testing Life Cycle.

In this stage, the testers examines all the testable requirements. It is a phase

Where it is understood requirements like what is to be tested and a testing team

studies requirements from a testing point of view

b)Test Planning
A test plan describes the aim that will be used to test an software application, the

resources that will be needed, the test environment in which testing will be

take place, and the limitations of the testing and the schedule of the testing activities.

c)Test Case Development


The test case development phase gets initiated once the test planning phase is

over. In this phase, testing team notes the detailed test cases. Testing team

26 | P a g e
also prepare the required test cases to perform testing . When the test cases are

prepared then quality assurance team reviews those test cases.

d)Environment Setup
A testing environment is a platform of software and hardware for the testing teams

to execute test cases. In simple words, it supports test execution with hardware,

software and network configured

e) Test Execution
Process of execution of code and comparing the actual and expected outcome.

f) Test Closure
It is the last phase of the software testing life cycle in which document is prepared which

gives a summary of all the test that was executed. Basically, it is a detailed analysis of the error

that was removed.

27 | P a g e
Chapter 6: Defect Management Life Cycle

Fig 6.1: Defect Management Life Cycle Diagram

Bug life cycle which is known as defect life cycle is a process in which defect goes through
different stages in its entire life. This lifecycle gets initiated as soon as a error is reported by the
tester and ends when a tester ensures that the issue is fixed and won't occur again

28 | P a g e
.

6.1 Phases in defect management life cycle

NEW PHASE-When a new defect is logged and posted for the first time. It is

assigned a status as NEW

OPEN PHASE-The developer starts analyzing and works on the defect fix

FIXED PHASE- When a developer makes a necessary code change and verifies

the change, bug status as “Fixed.”

RE-TEST PHASE-Once the defect is fixed the developer gives a particular code

for retesting the code to the tester to ensure that software is bug or error free.

RE-OPEN PHASE-If the bug persists even after the developer has fixed the bug, the

tester changes the status to “reopened”. Once again the bug goes through the

life cycle.

CLOSED PHASE-  When a defect does not exist and is tested and verified properly then it ends at

a closed state

29 | P a g e
Chapter 7: What is a test case in software testing
The test case is defined as a set of conditions under which a tester decides whether

a software application is working as per the customer's requirements and if not then

that is a bug is found then attempts are made to make the software application bug free.

Characteristics of test cases

30 | P a g e
Fig 7.1: Characteristics of test cases

Future scope of software testing

Software testing is a very important part of software development process.

Software testing will never get outdated in coming future, In near future, most of

the companies will move to Automation and hire testers with multiple skills and

the tester and developer will not be different.

Humans in testing can only be replaced if in the future if a very robust AI application a can

be developed which can copy human thinking.

To test software, a tester is anticipated to know the software that is to be tested and the

tools

required to test it. To gain great testing skills, one needs to be very organized, hard working

and should have great level of patience.

. Professionally trained software testers are in great demand by software developing

companies

finally, every expert believes that future of emerging software testing domain is very

positive,

as opportunities for testers are simply amplifying very fast.

31 | P a g e
.

32 | P a g e
Conclusion
The goal of this thesis is to include the information about testing concepts carried out in

software development process. Software quality depends upon testing of softwares. One aim of

software testing is be to find as many failures as possible so that the errors can be identified and

fixed as soon as possible.

Quality of software is directly proportional to testing performed . It aims at meeting business

requirements as well as user requirements. Once the delivery is made to the end-users they

should be able to use it without facing any problems. In order to achieve this target the tester

should know that how the customers are going to take the benefit of the software application and

they should write down the test scenarios as well as design the test cases.in accordance This

will surely help in attaining all the customer’s requirements

33 | P a g e
LIST OF FIGURES

Fig 1.1 Software testing icon

Fig:4.1 SDLC diagram

Fig:5.1 STLC diagram

Fig 6.1: Defect Management Life Cycle Diagram

Fig 7.1: Characteristics of test cases

34 | P a g e
References
1) Wipro https://talentnext.wipro.com/PBLApp
2)Wipro, https://www.wipro.com/
3) https://www.geeksforgeeks.org/

35 | P a g e

You might also like