You are on page 1of 7

SOFTWARE TESTING CONCEPTS

Adithya Kumar M

Agenda
What is Software? Need for Software worldwide Embedded control applications Some of the history's worst Software Bugs Software is a skin that surrounds our civilization Most common software problems Software testing Two modes of testing Why software testing? Why to plan for each test? Cost of testing Cost of not testing Defect Hierarchical Structure Roles of Test Engineer & Test Manager

What is Software?
Computer software, or just software, is a collection of computer programs and related data that provides the instructions for telling a computer what to do and how to do it. Software refers to one or more computer programs and data held in the storage of the computer.

Need for Software worldwide


Software will reduce manual work significantly. Software will increase the productivity. Saves money to the companies.

Domains where we are using software: Everywhere like Banking, finance, Health Care, Networks, Engineering etc

Embedded control applications


Airplanes, air traffic control Spaceships Watches Ovens Remote controllers PDAs Memory seats DVD players Garage door openers Cell phones

Some of the history's worst Software Bugs


July 28, 1962 -- Mariner I space probe. A bug in the flight software for the Mariner 1 causes the rocket to divert from its intended path on launch. Mission control destroys the rocket over the Atlantic Ocean. The investigation into the accident discovers that a formula written on paper in pencil was improperly transcribed into computer code, causing the computer to miscalculate the rocket's trajectory. 1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses at several medical facilities. Based upon a previous design, the Therac-25 was an "improved" therapy system that could deliver two different kinds of radiation: either a low-power electron beam (beta particles) or X-rays. The Therac-25's X-rays were generated by smashing high-power electrons into a metal target positioned between the electron gun and the patient. A second "improvement" was the replacement of the older Therac-20's electromechanical safety interlocks with software control, a decision made because software was perceived to be more reliable.

June 4, 1996 -- Ariane 5 Flight 501. Working code for the Ariane 4 rocket is reused in the Ariane 5, but the Ariane 5's faster engines trigger a bug in an arithmetic routine inside the rocket's flight computer. The error is in the code that converts a 64-bit floating-point number to a 16-bit signed integer. The faster engines cause the 64-bit numbers to be larger in the Ariane 5 than in the Ariane 4, triggering an overflow condition that results in the flight computer crashing. First Flight 501's backup computer crashes, followed 0.05 seconds later by a crash of the primary computer. As a result of these crashed computers, the rocket's primary processor overpowers the rocket's engines and causes the rocket to disintegrate 40 seconds after launch.

Most common software problems


Incorrect calculation - arithmetic and logic calculations may be incorrect Example: Instead of giving average for values in 10 textboxes it gives average for only 9 textboxes. Incorrect merging of data - Data obtained from one source incorrectly matched with data from another source Example: Student profile incorrectly matched or merged with student mark sheet when student ID is entered as lookup entry. Data searches that yields incorrect results Example: Searching for Payroll of name David opens a pay slip with name David at top but Shows payroll for someone else. Incorrect coding / implementation of business rules - Mistakes while developing the application which is not matching with requirement

Inadequate software performance - Slow system response time and transaction Example: Time taken to save a job shows progress bar for long time Inconsistent processing Example: Software that works only in Windows environment but not in Vista Incorrect or inadequate interfaces with other systems -Software sends incorrect output to other system Example: Giving print from one system to external system, prints the file in incorrect format specified.

Software testing
Definition: Software Testing is a process of evaluating a system by manual or automated means to meet client requirements It is an indent of finding errors

Two modes of testing


Manual Testing: Testing the application to find defects manually Automation Testing: Testing the application using Automation tools like Win runner, Load Runner, QTP, Rational Robot etc. to find defects

Why software testing?


Loss of money this can include losing customers right through to financial penalties for noncompliance to legal requirements Loss of time this can be caused by transactions taking a long time to process but can include staff not being able to work due to a fault or failure Damage to business reputation if an organization is unable to provide service to their customers due to software problems then the customers will lose confidence or faith in this organization (and probably take their business elsewhere) Injury or death It might sound dramatic but some safety-critical systems could result in injuries or deaths if they dont work properly (e.g. flight traffic control software)

Why to plan for each test?


If you dont start planning for each test when the functional requirements are formed, youll never know why youre conducting the test. never know why youre conducting the test Written test objectives and requirements must be documented and tested What fact each test trying to verify? How much testing is enough?

Cost of testing
Youre going to spend at least half of your development budget on testing, whether you want to or not Restricting early testing usually increases cost

Cost of not testing


Not testing is even more expensive. Planning for testing after development is prohibitively expensive.

Defect
Defect is a deviation from Clients requirement Expected Result is not equal to Actual Result

Hierarchical Structure

Roles of Test Engineer & Test Manager


Test Engineer : An IT professional who is in charge of one or more technical test activities Designing test cases Producing test data Running test scripts Analyzing results Reporting results to developers and managers Test Manager : In charge of one or more test engineers Sets test policies and processes Interacts with other managers on the project Otherwise helps the engineers do their work

You might also like