57
Software Testing and Quality Assurance Prof. Shailesh T. Gahane Assistant Professor Dr. D. Y. Patil School of MCA Charholi (Bk), Lohegaon, Pune – 412105 Mobile No.: +91-9960886053 Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

 Software quality assurance fundamentals

Embed Size (px)

DESCRIPTION

This Powerpoint presentation is about Software Quality Assurance Fundamentals.

Citation preview

Page 1:  Software quality assurance fundamentals

Software Testing and

Quality AssuranceProf. Shailesh T. Gahane

Assistant ProfessorDr. D. Y. Patil School of MCA

Charholi (Bk), Lohegaon, Pune – 412105Mobile No.: +91-9960886053

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 2:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

 Software Quality Assurance Fundamentals

1.1 Definition of Quality, QA, QC, SQA

1.2 SQA Planning & Standards  1.3 SQA Activities  

1.4 Building blocks of SQA

1.5 Quality factors

1.6 Software Quality Metrics

1.7 Process Improvement- Process and Product Quality - CMM, Six Sigma.

Page 3:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

What is Software ?

According to the IEEESoftware is:Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.

Software Errors, software faults and software failures● Bug/defect/fault consequence of a human error

o results in non-conformance to requirementso manifests as failure in running software

Page 4:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Infamous Software Error Case Studies

1947, MARK II

Disney's Lion King, 1994-1995

Intel Pentium Floating-Point Division Bug, 1994 .-(4195835 / 3145727) * 3145727 - 4195835 (~$ 475 mill. )

NASA Mars Polar Lander, 1999

Patriot Missile Defense System, 1991

Ariane 5 was destroyed 40 seconds after take off due to a crash in a software component controlling the rocket (1996), cost ~$ 500 mill.

The Y2K (Year 2000) Bug, circa 1974

Dangerous Viewing Ahead, 2004

October 1992, the London Ambulance Service suffered a disaster brought their operations to a virtual standstill over 36 hours, and cost 20 lives in the process. It was discovered that the new computer aided dispatch (CAD) software was responsible for the crisis.

Page 5:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Terms for Software Failures Depending on where you're employed as a software tester, you will use different terms to describe what happens when software fails.Here are a few:

Defect VarianceFault FailureProblem InconsistencyError FeatureIncident BugAnomaly

JUST CALL IT WHAT IT IS AND GET ON WITH IT Engineers deciding to rename Product Anomaly Reports (PARs) to

Product Incident Reports (PIRs).

Page 6:  Software quality assurance fundamentals

Error: A wrong action attributable to bad judgment, ignorance or inattention. or A misconception resulting from incorrect information.

Fault/ bug : The quality of being inadequate or falling short of perfection. Or Responsibility for a bad situation or event.

Failure: An event that does not accomplish its intended purpose. Or Loss of ability to function normallyProf. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 7:  Software quality assurance fundamentals

Product Specification. A product specification, sometimes referred to as simply a

spec or product spec, is an agreement among the software development team.

It defines the product they are creating, detailing what it

will be, how it will act, what it will do, and what it won't do.

This agreement can range in form from a simple verbal understanding, an email, or a scribble (Picture, etc) on a small paper, to a highly detailed, formalized written document.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 8:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Software Quality Assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality.

SQA encompasses the entire software development process, which includes processes such as

requirements definition, software design, coding,

source code control, code reviews,

change management, configuration management, testing, release management, and product integration.

SQA is organized into goals, commitments, abilities, activities, measurements, and verifications.

SOFTWARE QUALITY ASSURANCE (SQA)

Page 9:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

SQA is a set of activities for ensuring quality in software engineering processes (that ultimately result in quality in software products). The activities establish and evaluate the processes that produce products.

Processes could be:Software Development MethodologyProject ManagementConfiguration ManagementRequirements Development/ManagementEstimationSoftware DesignTestingetc

