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