Software testing

Post on 20-Jan-2015

356 views 6 download

Tags:

description

An Overview of Software Testing,its types and Testing tools.

transcript

Software

Testing

Overview

Introduction & Fundamentals

What is Software Testing?

Why testing is necessary?

Software Testing Strategy

Testing methods, levels and types

Testing Tools

“Testing is the process of evaluating a system or its component(s) with the intent to find that whether it satisfies the specified requirements or not.”

What is Software Testing???

Software testing can be stated as the process of validating and verifying that a computer program/application/product:

meets the requirements that guided its design and development,

works as expected,

can be implemented with the same characteristics,

and satisfies the needs of stakeholders.

Why is Testing necessary ???

� Find Errors—they cost a lot!!!!

� Reliability & Quality

� User/Customer Satisfaction

� effective optimum performance of system

And a lot more………After all Humans make mistakes….!!!

Software Testing Strategy

A strategy for software testing may be viewed as spiral.

Unit test >> white-box techniques

Integration test >> black-box + limited white-box

Validation test >> black-box techniques

Testing Methods

Traditionally divided into

Black-boxtesting

White-boxtesting

Black box testing

• No knowledge of internal design or code required.• Tests are based on requirements and functionality

White box testing (clear box testing, glass box testing, transparent box testing and structural testing)

• Knowledge of the internal program design and code required.

• Tests are based on coverage of code statements, branches, paths, conditions.

DiagrammaticIllustration

EXAMPLE:

Techniques used in white-box testing include:

API testing (application programming interface) – testing of the application using public and private APIsCode coverage – creating tests to satisfy some criteria of code coverage (e.g., the test designer can create tests to cause all statements in the program to be executed at least once)Fault injection methods – intentionally introducing faults to gauge the efficacy of testing strategiesMutation testing methodsStatic testing methods

 Black-box testing methods include: equivalence partitioning boundary value analysis all-pairs testing etc.

Testing Levels

1. Unit testing

Unit testing, also known as component testing, refers to tests that verify the functionality of a specific section of code, usually at the function level.

2. Integration testing

Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. 

Other testing levels include:

3. Component interface testing

The practice of component interface testing can be used to check the handling of data passed between various units, or subsystem components, beyond full integration testing between those units.

4. System Testing

System testing, or end-to-end testing, tests a completely integrated system to verify that it meets its requirements.

5. Acceptance Testing

At last the system is delivered to the user for Acceptance testing.

Testing Types

Installation testing - system is installed correctly and working at actual customer's hardware.

Compatibility testing - conducted on the application to evaluate the application's compatibility with the computing

environment

Smoke and sanity testing - Sanity testing determines whether it is reasonable to proceed with further testing. Smoke testing consists of minimal attempts to operate the software, designed to determine whether there are any basic problems that will prevent it from working at all.

Regression testing - Regression testing focuses on finding defects after a major code change has occurred

Alpha testing - Alpha testing is simulated or actual operational testing by potential users/customers or an independent test team at the developers' site.

Beta Testing – Beta testing comes after alpha testing and can be considered a form of external user acceptance testing. Versions of the software, known as beta versions.

Other types are:

• Functional and non-functional testing• Destructive testing• Software performance testing• Usability testing• Accessibility testing• Security testing• Internationalization and localization• Development testing• A/B testing

Testing tools

Program testing and fault detection can be aided significantly by testing tools and debuggers. The tools are divided into different categories as follows:

•Test Management tools•Functional Testing Tools•Load Testing Tools

Few Tools are listed as:

•Test Environment Toolkit (TET)•Apache JMeter•NeoLoad•LoadRunner•Appvance•LoadUI•WebLOAD

Some of these features may be incorporated into an Integrated Development Environment (IDE).

Presented by:

Maan Kaur Namdhari0905CS111046B.E.-CS-1 , 6th SemITM Universe