Sie sind auf Seite 1von 11

Session 1 Day 1

By

Evolution of Software Engineering


Software Engineering is the application of a systematic, disciplined,quantifiable
approach to the development, operation, and maintenance of software
The term Software Engineering was first used at a 1968 NATO
workshop in West Germany. It focused on the then growing software
crisis on factors like
High development costs
Poor reliability
Lack of user acceptance
Impossible to maintain
Surprising to learn that these issues were raised long back in 1968...!

May 21, 2010

Why is testing needed


Complexity of software makes it error prone
Untested or weakly tested software can cause losses in real life. Eg:
Disneys Lion King 1994 1995- The software did not work on
the most common systems that the public had.
Intel Pentium Floating-Point Division Bug 1994 Intel took a
charge of more than $400 million to cover the costs of replacing
bad chips
NASA Mars Polar Lander 1999 Malfunction due to an
unexpected setting of a single data bit
Patriot missile defense system 1991 A software bug caused
the tracking system to be inaccurate after 14 hrs of operation
Software bugs can cause harm to a person, to the environment or to a
company

May 21, 2010

Why is testing needed


A defect in the software has a root cause, while the effect of defect is
seen as impact by the different stake holders.
Testing is part of overall Quality Assurance It covers the Quality
Control aspect of ensuring Quality
An anomaly in the software is called a bug or a defect. it may or may not
lead to a failure during the usage of the software
Software testing may be required for compliance with contractual or
legal requirements
When is testing complete?
Actually never
However for practical reasons it is stopped after considering the
risks involved, time and budget constraints
Testing should provide sufficient information to the stake holders for decision making
regarding release of the software/ system , for the next development step or handover
to customers

May 21, 2010

Goal of testing
Common objectives of testing
The goal of a software tester is:
To find bugs
To find them as early as possible
& make sure they get fixed
Testing is a means to:
Find bugs
Provide confidence and information
Even prevent defects

May 21, 2010

The change in attitude towards Testing


There was a growing concern about the quality but what was the attitude
towards Software Testing?
In 1950s -Machine languages Testing was nothing but
debugging
In 1960s-compilers were developed,
Testing , a separate activity from
debugging
Debugging
Testing

In 1970s, -software engineering concepts


Testing evolved as a technical
discipline

Over the last two decades the attitude towards Software Testing
underwent a major positive change and there has been an increasing
focus on better, faster and cost-effective software

May 21, 2010

Understanding Software Testing


Testing is the process of executing a program with the intent of finding
errors -Myers
Quality Control (QC) is Testing the software or product for its intended
behavior.
Quality Assurance (QA) Testing the processes involved in developing and
testing the software or product
Verification is to establish the truth of correspondence between a software
product and its specification.
Validation is to establish the fitness or worth of a software product for
its operational mission
- Barry Boehm
Verification Are we building the product right?
Validation Are we building the right product?

May 21, 2010

G enera l T es ting P rinc iples


Principle 1-Testing shows presence of defects
Testing can show that defects are present, but cannot prove that there are no
defects. Even no defects found, is not a proof of correctness.
Principle 2-Exhaustive Testing is impossible
Testing everything (all combinations of inputs and preconditions) is not feasible
except for trivial cases. Instead of exhaustive testing, we can use risk and
priorities to focus testing efforts.
Principle 3-Early Testing
Testing activities should start as early as possible in a software or system
development life cycle and should be focused on defined objectives.
Principle 4-Defect Clustering
Most defects are found in just a few parts of the test object. Defects are not
evenly distributed, but cluster together. Thus if many defects are detected in one
place, there are normally more defects nearby. During testing one must react
flexibly to this principle.

May 21, 2010

TC
S

G enera l T es ting P rinc iples (c ontd)


Principle 5- Pesticide Paradox
If the same tests are repeated over and over again, they tend to loose
their effectiveness. In order to maintain the effectiveness of tests and to
overcome pesticide paradox, new and modified test cases should be
developed.
Principle 6- Testing is context dependent
Testing is done differently in different context. Testing must be adapted to
the risk inherent in the use and environment of the application. For
example, safety critical software is tested differently from an e-commerce
site.
Principle 7- Absence of Error fallacy
Finding failures and repairing defects does not guarantee that the system
as a whole meets user expectations and needs.

May 21, 2010

TC
S

Summary- Software Testing


Software Testing is the validation and refinement process of the Software
Engineering discipline.
It has become inevitable for every software development project to have an
independent testing team to do the constructive destruction of the software
developed.

Over the recent years the attitude towards software testing as a separate
technical discipline has changed a lot in its favour leading to its acceptance
as an investment that yields a better ROI.

May 21, 2010

T ha nk Yo u

Das könnte Ihnen auch gefallen