Saturday, January 31, 2009

Software testing techniques

Software testing and types of testing
What is Software testing?
Software testing is the process of checking software, to verify that it satisfies its requirements and to detect errors.
A set of activities conducted with the intent of finding errors in software.an activity being part of the software development process aimed at evaluating a software item (system, subsystem, unit etc.) features (functionality, performance etc.) against the given set of system requirements.
The process of devising a set of inputs to a given piece of software that will cause the software to exercise some portion of its code.
is the process of finding evidences of defects in software systems.
is the process used to measure the quality of developed computer software.
Abstract:
Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. [Hetzel88] Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software. The difficulty in software testing stems from the complexity of software: we can not completely test a program with moderate complexity. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing. Software testing is a trade-off between budget, time and quality.
Unit Testing
Introduction
In computer programming, unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method; which may belong to a base/super class, abstract class or derived/child class.
Ideally, each test case is independent from the others; mock objects and test harnesses can be used to assist testing a module in isolation. Unit testing is typically done by developers and not by Software testers or end-users.
Contents:
Benefits
Separation of interface from implementation
Limitations of unit testing
Applications
Six Rules of Unit Testing

Types of software testing
Regression Testing:
Regression testing is any type of software testing which seeks to uncover regression bugs. Regression bugs occur whenever software functionality that previously worked as desired, stops working or no longer works in the same way that was previously planned. Typically regression bugs occur as an unintended consequence of program changes.
Common methods of regression testing include re-running previously run tests and checking whether previously fixed faults have re-emerged.
Contents:
Background
Regression Test Generation
Types of regression
Mitigating Regression Risk
Uses
Strategies and Factors


Blockbox Testing

Types of Testing:
Black box testing takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, though usually functional. The test designer selects valid and invalid input and determines the correct output. There is no knowledge of the test object's internal structure.
This method of test design is applicable to all levels of software testing: unit, integration, functional testing, system and acceptance. The higher the level, and hence the bigger and more complex the box, the more one is forced to use black box testing to simplify. While this method can uncover unimplemented parts of the specification, one cannot be sure that all existent paths are tested.
Contents:
Testing Strategies/Techniques
Black Box Testing Strategy
Black Box Testing Example
Advantages and Disadvantages
Dimensions for Examining Testing

White Box Testing:
White box testing is a security testing method that can be used to validate whether code implementation follows intended design, to validate implemented security functionality, and to uncover exploitable vulnerabilities.
Contents:
Overview
What is White Box Testing?
Black Box and Gray Box Testing
How to perform White Box Testing
Testing Techniques
Classes of Tests
Tools
Results to Expect
Business Case
Benefits
Costs
Alternatives
Conclusion

No comments:

Post a Comment