240 likes | 731 Views
Software Testing . Types and Techniques of Software Testing. Presented By : Madeeha Khalid 590-FBAS/BSSE/s08. Table of Contents. Software Testing Why Software Testing Testing Principles History of Testing Types of Software Testing Available Tools And Techniques. Software Testing.
E N D
Software Testing Types and Techniques of Software Testing Presented By : Madeeha Khalid 590-FBAS/BSSE/s08
Table of Contents • Software Testing • Why Software Testing • Testing Principles • History of Testing • Types of Software Testing • Available Tools And Techniques
Software Testing Software Testing is a process of evaluating a system by manual or automatic means and verify that it satisfies specified requirements or identify differences between expected and actual results.
The general aim of testing is to affirm the quality of software systems by systematically exercising the software in carefully controlled circumstances. ------Miller
Why Software Testing ???? • Error Free • Efficient • Secured • Flexible • Software Testing is important as it may cause mission failure, impact on operational performance and reliability, if not done properly !
All tests should be : • Made according to customer requirements • Planned long before Testing begins • Begin in-the-small and progress towards in-the-large • Exhaustive Testing is not Possible Testing Principles
Phase I. Before 1956: The Debugging-Oriented Period – Testing was not separated from debugging Phase II. 1957~78: The Demonstration-Oriented Period – Testing to make sure that the software satisfies its specification Phase III. 1979~82: The Destruction-Oriented Period – Testing to detect implementation faults Phase IV. 1983~87: The Evaluation-Oriented Period – Testing to detect faults in requirements and design as well as in implementation Phase V. Since 1988: The Prevention-Oriented Period – Testing to prevent faults in requirements, design, and implementation History of Testing
Types of Software Testing About 50 types of Testing available !
Classification by Purpose • Correctness Testing • Performance Testing • Reliability Testing • Security Testing • By Life-Cycle Phase • Requirements Phase Testing • Design Phase Testing • Program Phase Testing • Evaluating Test Results • Installation Phase Testing • Acceptance Testing • By Scope • Unit Testing • Component Testing • Integration Testing • System Testing Testing Classification
Correctness Testing • Only inputs and output functionality visible • Inputs are given and outputs are compared against specification • No implementation Details of the code are considered • Data driven Testing Black Box Testing TARGET :To find Incorrect or missing functions , interface errors and performance errors
Correctness Testing • Contrary to Black-box testing • Structure and code visible • Implementation is given more importance • Programming language , logic, styles are considered • TARGET: To check control-flow , looping ,Data-flow. • All nodes are traversed at least once White Box Testing
Unit Testing • Tests the smallest individually executable code units. • Usually done by programmers. • Test cases might be selected based on code, specification, intuition, etc. Tools: • Test driver/harness • Code coverage analyzer • Automatic test case generator
Tests interactions between two or more units or components. • Usually done by programmers. • Emphasizes interfaces. Types : • Regression Testing • Incremental Integration Testing • Smoke Testing Integration Testing
Testing in the Large • System Testing • End-to-End Testing • Operations Readiness Testing • Beta Testing • Load Testing • Stress Testing • Performance Testing • Reliability Testing • Regression Testing Stages of Testing
Test the functionality of the entire system. • Usually done by professional testers. Types: • Recovery Testing • Security Testing • Load and Stress Testing • Performance Testing • Installation Testing System Testing
Insures that the project satisfies the customer Requirements • Usually done by both Testers and Users • Types: • Alpha Testing • Beta Testing • Long Term Testing • Compatibility Testing Acceptance Testing
Software Testing Costly! • Automation Way To Cut Down Cost! • Still significant Amount of human intervention needed • Degree of Automation remains mainly at the automated script level. Automated Testing
A lot of Testing Tools available. Some Are : • Mathora • NuMega’s Boundschecker,National’s Purify • Ballista COTS Software Robustness Testing Harness Available Tools And Techniques
Mutation Testing tool developed at Purdue University • Can Create and Execute Test cases • measures adequacy • Determine Input-Output Correctness • Remove Bugs Mathora
Runtime Checking and Debugging Aids • Check and protect against Memory Leaks and Pointer problems NuMega’s Boundchecker, National’s Purify
Full Scale Automated robustness Testing Tool Ballista COTS Software Robustness Testing Harness