18
Software Testing Overview

Software testing

  • Upload
    mkn3009

  • View
    357

  • Download
    6

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Software testing

Software

Testing

Overview

Page 2: Software testing

Introduction & Fundamentals

What is Software Testing?

Why testing is necessary?

Software Testing Strategy

Testing methods, levels and types

Testing Tools

Page 3: Software testing

“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.

Page 4: Software testing

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….!!!

Page 5: Software testing

Software Testing Strategy

A strategy for software testing may be viewed as spiral.

Page 6: Software testing

Unit test >> white-box techniques

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

Validation test >> black-box techniques

Page 7: Software testing

Testing Methods

Traditionally divided into

Black-boxtesting

White-boxtesting

Page 8: Software testing

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.

Page 9: Software testing

DiagrammaticIllustration

EXAMPLE:

Page 10: Software testing

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.

Page 11: Software testing

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.

Page 12: Software testing

2. Integration testing

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

Page 13: Software testing
Page 14: Software testing

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.

Page 15: Software 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.

Page 16: Software testing

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

Page 17: Software 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).

Page 18: Software testing

Presented by:

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