Chapter 1 - Fundamentals of testing Foundation Level Syllabus.pptx
Chapter 1 - Fundamentals of testing Foundation Level Syllabus.pptx
Tazkya Humaira
1
OUTLINE
ISTQB adalah sertifikasi untuk profesi Software Tester yang telah diterima dan
diakui secara internasional dimana ujian dilakukan secara online oleh Organisasi
authorised melalui Testing Provider.
https://www.istqb.org/
3
What is Testing?
4
What is Testing?
5
What is Testing?
➔ Test execution
Software testing ➔ Test planning
➔ Test design
is a process
➔ Test analysis
which includes
➔ Test implementation
many activities; ➔ Reporting Test
➔ Evaluation
6
What is Testing?
Test Types
7
What is Testing?
Validation
8
What is Testing?
● To prevent defects by evaluate work products such as requirements, user stories, design, and code
● To verify whether all specified requirements have been fulfilled
● To check whether the test object is complete and validate if it works as the users and other
stakeholders expect
● To build confidence in the level of quality of the test object
● To find defects and failures thus reduce the level of risk of inadequate software quality
● To provide sufficient information to stakeholders to allow them to make informed decisions, especially
regarding the level of quality of the test object
● To comply with contractual, legal, or regulatory requirements or standards, and/or to verify the test
object’s compliance with such requirements or standards
9
What is Testing?
● During component testing, one objective may be to find as many failures as possible so that the
underlying defects are identified and fixed early. Another objective may be to increase code coverage
of the component tests.
● During acceptance testing, one objective may be to confirm that the system works as expected and
satisfies requirements. Another objective of this testing may be to give information to stakeholders
about the risk of releasing the system at a given time.
10
What is Testing?
•Testing
Testing deal with finding the defects by conducting failure on the application or product.
This activity is performed by Testers.
•Debugging
Debugging is a development activity which deals with analyzing these defects, finding the
root cause and removes the cause of defect. This activity is commonly performed by
developers.
11
Why is Testing
Necessary?
12
Why is Testing Necessary?
● Rigorous testing of components and systems, and their associated documentation, can help
reduce the risk of failures occurring during operation.
● When defects are detected, and subsequently fixed, this contributes to the quality of the
components or systems.
● Software testing may also be required to meet contractual or legal requirements or industry-specific
standards.
13
Why is Testing Necessary?
● Having testers involved in requirements reviews or user story refinement could detect
defects in these work products.
● Having testers work closely with system designers while the system is being designed
can increase each party’s understanding of the design and how to test it.
● Having testers work closely with developers while the code is under development can
increase each party’s understanding of the code and how to test it.
● Having testers verify and validate the software prior to release can detect failures that
might otherwise have been missed, and support the process of removing the defects
that caused the failures (i.e., debugging).
14
Why is Testing Necessary?
● While people often use the phrase quality assurance (or just QA) to refer to testing,
quality assurance and testing are not the same, but they are related.
● Quality control involves various activities, including test activities, that support the
achievement of appropriate levels of quality. Test activities are part of the overall
software development or maintenance process.
15
Why is Testing Necessary?
● Error (mistake)
A human action that produces an incorrect result
● Fault (defect, bug)
A manifestation of an error in software
- Also known as a defect or bug
- If executed, a fault may cause a failure
● Failure
Deviation of the software from its expected delivery or services
- In addition to failures caused due to defects in the code, failures can also be caused by
environmental conditions
- For example, radiation, electromagnetic fields, and pollution can cause defects in firmware or
influence the execution of software by changing hardware conditions.
16
Why is Testing Necessary?
17
Why is Testing Necessary?
● The root causes of defects are the earliest actions or conditions that contributed to creating
the defects.
● Defects can be analyzed to identify their root causes, so as to reduce the occurrence of
similar defects in the future.
● By focusing on the most significant root causes, root cause analysis can lead to process
improvements that prevent a significant number of future defects from being introduced.
18
Seven Testing
Principles
19
Seven Testing Principles
3. Early testing
5. Pesticide paradox
7. Absence-of-errors is a fallacy
20
Seven Testing Principles
Testing shows the presence of defects,
not their absence
Testing can show that defect are present in a system software, but no matter
whatever count of defect we find, at any point of time we can’t say the no
more defects.
Also to add to it, in case no defects are found, it’s not a proof correctness.
21
Seven Testing Principles
22
Seven Testing Principles
23
Seven Testing Principles
In this regards, a tester must consider and prepare proportional test case to
test such system.
24
Seven Testing Principles
If the same tests are repeated over and over again, eventually these tests no
longer find any new defects.
25
Seven Testing Principles
26
Seven Testing Principles
Absence-of-errors is a fallacy
● Finding and fixing defect doesn’t help if the system built doesn’t fulfill
the users’ need and expectation
27
Test Process
28
Test Process
Test Process in Context
● Contextual factors that influence the test process for an organization, include, but
are not limited to:
● Software development lifecycle model and project methodologies being used
● Test levels and test types being considered
● Product and project risks
● Business domain
● Operational constraints, (Budgets and resources, timescales, complexity,
contractual and regulatory requirements)
● Organizational policies and practices
● Required internal and external standards
29
Test Process
Test Activities and Tasks
A test process consists of the following main groups of activities:
● Test planning
● Test monitoring and control
● Test analysis
● Test design
● Test implementation
● Test execution
● Test completion
30
Test Process
Test Activities and Tasks
Test planning
● Determining the scope and risks and identifying the objectives of testing.
● Defining the overall approach of testing.
● Scheduling test activities, Assigning resources for the activities.
● Defining the amount, detail, template for documentation.
● Selecting metrics for monitoring and controlling.
● Defining entry and exit criteria.
● Deciding about automation
31
Test Process
Test Activities and Tasks
Test monitoring and control
● Test monitoring involves the on-going comparison of actual progress against planned progress using any
test monitoring metrics defined in the test plan.
● Test control involves taking actions necessary to meet the objectives of the test plan
● Test monitoring and control are supported by the evaluation of exit criteria, which are referred to as the
definition of done in some software development lifecycle models.
● For example, the evaluation of exit criteria for test execution as part of a given test level may include:
- Checking test results and logs against specified coverage criteria. Assessing the level of component
or system quality based on test results and logs
- Determining if more tests are needed (e.g., if tests originally intended to achieve a certain level of
product risk coverage failed to do so, requiring additional tests to be written and executed)
32
Test Process
Test Activities and Tasks
Test analysis
33
Test Process
Test Activities and Tasks
Test design
34
Test Process
Test Activities and Tasks
Test implementation
35
Test Process
Test Activities and Tasks
Test completion
Test completion includes the following major activities:
● Checking whether all defect reports are closed, entering change requests or product backlog items for any
defects that remain unresolved at the end of test execution
● Creating a test summary report to be communicated to stakeholders
● Finalizing and archiving the test environment, the test data, the test infrastructure, and other testware for
later reuse
● Handing over the testware to the maintenance teams, other project teams, and/or other stakeholders who
could benefit from its use
● Analyzing lessons learned from the completed test activities to determine changes needed for future
iterations, releases, and projects
● Using the information gathered to improve test process maturity
36
Test Process
Test Work Product
Test monitoring and control work
Test planning work products
products
● Test planning work products typically include ● Test monitoring and control work products
one or more test plans. typically include various types of test reports,
including test progress reports produced on an
● The test plan includes information about the test
ongoing and/or a regular basis, and test summary.
basis, to which the other test work products will
be related via traceability information. ● Test monitoring and control work products should
also address project management concerns, such as
task completion, resource allocation and usage,
and effort.
37
Test Process
Test Work Product
Test analysis work products Test design work products
● Test analysis work products include defined and ● Test design results in test cases and sets of test
prioritized test conditions, each of which is cases to exercise the test conditions defined in test
ideally bidirectionally traceable to the specific analysis.
element(s) of the test basis it covers. ● Test design also results in:
● For exploratory testing, test analysis may - the design and/or identification of the
involve the creation of test charters. necessary test data
- the design of the test environment
- the identification of infrastructure and tools
- Though the extent to which these results are
documented varies significantly.
38
Test Process Test execution work products
40
The Psychology
of Testing
41
The Psychology of Testing
Human Psychology and Testing
● An element of human psychology called confirmation bias can make it difficult to accept
information that disagrees with currently held beliefs. For example, since developers
expect their code to be correct, they have a confirmation bias that makes it difficult to
accept that the code is incorrect.
● Further, it is a common human trait to blame the bearer of bad news, and information
produced by testing often contains bad news.
● As a result of these psychological factors, some people may perceive testing as a
destructive activity, even though it contributes greatly to project progress and product
quality.
● This way, tensions between the testers and the analysts, product owners, designers, and
developers can be reduced. This applies during both static and dynamic testing.
42
The Psychology of Testing
Human Psychology and Testing
Testers and test managers need to have good interpersonal skills to be able to
communicate effectively about defects, failures, test results, test progress, and risks,
and to build positive relationships with colleagues. Ways to communicate well include
the following examples:
● Start with collaboration rather than battles.
● Emphasize the benefits of testing. For example, For the organization, defects found
and fixed during testing will save time and money and reduce overall risk to product
quality.
● Communicate findings on the product in a neutral, fact focused way without
criticzing the person who created it.
● Try to understand how the other person feels and why they react the way.
● Confirm that the other person has understood what has been said and vice versa.
43
The Psychology of Testing
Tester’s and Developer’s Mindsets
44
Thanks !