Chapter 1
FUNDAMENTAL OF TESTINNG
Contents
1. What is testing?
2. Why is testing necessary?
3. Testing principles
4. Fundamentals of test process
5. The psychology of testing.
1. What is testing
• Testing: the process consisting all life cycle activities, both static and dynamic
testing, 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.
• Software testing:
1. access the quality of product and
2. reduce risk of failure in production.
Testing activity
reviewing work products such as requirements, user stories, and source code.
Test planning, analyzing, designing and implementing tests
Report test progress and results
Evaluate the quality of test object
Testing include both:
• Static testing: evaluation of software product or related work
products (requirements specifications or user stories) without
executing software. => locate defect
• Dynamic testing: evaluation of software product or related work
products that does involve executing software. => locate failure
=> both are complimentary
• Verification: confirmation by examination and provision of objective
evidence that specified requirements have been full-filled.
• Validation: confirmation by examination and through provision of
objective evidence that the requirements for a specific intended use or
application have been fulfilled. (checking whether the system will meet
user and other stakeholder needs in its operational environment)
Þ Have we built the product correctly?
Þ Have we built the right products ?
Testing objectives
• Finding defect
• Gaining confidence and providing information about the level of
quality
• Preventing defect in operation.
• Testing (Dynamic Testing): show failure that are caused by defects
ÞTester are responsible for initial test + confirmation test
Þ In Agile development, tester may be involved in debugging + unit testing
• Debugging: development activity that finds, analyzes, and fixes defects
Þ Developers are responsible for debugging.
2. Why is testing necessary?
• Help reducing the risk of failure occur during operation.
Testing contribute to success.
• Involved in requirement review/user story refinement -> detect
defects in these work product before design/coding -> reduce the risk
of wrong software being developed.
• Tester work closely with designer/developer -> increase
understanding -> reduce the defects
QA vs QC
Quality management include:
• QA (Quality assurance): focus on process, ensuring the way to
perform various task is carried out correctly.
 Use root cause analysis -> to detect + remove cause of defects
 Retrospective -> to improve process