Page 10:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Once the processes have been defined and implemented, Quality Assurance has the following responsibilities:

identify weaknesses in the processescorrect those weaknesses to continually improve the

process SQA basically focuses on Process of the projects. It is a Prevention oriented. The Breadth of SQA is Organization wide. It relates to all products that will ever be created by a process or processes.

The activities of SQA are as follows:

Process Definition and ImplementationAuditsTraining

Page 11:  Software quality assurance fundamentals

QUALITY Quality is a subjective term. Software quality will

depend on who the customer is and the customer’s involvement in the overall software project.

Customer can be defined as the end users, customer acceptance testers, customer contract officers, customer management, the development organization’s management, accountants, testers, salespeople, future software maintenance engineers, stockholders, and so on.

Each type of customer who will be evaluating the value of the software application will have their own way of defining and measuring quality.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 12:  Software quality assurance fundamentals

DEFINATION OF GOOD DESIGN. Good software design is the design that

incorporates the latest but proven technology, has a scalable structure, facilitates easy integration with other systems, and is flexible to allow incorporating changes in requirements.

Businesses always keep on expanding, thus any system deployed should also scale up nicely.

the application shouldxbe easily integratable with these myriad systems.

As Requirements keep changing very often ,the design should be flexible enough to take care of these changes in requirements.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 13:  Software quality assurance fundamentals

DEFINITION OF GOOD CODEGood code is code that works as intended, is reasonably defect-free, and is readable and maintainable.

For object-oriented programming, here are some typical ideas to consider in setting rules/standards:

Minimize or eliminate use of global variables.

Use descriptive function and method names—use both uppercase and lowercase, avoid abbreviations, and use as many characters as necessary to be adequately descriptive. Be consistent in naming conventions.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 14:  Software quality assurance fundamentals

Use descriptive variable names—use both uppercase and lowercase, avoid abbreviations, and use as many characters as necessary to be adequately descriptive. Be consistent in naming conventions.

Function and method sizes should be minimized. Less than 100 lines of code is good; less than 50 lines is preferable.

Function descriptions should be clearly spelled out in comments preceding a function’s code.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 15:  Software quality assurance fundamentals

Organize code for readability.

Use white spaces generously—vertically and horizontally.

Each line of code should contain 70 characters max.

One code statement per line.

Coding style should be consistent throughout a program (e.g., use of brackets, indentations, naming conventions).

In adding comments, err on the side of too many rather than too few comments; a common rule of thumb is that there should be at least as many lines of comments (including header blocks) as lines of code.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 16:  Software quality assurance fundamentals

Documentation of the overall program function and flow or if possible a separate flowchart and detailed program documentation.

Make extensive use of error-handling procedures and status and error logging.

To minimize complexity and increase maintainability, avoid too many levels of inheritance in class hierarchies (relative to the size and complexity of the application). Minimize use of multiple inheritances, and minimize use of operator overloading (note that the java programming language eliminates multiple inheritance and operator overloading).

Make liberal use of exception handlers.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 17:  Software quality assurance fundamentals

Software bug occurs when one or more of the following rules are true: 1. The software doesn't do something that the product specification says it should do.

2. The software does something that the product specification says it shouldn't do.

3. The software does something that the product specification doesn't mention.

4. The software doesn't do something that the product specification doesn't mention but should.

5. The software is difficult to understand, hard to use and slow.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 18:  Software quality assurance fundamentals

Why Do Bugs Occur? Bugs are caused for numerous reasons, but, in this

sample project analysis, the main cause can be traced to the specification.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 19:  Software quality assurance fundamentals

Where is the Cost of Bugs ?Figure shows an example of how the cost of fixing these bugs can grow over time.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 20:  Software quality assurance fundamentals

List of Traits (Quality, Characteristics)that Most Software Testers should have: They are explorers. Software testers are not

afraid to venture into unknown situations. They love to get a new piece of software, install it on their PC, and see what happens.

