Upload
mkn3009
View
357
Download
6
Tags:
Embed Size (px)
DESCRIPTION
An Overview of Software Testing,its types and Testing tools.
Citation preview
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