Software Quality Assurance: A Comprehensive Guide
Quality Assurance Institute (QAI)
The Quality Assurance Institute (QAI) provides leadership in improving quality, productivity, and effective solutions for managing processes in information services. QTS produces professional-quality software through methods, methodologies, technologies, and norms consistent with Software Engineering.
Software Engineering
Software Engineering applies traditional engineering principles to produce high-quality, low-cost software.
Software Quality Assurance Activities
Security Check, Validation, and Test Objective
Minimize errors and risks.
Activity Test
Dynamic product analysis, allowing for the identification and elimination of persistent errors.
Software Defects
- Defect (fault): An incorrect step, process, or data definition, such as an incorrect statement or command.
- Mistake (error): A human action resulting in an incorrect result, such as a wrong action taken by the programmer.
- Error: The difference between the obtained value and the expected value. Any incorrect or unexpected intermediate state or result during program execution is an error.
- Failure: An incorrect output concerning the specification.
Types of Errors
- Computational errors: Cause incorrect computations, even if the execution path (sequence of commands) matches the expected path.
- Path errors: Occur when the executed path differs from the expected path, or a wrong path is selected.
Activity Test Phases
- Test Planning
- Design of test cases
- Execution
- Evaluation of test results
Three Phases of Testing
- Unit testing: Identifies logic and implementation errors in each isolated software module.
- Integration testing: Uncovers errors associated with interfaces between modules during program structure integration.
- System testing: Identifies errors in functions and performance characteristics inconsistent with the project specification after system integration.
Conceptualizing Quality
General Definition
According to William Edwards Deming:”Quality is the satisfaction of customer needs first.” The concept of quality emerged after World War II when customers needed product differentiation and functionality due to increased supply and lower demand. The ISO8042 standard defines quality as”the totality of characteristics of an entity that gives it the ability to meet the needs implicit and explicit”
Essential Items for Customer Use
Customer, Costs, and Processes.
Seven Instruments of Control (Kaoru Ishikawa)
- Cause-effect diagrams
- Histograms
- Control sheets
- Ladder diagrams
- Control Charts
- Flow Control
Definitions of Quality by Quality Experts
- Philip Crosby:”Quality is conformance to specifications”
- Kaoru Ishikawa:”Practicing good quality control is developing, designing, producing, and marketing a quality product that is more economical, more useful, and always satisfying to the customer”
- Joseph Juran:”Quality is a barrier of protection””Quality is fitness for use”
- Armand Feigenbaum:”Quality is the total composition of the characteristics of marketing, design, production, and maintenance of goods and services, through which the products will meet customer expectations”
- Genichi Taguchi:”The quality and cost of a product are largely determined by its design and manufacturing process. Defines Quality in terms of losses generated by this product to society”
- William Edwards Deming:”Quality is the satisfaction of customer needs first”
Deming’s 14 Points for Quality (5 Examples)
- Create a consistent view toward improving a product or service.
- Adopt the new philosophy and assume its leadership in the company.
- Complete with the dependence of the inspection as a path to quality.
- Minimize costs with the selection of a preferred supplier.
- Improve constantly and continuously each process.
Philip Crosby’s 14 Steps for Quality Improvement (5 Examples)
- Obtaining commitment from top management to quality.
- Install teams of quality improvement in all sectors.
- Measuring the quality of the organization through quality indicators, indicating the need for improvements.
- Raise the costs of non-quality.
- Spreading the employees the importance of quality in products or services.
Software Concepts
- Instructions (computer programs) that, when executed, produce the desired function and performance.
- Data structures that enable programs to adequately manipulate information.
- Documents describing the operation and use of programs.
Types of Software Developed by Engineering
- Basic Software: Programs written to support other programs (e.g., compilers, editors, utilities).
- Real-Time Software: Software that monitors/analyzes/controls real-world events.
- Commercial Software: Software for commercial information processing (e.g., transaction processing at points of sale).
- Software Science and Engineering: Software for processing numerical algorithms (e.g., applications ranging from astronomy to volcanology).
- Embedded Software: Read-only memory (ROM) used to control products and systems for industrial and consumer markets (e.g., digital functions in automobiles like fuel control, display panels, brake systems, microwaves).
- Personal Computer Software: Software for personal computers (e.g., word processing, spreadsheets, computer graphics, entertainment, data management).
- Artificial Intelligence Software: Non-numerical algorithms for solving complex problems not favorable to computing or direct analysis.
- Entertainment Software: Software focused on creating games in categories like casual, strategic, or simply for fun.
Six Sigma
Definition
Six Sigma is a disciplined methodology for improving quality. It systematically improves processes by eliminating defects, defined as non-conformities of a product or service to its specifications. Six Sigma is also a management strategy promoting organizational change, leading to improvements in processes, products, and services for customer satisfaction.
Six Sigma Team Composition
- Executive Management: Makes significant commitments to implement and support a successful Six Sigma initiative.
- Champion: Senior-level individuals who understand and are committed to Six Sigma’s success. They sponsor Six Sigma projects, ensuring resource availability and resolving cross-functional issues.
- Master Black Belt: Provides technical leadership in the Six Sigma program, overseeing methodologies and strategies.
- Black Belt: Helps Green Belts define projects, provides training, and assists them in their projects.
- Green Belts: Six Sigma project leaders who form and facilitate projects from concept to completion.
DMAIC Process Steps in Six Sigma
- Define: Formally sets process improvement goals consistent with customer demands and enterprise strategy.
- Measure: Defines measurements based on the current process for future comparison, mapping and measuring the process, and collecting necessary data.
- Analyze: Verifies the relationship and causality of factors, identifying any unconsidered factors.
- Improve: Optimizes the process based on analysis using techniques like design of experiments.
- Control: Controls the process with pilot testing, transitions to production, and continuously measures the process to ensure variation correction before defects arise.
Software Development Methodologies
1. Rational Unified Process (RUP)
RUP is a well-defined and structured software development process that adapts to various projects. It defines roles, responsibilities, methodologies, and timelines. RUP also provides a well-defined lifecycle for projects, articulating key milestones and decision points.
2. Scrum Methodology
Scrum is an agile method for managing and planning software projects. Projects are divided into cycles (typically monthly) called Sprints, which are time-boxed periods for completing a set of activities.
3. Extreme Programming (XP)
XP is an agile methodology for small and medium-sized teams developing software with vague and rapidly changing requirements. Key differences from other methodologies include constant feedback, an incremental approach, and encouraged communication.
Total Quality
Definition
Total Quality delivers products or services that meet customer expectations. It emphasizes delighting customers and eliminating gaps and waste.
Essential Items for Customer Suitability
- In accordance with customer expectations.
- Inside of technical specifications.
- As previously promised and demonstrated.
Seven Instruments of Quality Control (Kaoru Ishikawa)
Parity analysis, cause-effect diagrams, histograms, control sheets, ladder diagrams, control charts, and control flows.
Philip Crosby’s Vision on Quality
Philip Crosby believed that managers, not workers, are responsible for a lack of quality. He advocated for top-down quality initiatives led by example, requiring commitment from top management and employee training on quality improvement tools.
Factors Contributing to the Evolution of Quality
Delivery and payment conditions, flexibility, and pre-and post-sales service.
Factors for a Quality Product
Client, Cost, and Case.
Armand Feigenbaum’s Vision on Total Quality Control
Armand Feigenbaum is considered the father of Total Quality Control (TQC). He believed quality is a strategic tool concerning all workers, representing a management philosophy and commitment to excellence rather than just eliminating manufacturing defects.
Main Task in Extreme Programming
Coding.
Genichi Taguchi’s Vision on Product Quality
Genichi Taguchi defined quality in terms of losses a product generates for society. These losses, estimated based on the product’s life cycle, are measured in US dollars to facilitate communication between engineers and non-experts.
Characteristics of Basic Software
Basic software comprises programs written to support other programs, processing largely undetermined data.
Main Focus of ISO 9001
Quality Management Systems – Requirements.
Role of Executive Management in Six Sigma
Executive Management is responsible for implementing Six Sigma. Their commitment is crucial for successful implementation as they lead, encourage, and oversee program initiatives.
ISO/IEC 9126 Standard
ISO/IEC 9126 defines the set of characteristics for evaluating software quality.
Main Features of ISO/IEC 9126
Functionality, reliability, usability, efficiency, maintainability, portability.
Six Sigma as a Methodology
Six Sigma is a disciplined methodology for improving quality. As an ingredient of Total Quality Management (TQM), many companies find that incorporating Six Sigma provides almost all elements of TQM.
CMMI Maturity Levels
Initial, Managed, Defined, Quantitatively Managed, Optimized.
Characteristics of CMMI Level 1
At CMMI Level 1, processes are chaotic, organizations lack a stable software development environment, standards are nonexistent or not followed, and projects face challenges with compliance costs, deadlines, and requirements.
Definition of Sprint
A Sprint is a time-boxed period for completing a set of activities.
Definition of Product Backlog
The Product Backlog lists all desired features for a product.
Definition of Product Owner
The Product Owner defines the items in the Product Backlog.
Definition of Sprint Backlog
The Sprint Backlog lists tasks the Scrum Team commits to completing in a Sprint.
Main Elements of RUP
Roles, activities, artifacts, workflow, and disciplines.
Disciplines of the RUP Process
Business modeling, requirements analysis and design, implementation, testing, and distribution.
Support Disciplines in RUP
Configuration and change management, project management, and environment.
Stages of the Project Life Cycle in RUP
Inception, elaboration, construction, and transition.
Functioning of the ISO 9000:2000 Quality Management System
ISO 9000 standards focus on a company’s quality management system, not product specifications. Certification doesn’t guarantee higher quality but ensures consistent characteristics and quality standards for all products manufactured using the certified process. The standard emphasizes understanding and meeting requirements, considering processes in terms of value, obtaining results of process performance and effectiveness, and continually improving processes based on objective measurement.
ISO/IEC Standard for Software Processes
ISO/IEC 9126 establishes a common framework for software processes, used as a reference for procuring software products and services and describing best practices in software engineering and management.
Disciplines of RUP
Business Modeling, Requirement, Analysis and Design, Implementation, Testing, Deployment, Configuration Management and Change Management, and Environment Project.
Capability Levels of ISO/IEC 15504
Incomplete, executed, managed, established, predictable, and optimized.