They are troubleshooters. Software testers are good at figuring out why something doesn't work. They love puzzles.

They are relentless. Software testers keep trying. They may see a bug that quickly vanishes or is difficult to re-create. Rather than dismiss it as a fluke, they will try every way possible to find it.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 21:  Software quality assurance fundamentals

They are creative. Testing the obvious is not sufficient for software testers. Their job is to think up creative and even off-the-wall approaches to find bugs.

They are (mellowed) perfectionists. They strive for perfection, but they know when it becomes unattainable and they're okay with getting as close as they can.

They exercise good judgment. Software testers need to make decisions about what they will test, how long it will take, and if the problem they're looking at is really a bug.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 22:  Software quality assurance fundamentals

They are tactful and diplomatic. Software testers are always the bearers of bad news. They have to tell the programmers that their baby is ugly. Good software testers know how to do so tactfully and professionally and know how to work with programmers who aren't always tactful and diplomatic.

They are persuasive. Bugs that testers find won't always be viewed as severe enough to be fixed. Testers need to be good at making their points clear, demonstrating why the bug does indeed need to be fixed, and following through on making it happen.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 23:  Software quality assurance fundamentals

LIST OF CAUSES THAT INTRODUCE DEFECTS IN SOFTWARE

Miscommunication or no communication — Software specification or requirements are not understood by the project team due to miscommunication or no communication among the project team.

Software complexity — Software applications are getting more complex due to an increase in complexity in requirements. Multi-tiered applications, client-server and distributed applications, data communications, enormous relational databases, and the complex size of applications have all contributed to the exponential growth in software/system complexity.

Programming errors — If design specifications are not understood by programmers or if programmers make mistakes in programming structures or implement any design wrongly by mistake, then defects will be introduced in the software.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 24:  Software quality assurance fundamentals

Changing Requirements — A change in requirements upsets the whole project, from design to build to testing to deployment. In extreme situations, it may lead to the throwing away of all already designed and built software. In other cases, it may lead to significant change required in existing design and build. Sometimes a small change required in one module of software may lead to significant changes required in other dependent modules.

Overloading of Resources — Due to intangibility and the abstract nature of any software product, it is very difficult to make a good schedule for software projects. This results in bad scheduling, which causes many software professionals to be overloaded.

Less skillful resources — The software profession needs very skilled and experienced professionals. Many times less skilled professionals are recruited due to lack of skilled professionals in the market. This results in introduction of more defects in the software. Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 25:  Software quality assurance fundamentals

Unprofessional Attitude — Many times professionals on the project have attitude problems. They take their assignments lightly, play office politics, or try to shun their assigned work and off-load it to other members of the team.

Poor documentation — This is another primary source of defects in the software. In the case of smaller projects where some form of extreme programming or agile programming is followed, less documentation is acceptable because the project team is located at one place, and due to smaller software, complexity is less.

But in the case of bigger projects where the team may be located at different sites and where software requirements are complex, good documentation is very important. Otherwise, the team runs a great risk of introducing more defects. Another aspect of poor documentation is difficulty in maintaining the software application after it goes into production.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 26:  Software quality assurance fundamentals

Development tools — In today’s fast - paced business environment, project teams use many tools to increase their productivity. Some of these tools include visual tools, class libraries, compilers, scripting tools, RAD (Rapid Application Development), Integrated Development Studios, Integration Tools, and so on. Many times these tools introduce their own defects, and sometimes, due to their poor documentation, help in adding defects.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 27:  Software quality assurance fundamentals

Software Quality Metrics

Quality: The totality of features and characteristics of a product, process or service that bear on its ability to satisfy stated or implied needs.

The expected quality features and characteristics of a software product are commonly referred to as Quality Attributes.

Quality attributes are used early in the development process to identify user quality requirements. Each system has specific and unique quality needs, which are a function of the purpose of the application.

