20221227145526D4716 - Z17490000220154002ISYS6338 - Week 1 Foundation
20221227145526D4716 - Z17490000220154002ISYS6338 - Week 1 Foundation
Implementation
• Definition of Testing
• Test Objectives
• Quality Assurance
• Errors, Defects & Failures
• Principles in Testing
What is Testing?
What is testing?
The process consisting of all life cycle activities, both static and
dynamic, concerned with planning, preparation and evaluation
of software products and related work products to determine
that they satisfy specified requirements, to demonstrate that
they are fit for purpose and to detect defects.
Validation & Verification
• Test objective
– Is a reason or purpose for designing and executing a
test.
• The test objective based on the foundation
syllabus are: (but these objectives are not
universal. Different test viewpoints, test levels and
test stakeholders can have different objectives.)
– To evaluate work products such as requirements,
user stories, design and code by using static testing
techniques, such as reviews.
– To verify whether all specified requirements have
been fulfilled, for example, in the resulting system.
– To validate whether the test object is complete and
works as the users and other stakeholders expect – for
example, together with user or stakeholder groups.
Objectives for Testing
(cont.)
• To build confidence in the level of quality of the test
object, such as when those tests considered highest risk
pass, and when the failures that are observed in the
other tests are considered acceptable.
• To prevent defects
• To find failures and defects; this is typically a prime
focus for software testing.
• To provide sufficient information to stakeholders to
allow them to make informed decisions, especially
regarding the level of quality of the test object
• To reduce the level of risk of inadequate software
quality
• To comply with contractual, legal or regulatory
requirements or standards, and/or to verify the test
object’s compliance with such requirements or standards.
Debugging
• Debugging is
– A process of finding, analyzing and removing the
causes of failures in software.
• Testing is not debugging.
– While dynamic testing often locates failures which are
caused by defects, and static testing often locates
defects themselves, testing does not fix defects.
– It is during debugging, a development activity, that
a member of the project team finds, analyzes and
removes the defect, the underlying cause of the
failure.
– After debugging, there is a further testing activity
associated with the defect, which is called
confirmation testing. This activity ensures that the
fix does indeed resolve the failure.
Quality Assurance
Quality Assurance
1
• Testing shows the presence of defects, not their absence
2
• Exhaustive testing is impossible
3
• Early testing saves time and money
4
• Defects cluster together
5
• Beware of the pesticide paradox
6
• Testing is context dependent
7
• Absence-of-errors is a fallacy
Testing Principles
(cont.)