COURSE IS NOW FULLY AVAILABLE AND LIVE HERE: https://goo.gl/gVukvc
This is the first section of six parts to cover what you need to learn about ISTQB foundations exam. Broken down into pieces and examples to pass. Check out more on my blog: https://www.rogeriodasilva.com/
2. Summary
What you will learn in this first section
- Why Testing?
- Causes of software defects
- Tester objectives
- Testing and debugging
- Principles of testing
- Test activities
- Retesting
- Resource triangle
- Completion criteria
- Static and dynamic testing
- Testing independencies
- Code of ethics
3. Why Testing Is Necessary
People make mistakes due
to fallibility but also other
pressures.
i.e.:
- Attention to detail
- Time constraint
- Lack of Knowledge
- Experience
Software (Program Code) is present
everywhere.
From Banking, e-commerce to Cars,
Electrical Appliances, Arms, Heating
Systems and many more.
Failure results in financial loss, waste of
time, loss of reputation or, in worst cases,
injury and death.
Testing reduces the risk of software failure.
4. Causes Of Software Defects
Error: Human make a mistake in code. Development of a document
specification.
Defect: A problem caused by an error.
Fault: A failure of the system or component caused by a defect.
Failure: Failures don’t only happen due to defects, but also environmental
conditions, hardware problems, etc.
All defects start with a human error (for example a typo, misunderstanding, lack planning, capability, etc.)
The tester’s job is to expose the defect by causing a failure before the software gets to production.
5. Objectives Of Testing
Avoid and rectify errors.
Ensure that key functional and non-functional requirements are examined.
Testing is not about removing defects, but about notifying developers about
them.
Testing is also about reducing risk in releasing.
Testing can give confidence in the quality of the software if it finds few or no defects.
Tests can and must be measured.
Typical measurements are:
- Number of defects found
- Number of failures in a given time period (reliability)
- Usability rating
- Maintainability
6. Difference Between Testing And Debugging
Debugging is a process used
to identify causes of bugs in
code and correct them.
Testing is the exploration of
the system in order to find
defects.
Dynamic Testing Debugging
(Developer)(Tester)
Observe failure
Re-test to
confirm failure
no longer
occurs
Investigate and
Isolate defect
Fix defect
Check fix works
7. Fundamental Principles Of Testing
1. Testing shows the presence of bugs.
2. Exhaustive testing (testing all possible data combinations) is impossible.
3. Early testing saves money.
4. Defect clustering happens. If there is a bug in one part of the software, chances are
there are other, related bugs nearby.
5. “The pesticide paradox”: continuing to run the same tests won’t find new bugs.
6. Testing is context dependent. Testing is done differently in different contexts.
7. Software with no known errors is not necessarily ready to be shipped. Does it match
user/business expectations?
8. Five Fundamental Test Activities And Tasks From Planning To Test Closure
Planning - Verify the mission of testing. Planning and
Control
Analysis and
Design
Implementation and
Execution
Evaluating Exit Criteria
and Reporting
Test Closure Activities
Control - Monitor, check progress and take action.
Test analysis and test design is the testing
objectives to create test conditions and test
designs.
Activity where test procedures or scripts are in
order, the environment is setup and tests are run.
Activity where test execution is assessed against
the defined objectives.
Occurs at project milestones such as release,
completion, cancellation or maintenance release has
been complete.
9. Retesting & Regression Tests
Retest - Running the tests again after they fail and the bugs have been in theory fixed.
Regression – Running testing to check the cross impact of defect fix in the whole functionality
or system.
Defect/Bug Raised
Dev Team
Fixed
Test Team
Retest
Regression
Tests
10. Resource Triangle
Time, Cost, and Quality. You can’t have them all, only pick two.
You are given the options of Fast, Good, and Cheap, and told to pick any two. Here Fast refers to the
time required to deliver the product, Good is the quality of the final product, and Cheap refers to the
total cost of designing and building the product. This triangle reflects the fact that the three properties
of a project are interrelated, and it is not possible to optimize all three – one will always suffer. In other
words, you have three options:
Design something quickly and to a high standard, but then it will not be cheap.
Design something quickly and cheaply, but it will not be of high quality.
Design something with high quality and cheaply, but it will take a
relatively longer time.
Fast
(Time)
Cheap
(Cost)
Good
(Quality)
11. Completion Criteria
Criteria you set at the beginning of a project that determines when it is safe to stop testing. Exit
criterion is connected to the test coverage, test case design technique adopted, risk level of the
product varies from one test level to another.
• Specified coverage has been achieved.
• No Showstoppers or critical defects.
• There are very few known medium or low-
priority defects that don't affect the usage
of the product.
• If Exit criterion has not met, the test cannot
be stopped.
• The Exit criterion has to be revamped or the
time should be extended for testing based
on the quality of the product.
• Any changes to the test completion
criterion must be documented and signed
off by the stakeholders.
• The test ware can be released upon
successful completion of exit criteria.
12. Static & Dynamic Testing
Static - Testing where code is not exercised: document specification analysis,
reviews, even code itself, etc.
Can be done as Review by humans carrying out manual examination of
documents or Static Analysis of the code and software models by using
automation tools.
Dynamic - Kind of testing that exercises the program with some test data.
Dynamic testing is performed by executing software under test and comparing
actual and expected results.
13. Testing Independence
Developers are least independent, whereas outsourced testing companies are most
independent, because they don’t take defects as criticism.
Several levels of independence can be defined as shown below:
• Tests designed by the person(s) who wrote the software under test
• Tests designed by another person(s) within the development team
• Tests designed by a person(s) from a different organisational group
(i.e.: an independent test team) or test specialists (i.e.: usability or performance
testers)
• Tests designed by a person(s) from a different organisation or company
(i.e.: outsourcing or certification by an external body)
Low
High
14. Code of Ethics
Involvement in software testing enables individuals to lean confidential and privileged information.
A code of ethics is necessary, the ISTQB® states the following code of ethics:
Public – Testers shall act consistently with the
public interest
Client and Employer – Testers shall act in a manner
that is in the best interests of their client and
employer, consistent with the public interest
Product – Testers shall ensure that the
deliverables they provide (on the products and
systems they test) meet the highest professional
standards possible
Judgement – Testers shall maintain integrity and
independence in their professional judgement
Management – Test managers and leaders shall
subscribe to and promote an ethical approach to
the management of software testing
Profession – Testers shall advance the integrity
and reputation of the profession consistent with
the public interest
Colleagues – Testers shall be fair to and
supportive of their colleagues, and promote
cooperation with software developers
Self – Testers shall participate in lifelong learning
regarding the practice of their profession and shall
promote an ethical approach to the practice of the
profession
15. Review
This is what you have learned so far...
• Why Testing is necessary
• Common causes of software defects
• What is testers objectives
• Differences between testing and
debugging
• Fundamentals principles of testing
• Five fundamental test activities and
tasks from planning to closure
• Why retesting is one of the most
important tasks in testing
• Resource triangle - Time, Money and
Quality
• Definition of completion criteria
• When carryout a static and dynamic
testing
• Why is important to get testing
independence
• Why code of ethics is necessary
16. End of Section
1
Do the Quiz (attached) for Section
1
Questions?
Comments?
Thumbs up and Share it if you like
this.
Fundamentals of Testing - Section
1
ISTQB Foundation
Thank You