FLP - Fundamentals of Software Testing - 2
FLP - Fundamentals of Software Testing - 2
Why do Testing
What is Testing
What to Test
Defects
Why do defects arise
Effects of a defect
Causes of defects
Definition
Principles
Testing and Quality
How much testing is enough
Evolution of Testing @ Microsoft
Software Testing ..then
Software Testing… Now
Food for Thought
Attributes of a tester
Testing at Capgemini
Focus on Testing
Testing Roles in CG
Testing is necessary:
To avoid effects of defects.
To avoid failures of Software
Software testing is a process of verifying and validating that a software application or program
Meets the business and technical requirements that guided its design and development, and
Works as expected.
also identifies important defects, flaws, or errors in the application code that must be fixed
Software testing has three main purposes: verification, validation, and defect finding.
♦ The verification process confirms that the software meets its technical specifications. A
“specification” is a description of a function in terms of a measurable output value given a
specific input value under specific preconditions.
The validation process confirms that the software meets the business requirements. A simple
example of a business requirement is “After choosing a branch office name, information about
the branch’s customer account managers will appear in a new window. The window will present
manager identification and summary information about each manager’s customer base: <list of
data elements>.” Other requirements provide details on how the data will be summarized,
formatted and displayed.
♦ A defect is a variance between the expected and actual result. The defect’s ultimate source may
be traced to a fault introduced in the specification, design, or development (coding) phases.
Leads to Injury/Death
Leads to loss of Time
Leads to loss of money
Leads to Bad reputation
Environmental factors can result in mistakes
Pollution (ex: mobile)
Radiation(ex: electromagnetic radiation)
1.
Human beings can make an error (aka Mistake)
Which produces a defect (aka fault, bug)
When the faulty system is executed it might cause a failure
2.
All defects might not lead to failures
Error ::Detected at the same level/Stage
Bug/Fault/Defect: A deviation identified by another person at a different
stage
Failure: Client or End Users identifies the defect
What we as software developers and testers may see as quality - that the software meets its defined
specification, is technically excellent and has few bugs in it - may not provide a quality solution for our
customers.
e.g if our customers find they have spent more money than they wanted or that the software doesn't help
them carry out their tasks, they won't be impressed by the technical excellence of the solution.
These attributes or characteristics described should /can serve as a framework or checklists for areas to
consider coverage.
We have a choice: test everything, test nothing or test some of the software
Assessing and managing risk is one of the most important activities in any project is a key activity and reason for testing.
Deciding how much testing is enough should take account of the level of risk, including technical and business risks related to
the product and project constraints such as time and budget.
Vary the testing effort based on the level of risk in different areas
Additionally, testing should provide sufficient information to stakeholders to make informed decisions about the release of the software
or system we're testing, for the next development step or handover to customers.
The effort put into the quality assurance and testing activities needs to be tailored to the risks and costs associated with the project.
Because of the limits in the budget, the time, and in testing we need to decide how we will focus our testing, based on the risks
Approach:
Up to late 1980s - Testing by developers, ad-hoc, some help from outside
contractors
Since 1990/91 - Testing is a separate discipline, comparable to development
Milestones:
1984 - “Software test Engineers” - a new designation introduced
1984 - Separate testing group
1986 - Director of Testing (Dave Morre) of part time
1993 - Director of Testing ( Roger Sherman) full time
1995 - One tester for every developer
Ad-hoc
Need-driven
Ignored completely
No theoretical basis i.e. No
mathematical models etc
Totally manual
Testing jobs perceived as
low scale as compared to
other discipline
Entry Level
Client or Topic | Financial Services
In collaboration with All work described was performed by Capgemini or a Capgemini affiliate
Partner logo Insert "Title, Author, Date" © 2007 Capgemini - All rights reserved 26
Feedback Please !