Software quality attributes are assessed by using Quality Control Techniques and when possible, appropriate Software Measurements or Metrics.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 28:  Software quality assurance fundamentals

Software metrics can be classified into three categories:

Product Metrics, Process Metrics, and Project Metrics.

Product metrics describe the characteristics of the product such as size, complexity, design features, performance, and quality level.

Process metrics can be used to improve software development and maintenance.

Examples include the effectiveness of defect removal during development, the pattern of testing defect arrival, and the response time of the fix process. Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 29:  Software quality assurance fundamentals

Project Metrics describe the project characteristics and execution.

Examples include the number of software developers, the staffing pattern over the life cycle of the software, cost, schedule, and productivity. Some metrics belong to multiple categories. For example, the inprocess quality metrics of a project are both process metrics and project metrics.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 30:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 31:  Software quality assurance fundamentals

Typical Quality Attributes Usability: effort required to learn, operate

and use a program.

Safety: ability of the system to operate without catastrophic failure.

Fault-tolerance: ability of the system to continue operating after some system faults have manifested themselves.

Security: ability of the system to protect itself against accidental or deliberate intrusion.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 32:  Software quality assurance fundamentals

Portability: effort required to transfer a program from one computing environment or platform to another.

Reusability: ability and effort required to reuse a program or part of a program in other applications.

Interoperability: effort required interconnecting or relating two different applications, running possibly in different computing environments

Maintainability: effort required modifying, updating, evolving, or repairing a program during its operation.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 33:  Software quality assurance fundamentals

PLAN-DO-CHECK-ACT CYCLE (PDCA CYCLE)When to Use:

As a model for continuous improvement. When starting a new improvement project. When developing a new or improved design

of a process, product or service. When defining a repetitive work process. When planning data collection and analysis

in order to verify and prioritize problems or root causes.

When implementing any change

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 34:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 35:  Software quality assurance fundamentals

PLAN Establish the objectives and processes necessary to deliver results in accordance with the expected output (the target or goals). By establishing output expectations, the completeness and accuracy of the specification is also a part of the targeted improvement. When possible start on a small scale to test possible effects.

DO Implement the plan, execute the process,

make the product. Collect data for charting and analysis in the following "CHECK" and "ACT" steps.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 36:  Software quality assurance fundamentals

CHECK Study the actual results (measured and collected in "DO"

above) and compare against the expected results (targets or goals from the "PLAN") to ascertain any differences. Look for deviation in implementation from the plan and also look for the appropriateness and completeness of the plan to enable the execution, i.e., "Do". Charting data can make this much easier to see trends over several PDCA cycles and in order to convert the collected data into information. Information is what you need for the next step "ACT".

ACT Request corrective actions on significant differences

between actual and planned results. Analyze the differences to determine their root causes. Determine where to apply changes that will include improvement of the process or product. When a pass through these four steps does not result in the need to improve, the scope to which PDCA is applied may be refined to plan and improve with more detail in the next iteration of the cycle, or attention needs to be placed in a different stage of the process.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 37:  Software quality assurance fundamentals

Software Process ImprovementWhat is the SOFTWARE PROCESS:The software process is:

“The set of Activities, Methods and Transformations that people use to Develop and Maintain Software and the Associated Products. for example: product plans, design documents, code, test cases and user manuals”

The Software Process is :“the Set of Activities, Methods, and Practices that guide People in the Production of Software.” s(Watts Humphrey 1993)

SPI is the name given to the identification of the current state-of-the-practice of information systems development within an organization and then improving it.

SPI focuses mostly on defect reduction and improving the development process.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 38:  Software quality assurance fundamentals

Understanding existing processes and introducing process changes to improve product quality, reduce costs or accelerate schedules.

Most process improvement work so far has focused on defect reduction. This reflects the increasing attention paid by industry to quality.

However, other process attributes can also be the focus on improvement.

Process Improvement Stages Process Measurement

Attributes of the current process are measured. These are a baseline for assessing improvements.

Process Analysis The current process is assessed and bottlenecks and weaknesses

are identified. Process Change

Changes to the process that have been identified during the analysis are introduced.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 39:  Software quality assurance fundamentals

The Process Improvement CycleProf. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 40:  Software quality assurance fundamentals

Process and Product Quality Process quality and product quality are closely

related and process improvement benefits arise because the quality of the product depends on its development process.

A good process is usually required to produce a good product.

For manufactured goods, process is the principal quality determinant.

For design-based activity, other factors are also involved especially the capabilities of the designers.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 41:  Software quality assurance fundamentals

SOFTWARE PRODUCT QUALITY FACTORS

ProductQuality

DevelopmentTechnology

Cost, Time andSchedule

ProcessQuality

PeopleQuality

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 42:  Software quality assurance fundamentals

Quality Factors For large projects with ‘average’ capabilities, the

development process determines product quality.

For small projects, the capabilities of the developers is the main determinant.

The development technology is particularly significant for small projects.

In all cases, if an unrealistic schedule is imposed then product quality will suffer.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 43:  Software quality assurance fundamentals

Software Process Improvement: CMM(Capability Maturity Model) SOFTWARE PROCESS MATURITY is: The extent to

which a specific process is explicitly defined, managed, measured, and effective. Maturity implies a potential for growth in capability and indicates both the richness and consistency with which software processes are applied across the Organization.

SOFTWARE PROCESS MATURITY Implies that: “The Productivity and Quality resulting from an Organization’s Software Process can be improved over time through consistent gains in the discipline by using the Software Process”

When the model is applied to an existing organization's software-development processes, it allows an effective approach toward improving them. Eventually it became clear that the model could be applied to other processes. This gave rise to a more general concept that is applied to business.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 44:  Software quality assurance fundamentals

This Model is developed by Software Engineering Institute (SEI), Carnegie Mellon. Funded by U.S. Department of Defense, concerned with late and cancelled contracts.

The CMM model's application in software development has sometimes been problematic.

Applying multiple models that are not integrated within and across an organization could be costly in training, appraisals, and improvement activities.

The Capability Maturity Model Integration (CMMI) project was formed to sort out the problem of using multiple models for software development processes, thus the CMMI model has outdated the CMM model, though the CMM model continues to be a general theoretical process capability model used in the public domain.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 45:  Software quality assurance fundamentals

45

SOFTWARE PROCESS: CMM

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 46:  Software quality assurance fundamentals

46

SOFTWARE PROCESS: CMM1. Initial. The software process is characterized as ad hoc, and occasionally even

chaotic. Few processes are defined, and success depends on individual effort and heroics.

2. Repeatable. Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.

3. Defined. The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization's standard software process for developing and maintaining software.

4. Managed. Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.

5. Optimizing. Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 47:  Software quality assurance fundamentals

What is a standard? A standard is a document that provides requirements,

specifications, guidelines or characteristics that can be used consistently to ensure that materials, products, processes and services are fit for their purpose.

ISO has published over 19000 International Standards that can be purchased from ISO or its members.

What are the benefits of ISO International Standards? ISO International Standards ensure that products and

services are safe, reliable and of good quality. For business, they are strategic tools that reduce costs by minimizing waste and errors and increasing productivity. They help companies to access new markets, level the playing field for developing countries and facilitate free and fair global trade.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 49:  Software quality assurance fundamentals

ISO 9000 ISO 9001 ISO 9126

The ISO 9000 family of standards is related to quality management systems and designed to help organizations ensure that they meet the needs of customers and other stakeholders while meeting statutory and regulatory requirements related to the product.

The standards are published by ISO, the International Organization for Standardization, and available through National standards bodies.

ISO 9000 deals with the fundamentals of quality management systems, including the eight management principles on which the family of standards is based.

