Documente Academic
Documente Profesional
Documente Cultură
on
SOFTWARE TESTING
Submitted in partial fulfillment of the requirements
For the award of the degree of
BACHELOR OF TECHNOLOGY
In
ELECTRONICS AND COMMUNICATION
Submitted by: HARSH SAROCH
2813247
Batch (2013-2017)
Samalkha, Panipat
(2016-2017)
1
CANDIDATES DECLARATION
I hereby declare that the work presented in this training report entitled Software
Testing, submitted in partial fulfillment of the requirement for the award of the degree
of Bachelor of Technology in Electronics and Communication Engineering, submitted to
Panipat Institute of Engineering & Technology, Kurukshetra University,
Kurukshetra, India is an authentic record of my own work carried out during the period
from 20 June,2016 to 17 August,2016 under the guidance of Mrs. Sampada Jain (Lead
Trainer-SQA).
The work reported in this project report has not been submitted by me for the award of
any other degree or diploma.
Date: 07 AUGUST,2016
Harsh
Saroch
Place: CHANDIGARH
2813247
1. ACKNOWLEDGEMENT
It is great pleasure to present this report undertaken by me as part of my B.
Tech (ECE) curriculum.
It is a pleasure that I find myself penning down these lines to express our
sincere thanks to the people who helped me along the way in completing my
project. I find inadequate words to express my sincere gratitude towards
them.
First and foremost, I would like to express our gratitude towards our training
guide Mrs. Sampada Jain for placing complete faith and confidence in my
ability for providing time, inspiration, encouragement, help, valuable
guidance, constructive criticism and constant interest. He took personal
interest in spite of numerous commitments and busy schedule to help me
complete this project.
Without the sincere and honest guidance of our respected Training guide I
would have not been to reach the present stage.
2. COMPANY PROILE
BEBO
Technologies
Pvt.
Ltd.,
an
ISO
9001:2008 compliant company, has emerged into providing practical training on various
software technologies under the banner of BEBO Technical Education Services(BTES).
BTES focuses on strategic and practical approach in providing training to students and
working professionals. Under the close guidance and supervision of our experienced
professionals, you will be trained on various technical aspects to tackle industry
challenges
faced
regularly
in
your
professional
life.
Our courses cover everything necessary to build a strong professional foundation.
Through our courses, which are developed by industry experts, we bring their learning
and experience to you so that you excel in your professional life. This brings you at par
with working professionals and thus, meet the industry expectations.
As of July 2013, it is owned and operated by its founders and, who took over
from after the company declared bankruptcy. BEBO technologies provides teams of
dedicated software engineers who know how to satisfy client testing requirements
with efficient management skills and software product engineering methodologies:
We overcome the challenges of sketchy specifications, 48-hour turnarounds
and complicated end-user software needs.
We maximize the benefits of each offshore team by breaking the
communication, cultural and time-different barriers.
We overcome the challenges of working with an offshore team and delivering
a quality application while meeting time-to-market demands.
We Have nearly a decade of experience in streamlining our offshore software
product engineering practice.
We are adaptable to our customers needs.
CONTENTS
1. Candidate's Declaration
2. Certificate
ii
3. Acknowledgement
iii
4. Abstract
iv
5. List of Figures
vi
6. List of Tables
vii
7. List of Graphs
viii
Objectives of Testing
If testing is done properly, it uncovers errors and after fixing those errors we have
software that is being developed according to specifications.
The above objective implies a dramatic change in viewpoint. The move counter to
the commonly held view than a successful test is one in which no errors are
found. In fact, our objective is to design tests that systematically uncover different
classes of errors and do so with a minimum amount of time and effort.
Testing principles
Before applying methods to design effective test cases, software engineer must
understand the basic principles that guide the software testing process. Some of the most
commonly followed principles are:
1. All test should be traceable to customer requirements as the objective of testing is
to uncover errors, it follows that the most severe defects (from the customer point
of view) are those that causes the program to fail to meet its requirements.
2. Tests should be planned long before the testing begins. Test planning can begin as
soon as the requirement model is complete. Therefore, all tests can be planned and
designed before any code can be generated.
3. Exhaustive testing is not possible. The number of paths permutations for
impossible to execute every combination of paths during testing. It is possible
however to adequately cover program logic and to ensure that all conditions in the
procedural design have been exercised.
4. To be most effective, an independent third party should conduct testing. By most
effective, we mean testing that has the highest probability of finding errors (the
primary objective of testing).
Levels Of Testing
To test a software there are four levels of testing which we use:
Unit Testing
Integration Testing
System Testing
Acceptance Testing
Unit Testing:
This testing is done for each module of the program to ensure the validity
of each module. e.g.: a function, method, loops etc. The goal of unit testing is to isolate
each part of the program and show that the individual parts are correct. This type of
testing is done usually by developers by writing test cases for each scenarios of the
module and writing the results occurring in each step for each module.
Integration Testing:
This is the phase in software testing in which individual software
modules are combined and tested as a group. It occurs after unit testing and before system
testing.
Integration testing takes as its input modules that have been unit tested, groups them in
larger aggregates, applies tests defined in an integration test plan to those aggregates, and
delivers its output as the integrated system ready for system testing.
System Testing:
System testing of software or hardware is testing conducted on a
complete, integrated system to evaluate the system's compliance with its specified
requirements. System testing falls within the scope of black box testing, and as such,
should require no knowledge of the inner design of the code or logic system testing tests
not only the design, but also the behavior and even the believed expectations of the
customer.
Acceptance Testing:
Acceptance testing is black-box testing performed on a system prior to its
delivery. It is also known as functional testing, black-box testing, QA testing, application
testing, confidence testing, final testing, validation testing, or factory acceptance testing.
Software developers often distinguish acceptance testing by the system provider from
acceptance testing by the customer prior to accepting transfer of ownership. In the case of
software, acceptance testing performed by the customer is known as user acceptance
testing (UAT), end-user testing, site (acceptance) testing, or field (acceptance) testing.
10
Types of Testing
There are many types of testing which we use during testing any application or software.
But mainly there are only three types of testing which further contains many other types
of testing under them.
Unit testing:
This testing is done for each module of the program to ensure the validity of each
module. e.g.: a function, method, loops etc. The goal of unit testing is to isolate each part
of the program and show that the individual parts are correct. This type of testing is done
usually by developers by writing test cases for each scenarios of the module and writing
the results occurring in each step for each module.
Structural Testing:
It is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality. In white-box testing an internal perspective of
the system, as well as programming skills, are required and used to design test cases.
Functional Testing:
This type of testing ignores the internal parts and focus on the output is as per
requirement or not. Black-box type testing geared to functional requirements of an
application.
Integration Testing:
Testing of integrated modules to verify combined functionality after integration. Modules
are typically code modules, individual applications, client and server applications on a
network, etc.
12
System Testing:
Entire system is tested as per the requirements. Black-box type testing that is based on
overall requirements specifications, covers all combined parts of a system.
Usability Testing:
User-friendliness check Application flow is tested can new user understand the
application easily, Proper help documented whenever user stuck at any point. Basically
system navigation is checked in this testing.
Compatibility Testing:
Testing how well software performs in a particular hardware/software/operating
system/network environment and different combination s of above.
Configuration Testing:
This testing includes testing the software with the different possible hardware
configurations and testing each possible configuration of the software.
Concurrency Testing:
Multi-User testing geared towards determining the effects of accessing the same
application code, module or database records. Identifies and measures the level of
locking, deadlocking, and use of single threaded code.
6. Volume Testing
7. Recovery Testing
Security Testing:
Security testing attempts to verify that protection mechanisms built into a system will
protect it from improper penetration. During security testing, the tester plays the role of
the individual who desires to penetrate the system. The basic security concepts that need
to be covered by security testing are: confidentiality, integrity, authentication, availability,
and authorization.
Automation Testing:
Its the use of software to control the execution of tests, the comparison of actual
outcomes to predicted outcomes, the setting up of test preconditions, and other test
control and test reporting functions. Commonly, test automation involves automating a
manual process already in place that uses a formalized testing process.
Performance Testing:
Term often used interchangeably with stress and load testing to check whether system
meets performance requirements.
Load Testing:
Its a performance testing to check system behaviour under load. Testing an application
under heavy loads, such as testing of a web site under a range of loads to determine at
what point the systems response time degrades or fails.
Stress Testing:
System is stressed beyond its specifications to check how and when it fails is performed
under heavy load like putting large number beyond storage capacity, complex database
queries, continuous input to system or database load.
14
Volume Testing:
This testing is used to ensure that the software can handle the volume of data as specified
in the SRS, and does not crash with heavy volumes of data, but gives an appropriate
message/ or makes a clean exit.
Recovery Testing:
This is the activity of testing how well the software is able to recover from crashes,
hardware failures and other similar problems.
Sanity testing
Testing to determine if a new software version is performing well enough to accept it for
a major testing effort if application is crashing for initial use then system is not stable
enough for further testing and build or application is assigned to fix.
Regression testing
Testing the application as a whole for the modification in any module or functionality is
difficult to cover all the system in regression testing so typically automation tools are
used for these testing types.
Alpha testing
In house virtual user environment can be created for this type of testing. Testing is done
at the end of development. Still minor design changes may be made as a result of such
testing.
15
Beta testing
Testing is typically done by end-users or others. Final testing is done before releasing
application for commercial purpose.
Smoke testing
It is a term used in plumbing, woodwind repair, electronics, computer software
development, infectious disease control, and the entertainment industry. It refers to the
first test made after repairs or first assembly to provide some assurance that the system
under test will not catastrophically fail.
Monkey testing
It is random testing performed by automated testing tools (after the latter are developed
by humans). These automated testing tools are considered "monkeys", if they work at
random. We call them "monkeys" because it is widely believed that if we allow six
monkeys to pound on six typewriters at random, for a million years, they will recreate all
the works of Isaac Asimov.
Ad hoc testing
Its a commonly used term for software testing performed without planning and
documentation. The tests are intended to be run only once, unless a defect is discovered.
Ad hoc testing is a part of exploratory testing, being the least formal of test methods.
16
Project Information:
Title of the Project: ALPRUS (Task Assignment Application)
Objective of the Project: The objective of this project is to test a web based
application used by the organization to assign and create tasks as well as users.
Application will be tested implementing various types of testing methodologies,
techniques and tools.
17
Laboratory Requirements:
Tools: Types of tools which are being used are as given below:
1.TCMS (Test Case Management system): Management manages the test cases
for the bugs.
19
2.Logout Page:
After entering valid credentials and on login into the application. The user should be able
to LOGOUT from the application after clicking on the logout button.
20
3.Home Page:
Home page should view all the tasks assigned to the user. Home page will display the
user name which will be available through out in the application as the user navigates in
the application.
There should be links available for accessing the home page, Edit My
Profile for editing the profile of the current user, View User to view all the users in the
application, New User Creation to create a new user. Add new task to create a new task
and All Task to view all the tasks in the application.
Logout button should exist to log the user out from the application. Clicking home
link will take the user to Home Page of the application.
21
4.Edit My Profile:
Clicking Edit My Profile will navigate to edit my profile Page where the user can edit
his profile. Clicking update button will save the updated details as entered in different
fields in the User Profile. Clicking Save button on edit user page will save the updated
details of the user. Clicking cancel button on edit user page will not save the details &
take the user back to user page.
22
23
24
ALPRUS APPLICATION:
1. Login/Logout Page:
Application should allow only its valid users to login after providing valid
credentials. Logout should log them out from the application.
25
2.Home Page:
Home page should view all the tasks assigned to the user. Home page will display the
user name which will be available through out in the application as the user navigates in
the application.
26
3.Edit My Profile:
Clicking Edit My Profile will navigate to Edit My Profile Page where the user can
edit his profile.
27
4.View User:
Users can view all the users in the application by clicking the View User link. User
page will list all the users created in the application.
28
5.New User:
Any user in the application can create a new user by clicking on New User link given
on the homepage of the application.
29
6.All Open:
By clicking on the All Open link user is redirected to all task page where user can see
the task assigned, project name etc.
Filing A Bug
30
Bugzilla:
INCLUDEPICTURE
2015/011015_0940_BugzillaTut2.png"
31
\*
"http://cdn.guru99.com/images/1MERGEFORMATINET
32