Vous êtes sur la page 1sur 25

Software Testing

Software Testing Foundations


Agenda
1. ISTQB and IEEE

2. Quality, Testing, QA, QC

3. Testing Principles

4. Who is who in the team?

5. Software Development Life Cycle

6. Specification

7. Why do we test?

8. Common misconceptions

9. The role of Software QA


ISTQB, IEEE
• ISTQB - The International Software Testing Qualifications Board (ISTQB) is a software testing
qualification certification organization that operates internationally. Founded in Edinburgh in
November 2002, ISTQB is a non-profit association legally registered in Belgium.

• IEEE - The Institute of Electrical and Electronics Engineers (IEEE) is a professional association with
its corporate office in New York City and its operations center in Piscataway, New Jersey.
Quality

What is quality?
Quality
Definitions of Quality:

By ISTQB:
The degree to which a component, system or process meets specified requirements and/or user/customer needs and expectations.

By IEEE:
• The degree to which a system, component, or process meets specified requirements.
• The degree to which a system, component, or process meets customer or user needs or expectations.
QA, QC, Testing
Quality Assurance:
• A set of activities designed to ensure that the development and/or maintenance process is adequate to ensure a
system will meet its objectives.

Quality Control:
• A set of activities designed to evaluate a developed work product.

Testing:
• The process of executing a system with the intent of finding defects.
QA, QC, Testing
Quality Quality Control Testing
Assurance

Definition Activities which ensure the Activities which ensure the Activities which ensure the
implementation of verification of developed identification of
processes, procedures and software with respect to bugs/error/defects in the
standards in context to documented (or not in Software.
verification of developed some cases) requirements
software and specified
requirements.

Focuses on Focuses on processes and Focuses on actual testing Focuses on actual testing
procedures rather then by executing Software with
conducting actual testing intend to identify
on the system. bug/defect through
implementation of
procedures and process.

Relate to Process oriented Product oriented Product oriented


activities. activities. activities.

Goal Prevention Detection Detection


Audit

Audit
Standardization organizations

- ISO (International Organization for Standardization)


- IEC (International Engineering Consortium)
- IEEE (Institute of Electrical and Electronics Engineers)
Testing vs Debugging
Testing Debugging
Purpose Finding and locating of a Identifying, isolating and
defects in a Testing phase fixing the defects/bug
Executed by Done by Testing Team Done by Development
Team
Goal To find as many defects To remove the defects
as possible
Testing Principles
7 principles of testing

 Testing shows presence of defects


 Exhaustive testing is impossible
 Early testing
 Defect clustering
 Pesticide paradox
 Testing is context depending
 Absence of errors fallacy
Who is who in the team
1. QAs
2. Developers
3. Business Analysts
4. Project Manager
5. Solution Designed/Solution Architect/Solution Strategist
6. Technical Writers
SDLC
Example
Cost of errors
• The later the a fault is found,
the higher the cost

• Small error in specification can result


in huge error in production

• Error in production can


ruin the company
Examples
1. In October of 1999 the $125 million NASA Mars Climate Orbiter spacecraft was believed to be lost in
space due to a simple data conversion error. It was determined that spacecraft software used certain
data in English units that should have been in metric units.

2. A small town in Illinois received an unusually large monthly electric bill of $7 million in March of 1999.
This was about 700 times larger than its normal bill. It turned out to be due to faults in new software
that had been purchased by the local power company to deal with Y2K software issues.

3. In early 1999 a major computer game company recalled all copies of a popular new product due to
software problems. The company made a public apology for releasing a product before it was ready
Mistake and Error
• Humans make mistakes: No one is perfect. We all make mistakes or omissions

• Aggressive schedules and pressure: The more pressure we are under the more likely we are
to make mistakes. In IT development we have time and budgetary deadlines to meet

• Poor Communication: Poor Training. Poor Communication

• Poor Documentation: Requirements not clearly defined. Requirements change & requirements
not properly documented. Data specifications not complete

• Assumptions
Specification
• Description of how software should work/look

- A document that specifies, ideally in a complete, precise and

verifiable manner, the requirements, design, behavior, or other

characteristics of a component or system, and, often, the procedures

for determining whether these provisions have been satisfied. [IEEE 610]

• Different types of documents

- Use cases, User Stories, Technical Design, Mock-ups

• Bug in specification

• Lack of specification
TROUBLESHOOT!

• Try to find where is the problem

• What caused the problem

• How to prevent its reappearance


Why do we test?

• Find defects before the customer

• Measure quality

• Gain confidence in the level of quality

• Increase reliability

• Increase profitability
Misconceptions
• MYTH: Software quality depends on the testing team
FACT: Software quality depends on the development team
• MYTH: The objective of Testing is to ensure a 100% defect- free product.
FACT: The objective of testing is to uncover as many defects as possible while
ensuring that the software meets the requirements. Identifying and getting rid of all
defects is impossible.
• MYTH: Testing is easy.
FACT: Testing can be difficult and challenging (sometimes, even more so than
coding).
Misconceptions
• MYTH: Anyone can test.
FACT: Testing is a rigorous discipline and requires many kinds of skills.
• MYTH: There is no creativity in testing.
FACT: Creativity can be applied when formulating test approaches, when designing tests,
and even when executing tests.

• MYTH: Automated testing eliminates the need for manual testing.


FACT: 100% test automation cannot be achieved. Manual Testing, to some level, is always
necessary.
Misconceptions

MYTH: Quality Assurance = Testing


Tester vs QA
Tester QA Engineer
• Takes part in all stages of SDLC and TLC
• Participates in the testing phase of the project • Determines testing strategy and approach
• Writes and verifies defects • System technical knowledge
• Test case execution • Gives suggestions and ideas how to improve the
• Reports results product
• Facilitates implementation of processes and procedures
The role of QA
What is special about QA?
• Broad competence
• Special attitude

Levels of testing team independence


• No testing team – developers do the testing
• Test specialists as part of development team
• Separate testing team inside the organization (internal)
• Separate testing team outside the organization (external/outsource)
QUESTIONS?

Vous aimerez peut-être aussi