sftwre engg.testng

26

Upload: kanika20071990

Post on 21-Jan-2018

25 views

Category:

Technology


0 download

TRANSCRIPT

Software testing is a process of evaluating a

software, there are some definitions regarding

testing:

A good testing can be said one that has the

higher probability of finding undiscovered errors

and bugs.

It is giving expected output or not.

It is used to check the quality , correctness

and completeness of a developed software.

Testing is done in order to find possible risks in

implementation.

Definitions of testing by various authors:

“Testing is the process of executing a program

with the intention of finding errors.” – Myers

“Testing can show the presence of bugs but

never their absence.” – Dijkastra

“Testing is the process of establishing

confidence that a program or system does what

it is supposed to.” by Hetzel

Testing on various levels used to identify

missing areas and prevent any incompatibility

and repetition in various phases.

Levels of testing include different

methodologies that can be used while

conducting software testing.

Software testing can be basically categorized

in two ways:

Functional Testing

Non-functional Testing

Functional testing is concerned with testing that

resulting software functions properly or not ,

functional testing includes:

Unit testing

Integration testing

System testing

Validation testing

Regression testing

Alpha testing

Beta testing

Acceptance testing

UNIT TESTING

It is a level of testing where individual units or

Components of software tested.

A unit is the smallest testable part of an

application like functions , classes, procedures,

interfaces.

Unit testing is a method by which individual

units of source code are tested to determine

whether they are error free or not.

This testing is mostly done by white box

testing method.

Unit Testing is normally performed by software

developers.

The motive of unit testing test that the

individual parts are working correctly or not.

INTEGRATION TESTING

Integration testing is defined as the testing done

after combining individual units of an

application to determine whether they function

correctly or not.

Individual

developed

modules

joined and

then tested.

TYPES OF INTEGRATION TESTING

a) Big bang integration testing

b) Top down

c) Bottom up

d) Functional incremental

‘Big bang integration testing’

In Big Bang integration testing all components

or modules are integrated simultaneously, after

which everything is tested as a whole.

In this approach individual modules are not

integrated until and unless all the modules are

ready.

TOP-DOWN INTEGRATION TESTING

Top-down integration testing is an integration

testing technique used in order to simulate the

behavior of the lower-level modules that are not

yet integrated.

Stubs are the modules that act as temporary

replacement for a called module and give the

same output as that of the actual product.

BOTTOM-UP INTEGRATION TESTING

In this approach testing is conducted from sub

module to main module, if the main module is

not developed a temporary program called

DRIVERS is used to simulate the main module.

Each component at lower hierarchy is tested

individually and then the components that rely

upon these components are tested.

FUNCTIONAL – INCREMENTAL TESTING

In this method integration and testing takes

place on the basis of the functions and

functionalities, as documented in the functional

specification.

Another extreme is that all programmes are

integrated one by one, and a test is carried out

after each step.

SYSTEM TESTING

System testing tests the system as a whole.

Once all the components are integrated, the

application as a whole is tested rigorously to see

that it meets the specified Quality Standards or

not.

This type of testing is performed by a

specialized testing team.

System testing is the first step in the Software

Development Life Cycle, where the application

is tested as a whole.

The application is tested thoroughly to verify

that it meets the functional and technical

specifications.

The application is tested in an environment

that is very close to the production environment

where the application will be deployed.

System testing enables us to test, verify, and

validate both the business requirements as well

as the application architecture.

VALIDATION TESTING

Determining if the system complies with the

requirements and performs functions for which it

is intended and meets the organization’s goals

and user needs.

Validation is done at the end of the

development process and takes place after

verifications are completed.

It answers the question like: Am I building the

right product ? Am I accessing the right data (in

terms of the data required to satisfy the

requirements).

‘TYPES LIE UNDER VALIDATION TESTING’

a) Regression testing

b) Alpha testing

c) Beta testing

‘REGRESSION TESTING’

Whenever a change in a software application is

made, it is quite possible that other areas within

the application have been affected by this

change.

Regression testing is performed to verify that a

fixed bug hasn't resulted in another functionality

or business rule violation.

The intent of regression testing is to ensure

that a change, such as a bug fix should not

result in another fault being uncovered in the

application.

‘ALPHA TESTING’

This test is the first stage of testing and will

be performed amongst the teams (developer

and QA teams).

Unit testing, integration testing and system

testing when combined together is known as

alpha testing.

During this phase, the following aspects will

be tested in the application:

Spelling Mistakes.

Broken Links.

Cloudy Directions.

This test takes place at the developer’s site.

Alpha testing is final testing before the

software is released to the general public. It has

two phases:

In the first phase of alpha testing, the

software is tested by in-house developers. The

goal is to catch bugs quickly.

In the second phase of alpha testing, the

software is handed over to the software QA

staff, for additional testing in an environment.

‘BETA TESTING’

Beta testing normally involve sending the

product to beta test sites outside the company

for real-world exposure or offering the product

for a free trial download over the Internet.

Beta testing is often preceded by a round of

testing called alpha testing.

It is also known as field testing that takes

place at customer’s site.

The goal of beta testing is to place your

application in the hands of real users outside of

your own engineering team.

It discover any flaws or issues from the user’s

perspective that you would not want to have in

your final, released version of the application.

‘ACCEPTANCE TESTING

Acceptance testing is a test conducted to

determine if the requirements of a

specification or contract are met.

After the system test has corrected all or most

defects, the system will be delivered to the user

or customer for acceptance testing.

Acceptance testing is basically done by the

user or customer although other stakeholders

may be involved as well.

The goal of acceptance testing is to establish

confidence in the system.

Acceptance testing is most often focused on a

validation type testing.

Acceptance testing may occur at more than

just a single level, for example:

A Commercial Off the shelf (COTS) software

product may be acceptance tested when it is

installed or integrated.