Fundamentals Day01 - Lecture Slides
Fundamentals Day01 - Lecture Slides
DAY 01
What you will learn Today
2
SQA
Table of Content
►Introduction To Software Testing
►Importance of Testing
►Causes of Failures
►Testing Objectives
►Basic Testing Vocabs
►Testing Principles
►Fundamental Test Process
►Lab Exercise
3
SQA
Introduction to Software
Testing
4
SQA
Importance of Testing
5
SQA
Importance of Testing
Most people have an experience with software that did not work
as expected. Software that does not work correctly can lead to
many problems, including:
6
SQA
Importance of Testing
7
SQA
Importance of Testing
Software Testing is necessary because we all make
mistakes. Some of those mistakes are unimportant, but some
of them are expensive and dangerous.
8
SQA
Importance of Testing
9
SQA
Importance of Testing
10
SQA
Importance of Testing
11
SQA
Importance of Testing
12
SQA
Importance of Testing
13
SQA
Importance of Testing
14
SQA
Importance of Testing
15
SQA
Importance of Testing
16
SQA
Importance of Testing
Not me!!! Find
LION…
17
SQA
18
SQA
?
GOOD QUALITY
MERCEDES-BENZ OR SUZUKI MEHRAN
19
SQA
20
SQA
Quality Vs Testing
“Quality software is reasonably bug or defect free, delivered
on time and within budget, meets requirements and
expectations, and is maintainable.”
21
SQA
Software Testing
The process of verifying and validating that a software program,
application or product:
22
SQA
Other Definitions
• 1979: Software testing is a process of executing a program or application with the
intent of finding the errors.
23
SQA
Quality Vs Testing
Key Aspects of Quality:
24
SQA
25
SQA
Examples of Failures
►A smartphone mapping app showed a museum in middle of river – A basic functionality failure
►Ariane 5 crashed 40 sec after takeoff because of incorrect calculation by its inertial reference
system that was taken from Ariane 4 – An incompatible component reuse
►Daraz server went down just after first time launching of 11.11 – A performance failure
►A change in billing system of an electrical provider blacked out a city – An upgrade failure
►A wide area blacked-out due to a hacking incident occurred in Ukraine – A security failure
26
SQA
Causes of Failures
Software failures and their rectification
27
SQA
Causes of failures
►Time pressure
►Human fallibility
►Inexperienced or insufficiently skilled project participants
►Miscommunication between project participants, including
miscommunication about requirements and design
►Complexity of the code, design, architecture
►Misunderstandings about intra-system and inter-system interfaces
►New, unfamiliar technologies
28
SQA
Testing Objectives
29
SQA
Typical Objectives
• To evaluate work products such as requirements, user stories, design, and code.
• To verify whether all specified requirements have been fulfilled.
• To validate whether the test object is completed and works as the users/stakeholders expect.
• To build confidence in the level of quality of the test object.
• To prevent defects.
• To find failures and defects.
• To reduce the level of risk of inadequate software quality (undetected failures in operation).
• To comply with contractual, legal, or regulatory requirements or standards.
• To provide sufficient information to stakeholders to allow them to make informed decisions, especially
regarding the level of quality of the test object.
30
SQA
31
SQA
Bug
Defect
Error ? Mistake
Fault
Failure
32
SQA
Defects in software, systems or documents may result in failures, but not all defects do so.
33
🢇
SQA
34
🢇
SQA
(Good Quality)
Quality
Inspecting Deliverables
(Bad Quality)
Liabilities, Law Suites, Product recalls
Money spent during and after
the project because of failures
External Failure Cost Warranty Work
(failure found by customer) Lost Business or Credibility
35
SQA
Testing Terminologies
Test Oracle
Test Basis Test Condition Test Case Test Procedure Test Implement Test Execution
Test Progress Report Test Summary Report
36
SQA
Testing Principles
37
SQA
Testing a banking
application is different than If the same set of
testing any repetitive tests are
e-commerce or gaming Testing is Pesticide
executed, then it will be
application. Context Paradox
useless for discovering of
Dependent
new defects.
38
SQA
Test Process
39
SQA
Test Analysis
approaches progress “What to
of testing, against the test”; “How to
Test Design
resources, test plan, Analyze Test Test”;
entry and Test control Basis to Designing “Do we now
Test Implementation
exit criteria. involves defining and Test have
taking prioritizing environment, everything in Executing
Test Execution
actions test infrastructur place to run tests either
necessary to conditions, e and tool; the tests?” manually or Prepare Test
Completion
Test
meet the Identify Test Setup Test by using test Summary
objectives of features to conditions environment, execution Report,
the test plan be tested. are Implement, tools, Finalized all
elaborated Test Reporting completion
into high- Procedures, defects data
level test Test Suites, based on the gathered,
cases Test Scripts. failures Hand over
observed. testware
Log outcome
of test.
40
Test Planning
• To determine the scope, risks, objectives of testing and test approach.
• To determine the required test resources like people, test environments, PCs, etc.
• To schedule test analysis, test design, test implementation, execution & evaluation.
41
Test Monitoring and Control
• Test monitoring involves the on-going comparison of actual progress against 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.
• 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.
• Test progress against the plan is communicated to stakeholders in test progress reports,
including deviations from the plan and information to support any decision to stop testing.
42
Test Analysis
• Determines “what to test”.
• Analyze Test Basis to defining and prioritizing test conditions for each feature considering
functional, non-functional, and structural characteristics, other business and technical
factors, and levels of risks
• Identifying features and sets of features to be tested
• Capturing traceability between test basis and the associated test conditions
• Test analysis may also result in the discovery and reporting of defects in the test basis.
43
Test Design
• Test design answers the question “how to test?”
• Test conditions are elaborated into high-level test cases, sets of high-level test
cases.
• Designing and prioritizing test cases and sets of test cases.
• Identifying necessary test data to support test conditions and test cases
• Designing the test environment and identifying any required infrastructure and tools.
• Capturing bi-directional traceability between the test basis, test conditions, test
cases.
44
Test Implementation
• Answers the question “do we now have everything in place to run the tests?”
• Implementation of testware necessary for test execution.
• Implementation of Test Procedures and Test Suites.
• Creation of automated Test Scripts.
• Prioritize and Schedule Test Suite for Test execution.
• Setup the test environment and verifying that required things has been set up correctly.
• Preparing test data and ensuring it is properly loaded in the test environment.
• Verifying and updating traceability between the test basis, test conditions, test cases, test procedures,
and test suites.
45
Test Execution
• Test suites are run in accordance with the test execution schedule.
• Recording the IDs and versions of the test item(s) or test object, test tool(s), and testware.
• Executing tests either manually or by using test execution tools
• Comparing actual results with expected results
• Analyzing anomalies to establish their likely causes.
• Reporting defects based on the failures observed.
• Logging the outcome of test execution (e.g., pass, fail, blocked).
• Re-execute test activities (Confirmation Testing, and/or Regression Testing).
46
Test Completion
• Test completion activities collect data from completed test activities.
• Test completion activities occur at project milestones.
• Checking whether all defect reports are closed.
• Creating a Test Summary Report to be communicated to stakeholders.
• Finalizing and archiving the test environment, the test data, the test infrastructure 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
47
SQA
End of Day 01
48
SQA
Lab Exercise
Reading Exercises
Identify Defects by using common knowledge
Exercise of Testing Principles and Test Process (ISTQB)
49
SQA
Q&A
Instructor Notes
50