Monday, March 23, 2009

Introduction to Software Testing

Some Software Failures
1. Microsoft’s Anti-Unix Site Crashes; Apr 3, 2002 : A marketing Web site, part of a multi-million dollar campaign by Microsoft and Unisys to get customers to switch from Unix, is turning into a major embarrassment. www.wehavethewayout.com which was powered by Unix kit and that, when Microsoft switched it to Internet Information Server software, the site crashed completely.
2. Cisco Flaw Enables DoS Attack; Apr 2, 2002 : Vulnerability in Cisco’s CallManager software can result in a memory leak in the computer telephony framework causing the server to crash, which could be used by a hacker to start a denial of service (DoS) attack. The fault is most commonly seen when CallManager systems are integrated with a directory such as Active Directory or Netscape.
3. Computer Glitch Causes £22m Tax Error; Mar 22, 2002: The Inland Revenue has said that computer problems were responsible for an estimated 134,000 basic ratetaxpayers being overcharged by a total of £22m. Individual taxpayers paid an average of £148 over the odds because of data transfer problems between the national insurance computer system and the PAYE system.
4. Yahoo Glitch strikes again; Mar 20, 2002: Parts of Yahoo were shut down on Tuesday following software problems encountered in the integrating of Yahoo Groups and Yahoo Clubs.

What is Testing?
The process of detecting & identifying defects,
where a defect is any variance between
actual and expected results.
- Reporting the above and
- Taking necessary corrective measures

What is Software Testing?
- Process of executing a program with the intent of
finding errors
- Confirming that a system performs its intended
functions correctly
- Establishing confidence that a system does what it
is supposed to do
- The process of analyzing a system to detect the
difference between existing and required conditions
and to evaluate the feature of the system (IEEE/ANSI,
1983 [Std 829-1983]).


Why Software Testing?

To get adequate trust and confidence on the product.
To meet the Organizational Goals
-like meeting requirements, satisfied customers, improved market share, zero defects, etc
-Since the software can perform 100000 correct
operations per second, it has the same ability to
perform 100000 wrong operations per second, if
not tested properly



Approach to Software Testing

Detect and get corrected the bugs or defects
- Of varying impact (severity), of varying priority,
etc.
- at different stages of the development
cycle
- using different types of testing

Different approaches to testing
White Box and Black Box Testing
Dynamic and Static testing
Manual and Automated Testing
Verification and validation Techniques

White Box and Black

White Box testing: The software tester has access to the program/ code and examine it for errors. Also called Clear Box testing or Structural Testing
E.g.: Unit Testing
Black Box testing: The software tester only knows what the system is supposed to do, he does not know how it works internally. He has to test on the basis of expected outputs.
E.g.: System Testing


Static and Dynamic Testing

Static Testing: Code is examined without being executed
E.g.: Code Inspections, Reviews, Walk-through
Dynamic Testing: Code is executed and tested without, necessarily, being examined
E.g.: Black Box testing

Verification and Validation
Dynamic Testing: Code is executed and tested without, necessarily, being examined
E.g.: Black Box testing
Validation: Is a set of activities carried out to check whether we are ‘building the right system’
E.g.: Set of black box testing activities

Manual and Automated Testing
Manual Testing: Testing activities performed by people without the help of Software Testing Tools.
E.g.: Reviews, Unit testing
Automated Testing: Testing activities carried out with the help of Software Testing Tools
E.g.: Regression Testing, Performance Testing

2 comments: