0% found this document useful (0 votes)
22 views

Chapter 1

Uploaded by

LinhNguye
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Chapter 1

Uploaded by

LinhNguye
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

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.
Þ Have we built the product correctly?

• 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 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

You might also like