You are on page 1of 8

DEPARTMENT OF INFORMATION TECHNOLOGY

Regional College For Education Research And Technology-Jaipur


Seminar Session 2010-2011
A

SEMINAR REPORT

ON

SOFTWARE TESTING
BY

PANKAJ KAUSHIK
Submitted in partial fulfillment for the Award of degree of
BACHELOR OF TECHNOLOGY
Submitted To:-

Mr.AJAY KUMAR SINGH


(HOD IT)
DEPARTMENT OF INFORMATION TECHNOLOGY

Regional College For Education Research And Technology-Jaipur


Seminar Session 2010-2011
A

SEMINAR REPORT

ON

SOFTWARE TESTING
BY

PANKAJ KAUSHIK
Guided by

Mr. RANJEET
(Lecturer IN I.T Department)
Introduction To Software Testing

Software testing is both a discipline and a process. Though


software testing is part of the software development
process, it should not be considered part of software
development. It is a separate discipline from software
development. Software development is the process of coding
functionality to meet defined end-user needs. Software
testing is an iterative process of both validating
functionality, and, even more important, attempting to break
the software. The iterative process of software testing
consists of:

 Designing tests
 Executing tests
 Identifying problems
 Getting problems fixed

The objective of software testing is to find problems and fix


them to improve quality. Software testing typically
represents 40% of a software development budget.

While Software testing tends to be considered a part of


development, it is really its own discipline and should be
tracked as its own project. Software testing, while working
very closely with development, should be independent
enough to be able to hold-up or slow product delivery if
quality objectives are not met.
Definition of Software Testing

 Software Testing is an act of executing a program or a


software with the intent of finding errors, validating
against requirements.

 Software testing is the process used to measure the


quality of developed computer software.

 Software Testing is a operation of a system or


application under controlled conditions and evaluating
the results. Controlled conditions would include both
normal and abnormal conditions.

 Software testing will only evaluaute the quality of the


software & will not improve the quality.

 Software testing can also be stated as the process of


validating and verifying that a software
program/application/product:
 meets the business and technical requirements that guided its design
and development;
 works as expected; and
 can be implemented with the same characteristics
Types Of Software Testing

Types of Software Testing

Software testing consists of several subcategories, each of


which is done for different purposes, and often using
different techniques. Software testing categories include:

 Functional Testing- to verify the proper functionality of


the software, including validation of system and
business requirements, validation of formulas and
calculations, as well as testing of user interface
functionality.
 Forced Error Testing- or attempting to break and fix the
software during testing so that customers do not break it
in production.
 Compatibility Testing- to ensure that software is
compatible with various hardware platforms, operating
systems, other software packages, and even previous
releases of the same software.
 Performance Testing- to see how well software performs
in terms of the speed of computations and
responsiveness to the end-user.
 Scalability Testing- to ensure that the software will
function well as the number of users and size of
databases increase.
 Stress Testing- to see how the system performs under
extreme conditions, such as a very large number of
simultaneous users.
 Usability Testing- to ensure that the software is easy and
intuitive to use.
 Application Security Testing- to make sure that valuable
and sensitive data cannot be accessed inappropriately or
compromised under concerted attack.
 Load Testing- is primarily concerned with testing that
can continue to operate under a specific load, whether
that be large quantities of data or a large number of
users. This is generally referred to as software
scalability. The load testing activity is often referred to
as endurance testing..
 Black Box Testing- since black synonymies invisibility
and since source code of the program or software is not
visible/available/accessible to the tester,hence called
black box testing.
 White Box Testing- since white synonymies visibility and
since source code of the program or software is
visible/available/accessible to the tester,hence called
white box testing.It is also known as structural testing.

In some cases, there may even have to be other types of


testing such as regulatory-compliance testing, depending on
the type of software and intended industry.

Methods Of Testing
There are two basic methods of performing software testing:

1. Manual testing
2. Automated testing
Manual Tesing
As the name would imply, manual software testing is the
process of an individual or individuals manually testing
software. This can take the form of navigating user
interfaces, submitting information, or even trying to hack the
software or underlying database. As one might presume,
manual software testing is labor-intensive and slow. There
are some things for which manual software testing is
appropriate, including:

 User interface or usability testing


 Exploratory/ad hoc testing (where testers do not follow a
'script', but rather testers 'explore' the application and
use their instincts to find bugs)
 Testing areas of the application which experience a lot
of change.
 User acceptance testing (often, this can also be
automated)

The time commitment involved with manual software testing


is one of its most significant drawbacks. The time needed to
fully test the system will typically range from weeks to
months. Variability of results depending on who is performing
the tests can also be a problem. For these reasons, many
companies look to automation as a means of accelerating
the software testing process while minimizing the variability
of results.
Automated Testing
Automated software testing is the process of creating test
scripts that can then be run automatically, repetitively, and
through many iterations. Done properly, automated software
testing can help to minimize the variability of results, speed
up the testing process, increase test coverage (the number
of different things tested), and ultimately provide greater
confidence in the quality of the software being tested.

There are, however, some things for which automated


software testing is not appropriate. These include:

 End user usability testing is not typically a good


candidate for automated testing.
 Tests which will not be run more than a couple of times
are typically not a good candidate for automated tasting,
since the payoff of in test automation comes after many
test executions.
 Tests for areas of the application which experience a lot
of change are also not a good candidate for automation
since this can lead to substantial maintenance of test
automation scripts. Such areas of the application may be
more effectively tested manually.

It is important to note that test automation is a software, and


just like the software you are building for internal or external
customers, it must be well-architected.

You might also like