ISO 9001 deals with the requirements that organizations wishing to meet the standard have to fulfill.Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 50:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

It is important to recall that every customer always values consistent and predicable services and/or products with near zero defects. Therefore they experience the variation.

If we can measure process variations that cause defects i.e. unacceptable deviation from the mean or target, we can work towards systematically managing the variation to eliminate defects.

Six Sigma is a methodology focused on creating breakthrough improvements by managing variation and reducing defects in processes across the enterprise.

Sigma is a Greek symbol represented by "σ“ Sigma is a statistical term that measures process deviation from the

process mean or target. Mean is also referred to as average in common language. The figure of six was arrived statistically by looking at the current average maturity of most business enterprises.

What is Six Sigma?

Page 51:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

There are two potential scenarios – First, there is already an existing process(s) that is working

"reasonably" well; and Second there is no process at all. A bad process is as good as no process.

The first scenario focuses on significant process improvements and requires use of DMAIC: Define process goals in terms of key critical

parameters (i.e. critical to quality or critical to production) on the basis of customer requirements or Voice Of Customer (VOC)

Measure the current process performance in context of goals

Analyze the current scenario in terms of causes of variations and defects

Improve the process by systematically reducing variation and eliminating defects

Control future performance of the process

Page 52:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

The second focuses on process design using Design For Six Sigma (DFSS) approach. DFSS typically requires IDOV: Identify process goals in terms of critical parameters, industry &

competitor benchmarks, VOC Design involves enumeration of potential solutions and selection

of the best Optimize performance by using advanced statistical modeling and

simulation techniques and design refinements Validate that design works in accordance to the process goals

Page 53:  Software quality assurance fundamentals

Parameters Quality Assurance Quality Control

DefinitionQA is a set of activities for ensuring quality in the processes by which products are developed.

QC is a set of activities for ensuring quality in products. The activities focus on identifying defects in the actual products produced.

Focus on

QA aims to prevent defects with a focus on the process used to make the product. It is a proactive quality process.

QC aims to identify (and correct) defects in the finished product. Quality control, therefore, is a reactive process.

Goal

The goal of QA is to improve development and test processes so that defects do not arise when the product is being developed.

The goal of QC is to identify defects after a product is developed and before it's released.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 54:  Software quality assurance fundamentals

How

Establish a good quality management system and the assessment of its adequacy. Periodic conformance audits of the operations of the system.

Finding & eliminating sources of quality problems through tools & equipment so that customer's requirements are continually met.

What

Prevention of quality problems through planned and systematic activities including documentation.

The activities or techniques used to achieve and maintain the product quality, process and service.

Responsibility

Everyone on the team involved in developing the product is responsible for quality assurance.

Quality control is usually the responsibility of a specific team that tests the product for defects.

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Page 55:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

Example Verification is an example of QA

Validation/Software Testing is an example of QC

Statistical Techniques

Statistical Tools & Techniques can be applied in both QA & QC. When they are applied to processes (process inputs & operational parameters), they are called Statistical Process Control (SPC); & it becomes the part of QA.

When statistical tools & techniques are applied to finished products (process outputs), they are called as Statistical Quality Control (SQC) & comes under QC.

Page 56:  Software quality assurance fundamentals

Prof. Shailesh T. Gahane, Dr. D Y Patil School of MCA, Pune

What do you mean by Software Quality Assurance? Explain various activities involved in SQA process.

 Explain Quality Matric. Explain PDCA Cycle in detail. Explain Software Process Improvement. Difference Between Quality Assurance and Quality

Control. Write Short Notes on:

Maintainability Software Quality Factor Six Sigma SEI-CMM and CMM Stages

Page 57:  Software quality assurance fundamentals

Prof. Shailesh T. GahaneAssistant Professor

Dr. D. Y. Patil School of MCACharholi (Bk), Lohegaon, Pune – 412105

Mobile No.: +91-9960886053