Lecture # 1 - Slides
Lecture # 1 - Slides
Lecture # 1 - Slides
QUALITY
ASSURANCE
Lecture # 1
Reference
○ Software Engineering: A Practitioner's Approach by Roger S. Pressman
(Author)
○ ISTQB Certification- Foundation of Software Testing by Dorothy Graham,
Erik Van Veenendaal, Isabel Evans and Rex Black
○ https://online.husson.edu/software-engineer-vs-software-developer/
○ https://www.google.com/search?
biw=1242&bih=553&tbm=isch&sa=1&ei=fhmMXPSPBYmXsAfAp7ugDA&q=s
oftware+quality+Management&oq=software+quality+Management&gs_l=img.3..
0j0i8i30l2j0i24l7.164617.166562..166963...0.0..0.490.4246.4-9......1....1..gws-wiz-
img.......0i5i30.8gvFUFHNqU0#imgrc=Vv4Myx3w5bSjcM:
○ https://slideplayer.com/slide/7682374/
○ https://slideplayer.com/slide/4142268/
2
CAREER CONSUELLING FOR SQA Engineer
○ Who want to choose SQA field?
○ Skill Set required for SQA Engineer
○ Database Concepts Revision
○ Object Oriented Programming Revision
○ Software Engineering concept revision
3
Who want to be a Software Quality
Assurance Engineer/Software
Analyst/Quality Engineer/Software
Tester/Test Engineer in future?
Skill Set required for SQA Engineer
• TECHNICAL SKILLS:
• Manual testing
• Software Testing Concepts
• Test Plan and strategies
• Test cases writing
• Test execution & Test Results with Bug reporting etc.
• Software Testing Tools( Jira, MS Test Manager, VSTS 2017
etc)
• Mobile/Web/Desktop Testing
• Software Development Processes
• Waterfall
• Agile, Sprint backlog, Planning, Daily meetings ,User stories
• DevOps
• Software Test Automation
• Selenium Web Driver Tool used
Skill Set required for SQA Engineer
• TECHNICAL SKILLS:
• Application Program Interface Testing
• Postman Tool used for API Testing
• Performance Testing
• Jmeter used for performance Testing
• Database Concepts
• Object Oriented Programming Concepts
• Domain business Knowledge of application under test
• SOFT SKILLS:
• Writing, Listening & Speaking Skills(Emotional Intelligence)
• Ability to handle stress & Patience
DB Concepts required for SQA Engineer
• Select, all columns(*)
• where for get specific record data(=,>, < , >= , <= , <>)
• add temporary column(Column1* Column2 as [ColumnName]) in table
• conditional operator ‘and’/’or’ & aggregate functions(Min, count,max,avg)
• IN & Between clause & LIKE Clause
• Order by clause(DESC/ASC), Group by clause, Having clause,
• SubQuery in query, distinct query & Exists clause
• insert record in table, update record in table, delete record from table
• anomalies & Normalization, Super key, candidate key, primary key, secondary
key, alternate key and composite key
• ERD, cardinality/connectivity of relationship, degree of relation? Or What is
modularity of relation?
• delete(DML, rollback) ,truncate(DDL, not rollback, empty table without seeing
constraints)?
• Types of Join(Inner left, right, outer/full, self joins)
• create Temporary table(into #temptable)
• Referential integrity constraint & Entity integrity constraint
• Create, Alter(update) and drop stored procedures
• Data Model, ETL, Views, Dataset, grid view, Data adapter, Triggers
OOP Concepts required for SQA Engineer
• Encapsulation
• Abstraction, Abstract Data type, Class & object
• Class Access control modifiers (Public, private & protected), Class constructor
• Non-access modifiers-static final & abstract
• Static class, attributes & Methods
• Polymorphism
• Operator overloading
• Method overloading
• Generalization & Specification
• Inheritance- Base & drive class
• Multiple inheritance
• Association, Composition & Aggregation
• IS-A & HAS-A relationship,
• Abstract class & method overriding
• Interface
• Generic Class & function
• Static & dynamic binding
SE Concepts required for SQA Engineer
• Waterfall
• Agile
• Spiral
• DevOps
TODAY OBJECTIVE
○ Quality, software Quality & quality
attributes.
○ Software Quality Management,
Software Quality Assurance , Software
Quality Control , Software Testing
○ Test Levels
○ Software Test Techniques
○ Test Types
11
1 SOFTWARE QUALITY
MANAGEMENT (SQM)
= SOFTWARE QUALITY
STANDARD + SOFTWARE
QUALITY ASSURANCE(SQA)
+ QUALITY CONTROL(QC)
What is Quality?
The degree to which a component, system or process meets specified
requirements and /or user/customer needs and expectation[After IEEE 610]
What is Software Quality?
The totality of functionality and features that bear on its ability to satisfy
stated or implied needs.
What are the Software Quality
Characteristics/attributes?
A feature or characteristics that affects an item’s quality
What is Software Quality Management?
Software Quality
Management(SQM)-
Coordinated activities to
direct and control an
organization with regard to
quality. Directional and
control with regard to quality
policy and quality objectives,
quality planning, quality
control, quality assurance
and quality improvement.
[ISO 9000]
SQM = Quality Planning +
QA+ QC
Software Quality Assurance vs Software Quality Control vs Software Testing
What is Software Testing?
Focus on finding defects of software product
The process consisting of all lifecycle 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.
What is Software Quality Control?
• Focus on improvement of
software product
• The series of inspections,
reviews, audit and test
throughout the develop cycle
of a software product.
• QC includes a feedback loop
to process.
• Objective of QC to minimize
the produced defects,
increase the product quality.
• Key concept of quality control
is to compare the work
products with the specified
and measurable standards.
What is Software Quality Assurance?
SQA = Software quality Control + Software Testing
Focus on improvement of software process to prevent defects
Part of software quality management focused on providing confidence that quality requirements will be
fulfilled. [ISO 9000]
SQA Responsibilities into software development team
21
SQA Artifacts produced by SQA Engineer
22
Software Quality Software Quality
Control(SQC) Assurance(SQA)
Focus on Focus on
improvement of improvement of
software Product software Process
Reactive approach to Proactive approach to
prevent defects in prevent defects in
Product Product
Test Level
26
Test Level
Component Testing - The testing of individual software
components.
Integration -The process of combining components or
systems into larger assemblies.
Integration Testing - Testing performed to expose defects
in the interfaces and in the interaction between integrated
components or system.
System testing -The process of testing an integrated system
to verify that its meet specified requirements.
Acceptance Testing - Formal Testing with respect to user
needs, requirements and business processes conducted to
determine whether or not a system satisfies the acceptance
criteria and to enabled users, customers or other authorized
entity to determine whether or not accept the system.
27
Test Levels
28
Software Test Level by Roles
30
Test Levels
3
TEST
TECHNIQUES
Informal
Review
Walkthrough
Static Technical
Testing review
Inspection
Data Flow
Static
Analysis
Control Flow
Structure- Specification-
Experience-based
based(White-Box) based(Black-Box)
Equivalence Error
Statement
partitioning Guessing
Boundary
Exploratory
Decision Value
Testing
Analysis
Decision
Condition
Table
Multiple State
Condition Transition
Use case
Testing
36
Black-Box (Specification based) Test Design techniques
Procedure to derive and/or select test cases based on an analysis of the
specification, either functional or non-functional, of a component or system
without reference to its internal structure.
37
Black-Box (Specification based) Test Design Techniques
1)Equivalence Partitioning
Equivalence Partitioning-A black box test design technique in which test cases are designed to
execute representative from equivalence partitions. In principle, test cases are designed to cover
each partition at least once.
Equivalence partition-A portion of an input or output domain for which the behavior of a component
or system is assumed to be same, based on the specification.
2) Boundary Value
Boundary Value – An input value or output value which is on the edge of an equivalence partition or
at the smallest incremental distance on either side of an edge, for example the minimum or
maximum value of a range.
Boundary Value Analysis- A black-box design techniques in which test cases are designed based on
boundary values.
3) Decision Table
Decision Table – A table showing combination of input and/or stimuli (causes) with their associated
outputs and/or actions(effects),which can be used to design test cases
Decision Table Testing – A black-box test design techniques in which test cases are designed to
execute the combinations of inputs and/or stimuli (causes) shown in a decision table.
38
Equivalence Partitioning
39
Boundary Value Testing
40
Decision Table
41
Black-Box (Specification based) Test Design Techniques
4) State Transition
State Transition Testing – A black-box test design techniques in
which test are designed to execute valid and invalid state
transitions.
5) Use Case Testing
Use Case Testing – A black-box test design techniques in
which test are designed to execute user scenarios.
42
State Transition Diagram
43
44
White-Box (Structure based) Test Design
Techniques
1)Statement Coverage
The percentage of executable statements that have been exercised by a test suite.
Statement Coverage = (Number of Statements exercised)/(Total Number of Statement) x
100
2) Decision Coverage
The percentage of decision outcomes that have been exercised by a test
suite.
100% decision coverage implies 100% Statement coverage.
Statement Coverage = (Number of Statements exercised)/(Total Number of
Statement) x 100
45
Statement and Decision Testing 46
Experienced Based Test Design Techniques
1)Error Guessing
A test design technique where the experience of the tester is used to
anticipate what defects might be present in the component or system under
test as a result of error made, and to design tests specially to expose them.
2) Exploratory Testing
A test design technique where tester-actively controls the design of the tests
as those tests are performed and uses information gained while testing to
design new and better tests.
47
Experienced Based Testing 48
Error Guessing
49
Exploratory Testing
50
4 TEST TYPES
A group of test activities aimed at
testing a component or system
focused on specified test objective,
i.e. functional test, usability test,
regression test etc. A test type may
take place on one or more test
levels or test phases.
[After TMap]
Test Types
52
Test Levels by Test Techniques
53
Functional Testing – Verify software product against customer requirements.
Testing based on an analysis of the specification of the functionality of a component or system.
Functionality – The capability of the software product provide functions that meet stated and
implied needs when the software is used under specified conditions.
Functional Testing – The process of testing to determine the functionality of a software
product.
Non-Functional test Design Techniques – A procedure to derive and/or select test cases for
non-functional testing based on an analysis of the specification of a component or system
without reference to its internal structure.
Functional and non-functional testing can used both black-box and white-box techniques
54
55
Functional Testing
Non-Functional Testing
56
Non-Functional Testing
Interoperability -The capability of the software product to interact with one or more specified
components or system.
Interoperability Testing – The process of testing to determine the interoperability of a
software product.
Security – Attributes of software products that bear on its ability to prevent unauthorized
access, whether accidental or deliberate, to programs and data.
Security Testing – Testing to determine the security of the software product.
Load Testing – A test type concerned with measuring the behavior of a component or system
with increasing load e.g. the number of parallel users and/or numbers of transactions, to
determine what load can be handled by the component or system.
Performance – The degree to which a system or component accomplish its designated
functions within given constraints regarding processing time and throughput rate.
Performance Testing- The process of testing to determine the performance of a software
product.
Stress Testing- Testing conducted to evaluate a system or component at or beyond the limits
of its specified requirements. 57
Non-Functional Testing
Reliability- The ability of the software product to perform its required functions under stated
conditions for a specified period of time, or for a specified number of operation.
Reliability Testing – The process of testing to determine the reliability of a software product.
Usability- The capability of software to be understood, learned, used and attractive to the user
when used under specified conditions.
Usability Testing- Testing to determine the extent to which the software product is
understood, easy to learn, easy to operate and attractive to the users under specified
conditions.
Efficiency-The capability of a software product to provide appropriate performance, relative to
the amount of resources used under stated conditions.
Efficiency Testing – The process of testing to determine the efficiency of a software product.
Portability – The ease with which the software product can be transferred from one hardware
or software environment to another.
Portability Testing – The process of testing to determine the portability of a software product.
58
Interoperability- capability of the software product to
interact with one or more specified components or
system.
59
Security Testing
Attributes of software
products that bear on
its ability to prevent
unauthorized access,
whether accidental or
deliberate, to programs
and data.
60
Load Testing used for measuring the
behavior of a component or system
with increasing load e.g. the number of
parallel users and/or numbers of
transactions, to determine what load
can be handled by the component or
system.
61
Performance Testing
The degree to which a
system or component
accomplish its
designated functions
within given
constraints regarding
processing time and
throughput rate.
62
Throughput = Number of transaction per unit of time e.g. minute/seconds/Hours 63
Load Test= Expected Number of users for application
Stress Test = Unexpected Number of users for application
64
Reliability Testing - ability of the software product to perform its required functions under
65
stated conditions for a specified period of time, or for a specified number of operation.
Usability Testing -software product is understood, easy to learn, easy to operate and
attractive to the users under specified conditions.
66
Efficiency Testing-software product to provide appropriate performance, relative to the
amount of resources used under stated conditions.
67
Portability Testing - ease with which the software product can be transferred from one
hardware or software environment to another.
68
White Box Testing (Structure Testing) - Testing based on an analysis of the internal
structure of the component or system.
Re-testing(Confirmation)Testing - Testing that runs test cases that failed the last time they
were run, in order to verify the success of corrective actions.
71
Maintainability- The ease with which a software product can be modified to correct
defects, modified to meet new requirements, modified to make future maintenance 72
easier, or adapted to a changed environment.
Thanks!
Any questions?
You can find me at
○ [email protected]
73