Sunteți pe pagina 1din 32

Training Report

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)

Panipat Institute of Engineering & Technology,


(Affiliated to Kurukshetra University Kurukshetra, India)

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.

We are an ISO 9001:2008 certified company, so we on international-standard


quality, strict adherence to deadlines and total client/parents satisfaction.

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

INTRODUCTION TO SOFTWARE TESTING


Software Testing is the process of executing a program or system with the intent of
finding errors. Or, it involves any activity aimed at evaluating an attribute or capability of
a program or system and determining that it meets its required results. Software testing is
not unlike other physical processes where inputs are received and outputs are produced.
Where software differs is in the manner in which it fails. Most physical systems fail in a
fixed (and reasonably small) set of ways. By contrast, software can fail in many bizarre
ways. Detecting all of the different failure modes for software is generally infeasible.
Unlike most physical systems, most of the defects in software are design errors, not
manufacturing defects. Software does not suffer from corrosion, wear and tear. Generally,
it will not change until upgrades, or until obsolescence. So once the software is shipped,
the design defects or bugs will be buried in and remain latent until activation.
Software bugs will almost always exist in any software module with moderate size not
because programmers are careless or irresponsible, but because the complexity of
software is generally intractable and humans have only limited ability to manage
complexity. It is also true that for any complex systems, design defects can never be
completely ruled out.
Discovering the design defects in software, is equally difficult, for the same reason of
complexity. Because software and any digital systems are not continuous, testing
boundary values are not sufficient to guarantee correctness. All the possible values need
to be tested and verified, but complete testing is infeasible. Exhaustively testing a simple
program to add only two integer inputs of 32-bits (yielding 2^64 distinct test cases)
would take hundreds of years, even if tests were performed at a rate of thousands per
second. Obviously, for a realistic software module, the complexity can be far beyond the
example mentioned here. If inputs from the real world are involved, the problem will get
worse, because timing and unpredictable environmental effects and human interactions
are all possible input parameters under consideration.

Objectives of Testing

Testing as a process of executing a program with the intent of finding errors. To


perform testing, test cases are designed. A test case is a particular made up of
artificial situation upon which a program is exposed so as to find errors. So a good
test case is one that finds undiscovered errors.

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.

White Box Testing

Black Box testing

Grey Box testing

White Box Testing:


For doing this testing process the person has to access to the source code of the
product to be tested. So it is essential that the person doing this white box testing have
some knowledge of the program being tested. Though not necessary it would be more
worth if the programmer itself does this white box testing process since this testing
process requires the handling of source code.

Black Box Testing:


In contrary to white box testing here the person who is doing the black box testing
need not have the programming knowledge. This is because the person doing the black
box testing would access the output or outcomes as the end user would access and would
perform thorough functionality testing to check whether the developed module or product
behaves in functionality in the way it has to be.

Grey Box Testing:


Grey box testing involves having knowledge of internal data structures and
algorithms for purposes of designing the test cases, but testing at the user, or black-box
level.

Types of White Box Testing:


1. Unit Testing.
2. Structural Testing
11

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.

Types of Black Box Testing:


Functional Testing:
1. Integration Testing
2. System Testing
3. Usability Testing
4. Compatibility Testing
5. Configuration Testing
6. Concurrency Testing

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.

Types of Non- Functional Testing:


1. Security Testing
2. Automation Testing
3. Performance Testing
4. Load Testing
5. Stress Testing
13

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.

Some More Testing Types Are:


Incremental integration testing
Bottom up approach for testing i.e. continuous testing of an application as new
functionality is added; Application functionality and modules should be independent
enough to test separately done by programmers or by testers.

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.

Scope of the project:


Task assignment is one of important problems of project management. Moreover, it can
become a crucial factor for project success or failure. For a successful task assignment
project manager has to know not only the subject under development, but the capacities
of each team member too. Tasks are characterized by their priority and are assigned to
different users. This application that we are going to test is a web based application which
is used by the organisation for managing the task assignment process. In this basically the
tasks and the users are created s well as assigned to each other.
Alprus is an application that provides an interface to different users to know about the
tasks assign to them. There will be different users in the applications that can create other
users in the application. Users should be able to create the tasks in the application and
any user should be able to assign the task to any other user.
When any user logs into the application, she/he should be able to see the tasks assigned to
him/her on home page of the application
Application will be tested implementing various types of testing methodologies,
techniques and tools.

17

The application is divided into various modules like:


1. Login/ logout
2. Home Page
3. New User Creation Page
4. View User Page
5. User Detail Page
6. Edit My Profile
7. All tasks Page
8. Add New Task Page
9. Task Detail Page
10. Editing Task Detail Page

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.

2.Bugzilla: Bugzilla works as the Bug-tracking tool. Bugzilla is server software


designed to help you manage software development.
Features:

Optimized database structure for increased performance and scalability


Excellent security to protect confidentiality
Advanced query tool that can remember your searches
Integrated email capabilities
Editable user profiles and comprehensive email preferences
Comprehensive permissions system
18

TEST CASE CREATION IN MS-EXCEL:


1.Login page:
Application should allow only its valid users to login after providing valid credentials.
Logout should log them out from the application. Users should not be able to login after
having logged out from the application. Max allowed length for username field should be
256 characters. Max allowed length for password filed should be 20 characters.

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

5.New User Creation:


Any user in the application can create a new user by clicking New User Creation link.
Clicking New user creation will take the user to new user page where users will
provide Username, Name, Email, Telephone, Zip, Password and verify Password fields
being Mandatory fields.
Clicking the Save Button on the new user page will save the details and create a new
user in the application. Clicking the Cancel Button on New User Page will not save
the details and take the user back to the Home Page.

23

6.View user page:


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. Username column on user page will
display the name of the user and a Project column to display the project in which the
users will be existing. Name of the user should be clickable and should lead to user
details Page to show the profile of the selected user.

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:

Bugzilla is an open-source issue/bug tracking system that allows developers


effectively to keep track of outstanding problems with their product. It is written
in Perl and uses MYSQL database.
Bugzilla is a defect tracking tool, however it can be used as a test management
tool as such it can be easily linked with other test case management tools like
Quality Center, Test link etc. This open bug-tracker enables users to stay
connected with their clients or employees, to communicate about problems
effectively throughout the data-management chain.

Key features of Bugzilla includes:

Advanced search capabilities


E-mail Notifications
Modify/file Bugs by e-mail
Time tracking
Strong security
Customization
Localization

Screenshot of the application:

INCLUDEPICTURE
2015/011015_0940_BugzillaTut2.png"

31

\*

"http://cdn.guru99.com/images/1MERGEFORMATINET

32

S-ar putea să vă placă și