Software Quality Assurance and Testing
Software Quality Assurance and Testing
Session 1
Module 1: Essential SQA: Processes and Success Factors
Contents
• Definition
• Quality Assurance Vs Quality Control
• Business Models
• Cost of Quality
• Quality culture
• Success Factors
Software – Definition
Development Life Cycle
Software life cycle is a process that contains the activities of requirements analysis, design,
coding, integration, testing, installation, and support for acceptance of software products. ISO
12207 [ISO 17]
Software Quality Definition
• Conformance to established software requirements; the capability of a software product
to satisfy stated and implied needs when used under specified conditions (ISO 25010
[ISO 11i]).
• The degree to which a software product meets established requirements; however, quality
depends upon the degree to which those established requirements accurately represent
stakeholder needs, wants, and expectations [(IEEE 730)] [IEE 14].
(Needs, Wants, Expectations can include - Functionalities, performance, efficiency, accurate
results, reliability, usability, costs, deadlines, etc.)
(True needs, Expressed needs, Specified needs, Achieved needs)
Software Quality Assurance
• The systematic application of scientific and technological knowledge, methods, and
experience for the design, implementation, testing, and documentation of software.
ISO 24765 [ISO 17a]
• A set of activities that define and assess the adequacy of software processes to
provide evidence that establishes confidence that the software processes are
appropriate for and produce software products of suitable quality for their intended
purposes. A key attribute of SQA is the objectivity of the SQA function with respect
to the project. The SQA function may also be organizationally independent of the
project; that is, free from technical, managerial, and financial pressures from the
project. [(IEEE 730)]
A way to prevent mistakes and defects in The process of executing a system with the
Definition
the manufactured products. intent of finding defects.
Software Cost
Cost of Project can be grouped into following buckets
• Implementation costs
Relationship Between the Process Maturity Characteristic and Rework [KRA 98]
Quality Culture
Cultural Principles in Software Engineering
1. Do not compromise quality due to cost or deadlines. Quality is the number one priority.
2. Quality Work is appreciated.
3. Continuing education and learning.
4. Participation of the client in S/W development process.
5. Share the vision of the final product with the client.
6. Continuous improvement in your software development process.
7. Ensure that it is a peer, not a client, who finds the defect.
8. Repeatedly go through all development steps except coding. coding should only be done
once.
9. Controlling error reports and change requests is essential to quality and maintenance.
10. If you measure what you do, you can learn to do it better.
11. Not everything can be changed, Identify and work on changes that will reap the most
benefits
The Eight Principles of the IEEE’s Software Engineering Code of Ethics [IEE 99]
S.
Principle Description
No.
1 The public Software engineers shall act consistently with the public interest.
Client and Software engineers shall act in a manner that is in the best interests of their
2
Employer client and employer, consistent with the public interest.
Product Software engineers shall ensure that their products and related
3 Product
modifications meet the highest professional standards possible.
Quality Perspectives
Five quality perspectives as described by Garvin (1984) [GAR 84]
1. Transcendental approach to quality: Although I can’t define quality, I know it when I
see it.
2. User-based approach: As expected from the user’s perspective. Can change with the
expectations of each user
3. Manufacturing-based approach: A “process based approach”. Compliance with the
process while defining the requirements and throughout the life cycle.
4. Product-based approach: Quality of internal properties of the software components, for
example, the quality of its architecture, quality of code, etc
5. Value-based approach: Focuses on the elimination of all activities that do not add value.
ISO/IEC 25000 series of standards, is also known as SQuaRE (System and Software
Quality Requirements and Evaluation)
A framework for the evaluation of software product quality
ISO/IEC/IEEE 12207
Quality Assurance Process in Detail
• Title – The Quality Assurance Process
• Purpose
o To help ensure the effective application of the organization’s quality management
process to the project.
o QA focuses on providing confidence that quality requirements will be fulfilled.
Proactive analysis of the project life cycle processes and outputs is performed to
CMMI
The five maturity levels of CMM were:
Level 1 - Initial:
Processes are ad-hoc and chaotic.
Processes are unpredictable, poorly controlled, and reactive.
There is no standardization, and success depends on individual heroics and efforts.
Organizations at this level often experience high variation in process performance
Frequent crisis management.
Level 2 - Repeatable: Basic project management processes are established.
Processes are defined at the project level, and there is consistency in project execution.
Processes are documented and communicated.
Project performance is monitored, and corrective actions are taken.
Level 3 - Defined: Processes are well-defined, documented, and standardized across the
organization
Standardized and documented processes at the organizational level.
Emphasis on proactive management.
Process metrics are collected and used for process improvement.
Implement a culture of continuous improvement.
Level 4 - Managed: Detailed measurements of processes and their effectiveness are
collected.
Quantitative objectives are set for process performance.
Process performance is measured and controlled quantitatively.
Variability in process performance is reduced.
Identify and address the root causes of process variation.
Level 5 - Optimizing: Continuous process improvement is institutionalized.
Focus on innovation, optimization, and process improvement at both the organizational
and project levels.
Continuous improvement is part of the organizational culture.
Process improvements are based on quantitative feedback.
Best practices are identified and shared across the organization.
ITIL Certifications
ITIL Foundation:
– Entry-level certification providing an understanding of ITIL concepts and
terminology.
ITIL Practitioner:
– Focuses on applying ITIL principles in a practical context.
ITIL Intermediate:
– Offers two paths (Service Lifecycle and Service Capability) with multiple modules
covering specific areas of ITIL.
ITIL Expert:
– Achieved by accumulating credits from both Foundation and Intermediate levels.
ITIL Master:
– The highest level of ITIL certification, demonstrating the ability to apply ITIL
principles in real-world situations.
1. Functional Suitability
Functional Suitability: Capability of a product to provide functions that meet stated and implied
needs of intended users when it is used under specified conditions.
Functional completeness: Capability of a product to provide a set of functions that
covers all the specified tasks and intended users’ objectives.
• All functionality implemented as per requirements. No requirements should be
left out.
• To verify that each functionality is present in the system, every requirement
should be traceable through Testing.
• Data should not be missing. Example in reports, etc.
Functional Correctness: Capability of a product to provide accurate results when used
by intended users.
• Inaccuracy in calculations. Rounding off errors
• Data should be up to date. No stale data. Duration of data should be accurate.
• Standards for coding and documenting the software system.
Functional Appropriateness: Capability of a product to provide functions that facilitate
the accomplishment of specified tasks and objectives.
• A user is only presented with the necessary steps to complete a task, excluding
any unnecessary steps.
3. Compatibility
Compatibility - Capability of a product to exchange information with other products, and/or to
perform its required functions while sharing the same common environment and resources.
Co-existence - Capability of a product to perform its required functions efficiently while
sharing a common environment and resources with other products, without detrimental
impact on any other product.
• Multiple apps working simultaneously on the same operating system
• Sharing same Memory, Disk, etc
Interoperability - Capability of a product to exchange information with other products
and mutually use the information that has been exchanged
• Information is meaningful data; and information exchange includes
transformation of data for exchange.
• There can be protocols for data conversion.
Software Testing QA Vs QC
Session 6
Module 5: Mastering SQA: Test Execution and Automated Testing
Black Box Testing Methodologies
Contents
Test Design Techniques
Combinatorial Testing
Boundary Value Analysis
Equivalence Class Partitioning
Need of Combinatorial Development Life Cycle
Possible Test case
210 = 1,024
3-Way coverage
Need of Combinatorial
OS - XP, OS X, RHL (3)
Browser - IE, Firefox (2)
Protocol - IPV4, IPV6 (2)
CPU - Intel, AMD (2)
DBMS - Sybase, Oracle, MySQL (3)
Total Possible Test case 3*2*2*2*3 = 72
Coverage
• Studies such as “Estimating t-Way Fault Profile Evolution During Testing” and “Practical Combinatorial
Testing” (presented by the National Institute of Standards and Technology in 2017 and 2010 respectively)
indicate that the vast majority of defects (67%-93%) related to input values are due to a problem in either
one parameter value (single-value fault) or a combination of two parameter values (2-way interaction fault).
• NIST research showed that most software bugs and failures are caused by one or two parameters, with
progressively fewer by three or more, which means that combinatorial testing can provide more efficient
fault detection than conventional methods. Multiple studies have shown fault detection equal to exhaustive
testing with a 20X to 700X reduction in test set size. New algorithms compressing combinations into a
small number of tests have made this method practical for industrial use, providing better testing at lower
cost. (NIST).
BVA test cases for a function of two variables – single fault assumption
4n+1 test cases
EC – Strong Normal
EC – Weak Robust
EC – Strong Robust
Decision Tables
DT Example Solution
What to Test.
• Avoid duplication in case of reused software.
• Criticality of the area.
• Newer versions of stable software. Added modules/feature.
Who performs the Tests
• Unit Test – Development Team
• System Tests – Independent Test Team (Internal or External).
Where to Perform Tests
• Unit Test or Integrations Tests – Development Site
• System tests – Development Site or Consultant Site or Customer Site.
How much to Tests
• When all the Tests in Test plan are executed and no issues are found.
• Achieve certain minimum level of Error discovery rate.
• Resources have ended – Time Limit, Budget.
Test Prioritization
Test cases can be prioritized.
Priority setting can be based on
• Type of product
• Organization size/culture
• Resources available
Sample Prioritization
• P0 – Tests that need to pass before full testing is started
• P1 - This test must be executed before final delivery.
• P2 - If time permits, execute this test.
• P3 - This test can wait after the delivery date.
Few manpower resources for test Considerable testing areas left uncovered
4 execution
5 Shorter testing periods
6 Performance of complete regression tests
Automated Testing
Automation testing is not a 100% replacement for Manual Testing
1. Does not work when the product itself is changing.
2. Works well in regression Testing
3. Test automation takes lots of efforts.
4. Maintenance cost of automated test cases is very high.
5. Resource Cost is high for Test Automation Engineers.
6. Trained resources are needed for Automated Test design, execution and maintenance.
Defects that unblock the Testing are given high priority and fixed early
Example Priority and Severity
• High Severity, Low priority
• Incorrect Logo.
• High priority, Low Severity
• Slow response to transaction.
• No functionality break but an irritant to Test team
• Hampers the productivity of Test team
• High priority, High Severity
• Data corruption issues
• Low priority, Low Severity
• Incorrect Message on Pop-Up