• QC (Quality control): focus on the quality of product
Error, defect, and failure
• Error (mistake): a human action that produce an incorrect results
• Defect(bug, fault): an imperfection or deficiency in a work product
when it does not meet its requirement or specification (flaws).
• Failure: an event in which in a component or system does not perform
a required function within specified limit
Root cause
• lack experience,
• Error in requirement/design.
• careless, tired or under time pressure.
• Environmental condition
• Error in use of the system
3. Testing principles
1) Testing shows presence of defect, not their absence
2) Exhaustive testing is impossible
3) Defects cluster together
4) Early testing save time and money
5) Testing depends on context
6) Be aware of pesticide paradox
7) Absence of error is a fallacy
4. Fundamentals of test process
• Test basis: any level or type of testing being derived from ( ex:
requirement, test devices, user story, designs, code…)
• Test coverage: the percentage of coverage items that were exercises
in a given test run.
Þhelp to measure the achievement of test objectives.
the right test process is the one that achieves test objectives in the
most efficient way.
Test process in context
(one size does not fit all)
• Factors affect:
• Product and project risks
• Business domain
• Operational constraints: budget, resources, timescales
• Contractual and regulatory requirements
• Organization policies and practices
• Test level and test type being considered.
• Software development lifecycle model and project methodologies
Test activities and tasks
test process include activity
• Test planning
• Test monitoring and control
• Test analysis
• Test design
• Test implementation
• Test execution
• Test completion
Test planning
• Define test objective and test approach within constraints imposed by
the context
• Determine the scope and risk
• Implement test policy and test strategy
• Determine the required test resource
• Determine the exit criteria
=> deciding suitable test techniques to use
=> deciding what task need to be done
Þ formulating a test schedule (test analysis and design tasks, test
implementation/execution/evaluation)
Test monitoring and control
• Test monitoring: test management activity by checking actual
progress against test plan, identifying any deviations from the plan
Þreport status to stakeholder.
• Test control: taking necessary actions to meet the mission and
objectives of the test plan
Can monitor test progress by using exit criteria
The exit test criteria (những yêu cầu cần phải đạt dc trước khi dừng test)
• Checking test results and logs against specified coverage criteria
• Assessing the level of component or system quality based on results log
• Assessing product risk and determining if more test are needed to the
reduce the risk to an acceptance level
Test analysis
• Analyze the test basis appropriate to the level test being considered
• Evaluate the test basis and items to identify various type of defects
• Identify features and set of features to be tested
• Identify and prioritize test condition for each feature
=> what to test
Test design
• High level test case
• Major activity:
• - design and prioritize test cases and set of test cases
• Identify necessary test data to support test condition
• Design test environment.
=> how to test
Test implementation
• Developing and prioritizing test procedures, creating automated test
scripts
• Creating test suites from the test procedures and automated test
script
• Building the test environment
• Preparing test data and ensuring it is properly loaded in the test
environment.
• Arrange test suites within a test execution schedule in a way that
results in efficient test execution.
Test execution
• test suites are run in accordance with the test execution schedule.
• Executing tests either manually or by using test execution tools.
• Comparing actual results with expected results
• Reporting defects based on the failures observed
• Log the outcome of test execution
• Analyze the anomalies in order to establish their likely causes
Test completion
• Checking whether all defect reports are closed
• Creating a test summary report to be communicated to stakeholders
• Finalize and archive the test environment, the test data, the test
infrastructure and other test-ware for latter use
• Analyze lesson learned form completed test activities to determine
changes needed for future iteration/project
Traceability between the test basis and work
product
• Good traceability also support
• Analyzing the impact of changes
• Making test auditable
• Improve the coherence of test progress report
• Related technical aspects of testing to statkholders
• Providing information to assess product quality

Chapter 1 Fundamental of testing ISTQB v4

  • 1.
  • 2.
    Contents 1. What istesting? 2. Why is testing necessary? 3. Testing principles 4. Fundamentals of test process 5. The psychology of testing.
  • 3.
    1. What istesting • Testing: the process consisting all life cycle activities, both static and dynamic testing, 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. • Software testing: 1. access the quality of product and 2. reduce risk of failure in production.
  • 4.
    Testing activity reviewing workproducts such as requirements, user stories, and source code. Test planning, analyzing, designing and implementing tests Report test progress and results Evaluate the quality of test object
  • 5.
    Testing include both: •Static testing: evaluation of software product or related work products (requirements specifications or user stories) without executing software. => locate defect • Dynamic testing: evaluation of software product or related work products that does involve executing software. => locate failure => both are complimentary
  • 6.
    • Verification: confirmationby examination and provision of objective evidence that specified requirements have been full-filled. • Validation: confirmation by examination and through provision of objective evidence that the requirements for a specific intended use or application have been fulfilled. (checking whether the system will meet user and other stakeholder needs in its operational environment) Þ Have we built the product correctly? Þ Have we built the right products ?
  • 7.
    Testing objectives • Findingdefect • Gaining confidence and providing information about the level of quality • Preventing defect in operation.
  • 9.
    • Testing (DynamicTesting): show failure that are caused by defects ÞTester are responsible for initial test + confirmation test Þ In Agile development, tester may be involved in debugging + unit testing • Debugging: development activity that finds, analyzes, and fixes defects Þ Developers are responsible for debugging.
  • 10.
    2. Why istesting necessary? • Help reducing the risk of failure occur during operation.
  • 11.
    Testing contribute tosuccess. • Involved in requirement review/user story refinement -> detect defects in these work product before design/coding -> reduce the risk of wrong software being developed. • Tester work closely with designer/developer -> increase understanding -> reduce the defects
  • 12.
    QA vs QC Qualitymanagement include: • QA (Quality assurance): focus on process, ensuring the way to perform various task is carried out correctly.  Use root cause analysis -> to detect + remove cause of defects  Retrospective -> to improve process • QC (Quality control): focus on the quality of product
  • 13.
    Error, defect, andfailure • Error (mistake): a human action that produce an incorrect results • Defect(bug, fault): an imperfection or deficiency in a work product when it does not meet its requirement or specification (flaws). • Failure: an event in which in a component or system does not perform a required function within specified limit
  • 14.
    Root cause • lackexperience, • Error in requirement/design. • careless, tired or under time pressure. • Environmental condition • Error in use of the system
  • 15.
    3. Testing principles 1)Testing shows presence of defect, not their absence 2) Exhaustive testing is impossible 3) Defects cluster together 4) Early testing save time and money 5) Testing depends on context 6) Be aware of pesticide paradox 7) Absence of error is a fallacy
  • 16.
    4. Fundamentals oftest process • Test basis: any level or type of testing being derived from ( ex: requirement, test devices, user story, designs, code…) • Test coverage: the percentage of coverage items that were exercises in a given test run. Þhelp to measure the achievement of test objectives. the right test process is the one that achieves test objectives in the most efficient way.
  • 17.
    Test process incontext (one size does not fit all) • Factors affect: • Product and project risks • Business domain • Operational constraints: budget, resources, timescales • Contractual and regulatory requirements • Organization policies and practices • Test level and test type being considered. • Software development lifecycle model and project methodologies
  • 18.
    Test activities andtasks test process include activity • Test planning • Test monitoring and control • Test analysis • Test design • Test implementation • Test execution • Test completion
  • 19.
    Test planning • Definetest objective and test approach within constraints imposed by the context • Determine the scope and risk • Implement test policy and test strategy • Determine the required test resource • Determine the exit criteria => deciding suitable test techniques to use => deciding what task need to be done Þ formulating a test schedule (test analysis and design tasks, test implementation/execution/evaluation)
  • 20.
    Test monitoring andcontrol • Test monitoring: test management activity by checking actual progress against test plan, identifying any deviations from the plan Þreport status to stakeholder. • Test control: taking necessary actions to meet the mission and objectives of the test plan
  • 21.
    Can monitor testprogress by using exit criteria The exit test criteria (những yêu cầu cần phải đạt dc trước khi dừng test) • Checking test results and logs against specified coverage criteria • Assessing the level of component or system quality based on results log • Assessing product risk and determining if more test are needed to the reduce the risk to an acceptance level
  • 22.
    Test analysis • Analyzethe test basis appropriate to the level test being considered • Evaluate the test basis and items to identify various type of defects • Identify features and set of features to be tested • Identify and prioritize test condition for each feature => what to test
  • 23.
    Test design • Highlevel test case • Major activity: • - design and prioritize test cases and set of test cases • Identify necessary test data to support test condition • Design test environment. => how to test
  • 24.
    Test implementation • Developingand prioritizing test procedures, creating automated test scripts • Creating test suites from the test procedures and automated test script • Building the test environment • Preparing test data and ensuring it is properly loaded in the test environment. • Arrange test suites within a test execution schedule in a way that results in efficient test execution.
  • 25.
    Test execution • testsuites are run in accordance with the test execution schedule. • Executing tests either manually or by using test execution tools. • Comparing actual results with expected results • Reporting defects based on the failures observed • Log the outcome of test execution • Analyze the anomalies in order to establish their likely causes
  • 26.
    Test completion • Checkingwhether all defect reports are closed • Creating a test summary report to be communicated to stakeholders • Finalize and archive the test environment, the test data, the test infrastructure and other test-ware for latter use • Analyze lesson learned form completed test activities to determine changes needed for future iteration/project
  • 27.
    Traceability between thetest basis and work product • Good traceability also support • Analyzing the impact of changes • Making test auditable • Improve the coherence of test progress report • Related technical aspects of testing to statkholders • Providing information to assess product quality