Wednesday, November 11, 2009

Introduction to Software testing

What is Software testing?
1. Software testing is the process of validating the correctness of the Software functionality
2. It is an attempt to break the Software intentionally
3. Main aim is to find defects and software failures, report them and get them corrected
4. Bring high level of confidence in the software by ensuring that system meets the user requirements.

Why Software testing? What if NO testing?
Below are few incidents (software failures) which happened in past showing importance of testing software. The list of such software failures is very long resulting in loss of lives, billions of dollars, machinery failures etc. There is no room for a small failure of system in departments like airlines, defense weapons, medical equipments, spacecraft, nuclear plants, banks, stock exchanges. So proper testing of such system is of upmost priority.

1 Black Monday (Oct19, 1987)

Incident: On this day due to some sudden insider trading investigation started, which triggered off selling of stocks. All computers trading system was busy executing sell transaction. Due to flood of such transactions whole system slow down and finally crashed.
Result: Beginning in Hong Kong (where markets opened first), the crash had worldwide implications. The impact in the US was devastating. The Dow Jones was down 508 points, losing 22.6% of its total value. The S&P 500 dropped 20.4%. This was the greatest loss Wall Street ever suffered in a single day.

2. Medical Machine Kills (1985)
Incident: Canada’s Therac-25 radiation therapy machine malfunctioned and delivered lethal radiation doses to patients. Because of a subtle bug called a race condition, a technician could accidentally configure Therac-25 so the electron beam would fire in high-power mode without the proper patient shielding.
Result: Three people dead, three people critically injured

Process of Software Testing

1. Understanding business and software requirements
2. Designing Test cases
3. Executing Test cases
4. Identifying Defects
5. Getting problem fixed

No comments: