|
|
|
Software Quality Techniques is a 2-day subset of our Software Quality Engineering course and is designed to provide an overview of Software Quality Engineering techniques and practices. This course starts with an overview of software quality engineering basics, including the benefits of software quality, a discussion of defect prevention vs. detection techniques, and an overview of major software quality related standards and models. Course attendees will learn how to document their quality management systems and participate in quality system audits. This course will review the strengths and weakness of popular life cycle models and review major activities in the software development life cycle. This course discusses basic software project management principles and techniques as they relate to software project planning, monitoring and control. Attendees will learn how to select, define and implement software metrics to understand, evaluate, control and predict their software process, product and services. This course covers the basics of software verification and validation planning with an emphasis on software peer reviews and software testing. The course ends with an overview of software configuration management, including configuration identification, control, status accounting and auditing. Method of Instruction: This course is taught through lecture and interactive discussion. Actual examples from the software industry are utilized to make the information relevant. The emphasis is on techniques that allow the attendees to transition the skills learned in this course to their own work environments. Target Audience: Software developers, testers, project managers, functional managers, requirements analyst, and other software stakeholders who will be involved in planning and managing software projects, developing software and/or assuring its quality. Course Objectives: Upon successful completion of this course attendees will be able to:
Course Materials: Student notebooks are designed to provide reference materials that can be utilized by the attendees long after the completion of the course. These materials include:
Detailed Outlines:I: Basics of Software Quality Engineering1. Benefits of Software Qualitya. Benefits of Software Quality· Quality Defined · Benefits of Software Quality · Increasing Costs of Fixing Defects b. Prevention vs. Detection· Mistakes, Faults & Failures · Testing, Debugging & Root Cause Analysis · Prevention vs. Detection · Defect Detection Techniques · Defect Prevention Techniques 2. Standards & Modelsa. ISO 9001:2000 b. IEEE Software Engineering Standards c. SEI SW-CMM® vs. SEI CMMISM Staged II: Software Quality Management1. Software Quality Management System (QMS) Documentationa. Software QMS Documentation Hierarchy b. Processes c. ETVX Process Definition d. Process Definition Critical Attributes e. Process Documentation – Example g. Process Architecture h. Process Tailoring i. Software Quality Plan 2. Quality Improvement Processesa. Process Improvementb. IDEALSM Model for Process Improvementc. Process Owners d. Barriers to Implementation 3. Auditsa. Audit Program· Audit Defined · Purpose of an Audit Program · Participant Roles b. Audit Preparation & Execution· Types of Audits · Audit Steps · Audit Initiation · Audit Entry Criteria · Audit Inputs · Audit Plan · Prepare for the Audit · Audit Execution c. Audit Reporting & Follow Up· Audit Report · Corrective Action · Corrective Action Plan · Evaluating the Corrective Action Plan · Verification Follow-up III: Software Engineering Processes1. Life Cycle Methodsa. Waterfall Model b. V Model c. Spiral Model d. Incremental Model e. Evolutionary Development f. Choosing a Model 2. Life Cycle Activitiesa. Concept Activities· Purpose of Concept Activities · Concept Documentation b. Requirements Activities· Purpose of Requirements Activities · System Requirements · System Architectural Design · System vs. Software Requirements · Software Requirements · Requirements Elicitation · Requirements Analysis · Requirements Specification · Requirements Verification · Requirements Checklist c. Design Activities· Purpose of Design Activities · Software Architectural Design d. Implementation Activities· Purpose of Implementation Activities · Code Verification e. Test Activities· Purpose of Test Activities f. Operations Activities· Purpose of Replication, Delivery & Installation · Products of Replication, Delivery & Installation g. Maintenance & Retirement· Purpose of Maintenance · Retirement 3. Requirements Managementa. Purpose of Requirements Management b. Requirements Management Practices c. Requirements Churn d. Traceability IV: Program & Project Management1. Planninga. Project Management Basics· Project Defined · Purpose of Project Management · Software Project Management Process · Cost/Schedule/Product · Project Success b. Project Planning· Goals of Software Project Planning · Project Objectives · Software Project Management Plan c. Project Estimation & Scheduling· Work Breakdown Structure · Types of Work Breakdown Structures · Include Everything · Estimation · Scheduling 2. Monitoring & Controla. Monitoring Tools & Metrics· Gantt Charts · Staff & Resource Tracking · Productivity Tracking b. Monitoring Reviews· Project Team Status Reviews · Senior Management Reviews · Phase Transition & Milestone Reviews · Post Project Reviews c. Project Control· Corrective Action V: Software Metrics, Measurement & Analytical Methods1. Metrics & Measurement Theorya. Measurement Theory· Software Metrics Defined · Measurement Defined · Entities & Attributes · Mapping System b. Why Measure· Roles of Measurement 2. 12 Steps to Useful Software Metricsa. ISO/IEC 15939b. The 12 Step Processc. Selecting Metrics· Two Schools of Thought · Step 1 – Identify Metrics Customer · Goal/Question/Metrics Paradigm · Step 2 – Target Goals · Step 3 - Ask Questions · Drilling Down to Lower-Level Goals · Step 4 - Select Metrics · Selecting Metrics for Implementation · Evaluate Existing Metrics · Metrics Requirement Statement d. Designing Metrics· Why Standardization is Important · Step 5 – Standardize Definitions · Standardize Definitions - Example · Step 6 – Choose a Model · Simplification · Selecting a Model · Tailoring a Model · Step 7 – Establish Counting Criteria · Types of Counting Criteria · Counting Criteria - Examples · Step 8 – Defining Decision Criteria · Decision Criteria for Control Type Metrics · Decision Criteria for Evaluate Type Metrics · Decision Criteria for Understand & Predict Type Metrics · Confidence Level · Decision Criteria - Example · Step 9 – Design Reporting Mechanisms · Report Timing · Report Delivery · Design Reporting Mechanisms - Example · Step 10 – Determine Additional Qualifiers e. Collecting Data· Step 11 – Collect Data · Who Collects the Data? · Data Collection Training · Data Collection Objectives · How to Collect Data f. Considering Human Factors· Step 12 - Consider Human Factors · Human Factor – What Not to Do · Human Factor – What to Do 3. Process & Product Measurementa. Commonly Used Metrics· Structural Complexity · Size – Lines of Code · Size – Function Points · Size – Other Size Metrics · Defect Density · Incident Report Arrival Rate · Incident Report Closure Metrics · System Performance · Reliability · Customer Satisfaction b. Defect Detection Effectiveness Measures· Phase Containment Effectiveness · Defect Detection Efficiency VI: Software Verification & Validation1. Verification & Validation Planninga. Verification & Validation Defined b. V&V Throughout the Life Cycle c. V&V Plan 2. Peer Reviewsa. Types of Peer Reviews· What Can You Peer Review? · Benefits of Peer Reviews · Types of Peer Reviews b. Peer Review Processes· Desk Checking Process · Walkthrough & Inspection Roles · Walkthrough Process · Inspection Process 3. Testinga. Testing Defined· Testing Principles · Levels of Testing b. Test Activities & Documentation· Testing Activities – Peer Reviews · Testing Activities – Test Planning & Design · Testing Activities – Test Execution · Test Documentation c. Structural (White Box) Testingd. Integration Testing· Top Down Integration Strategy · Bottom Up Integration Strategy e. Functional (Black Box) Testing· Testing Functions · Testing Use Case Scenarios · State Testing · Equivalence Class Partitioning · Boundary Value Testing · Error Guessing · Operational Profile Testing · Threads · Testing Non-Functional Requirements · Testing Non-Functional Requirements – Load, Volume & Stress · Testing Non-Functional Requirements – Localization Testing f. Regression TestingVII: Software Configuration Management1. Configuration Infrastructurea. Configuration Management· Configuration Management Defined · Software Configuration Management Goals & Practices · Software Configuration Management Responsibilities · Software Configuration Management Activities · Software Configuration Management Plans b. Library Processes· Library Functions · SCM Library Types 2. Configuration Identificationa. Configuration Items· Configuration Identification Activities · What Are Configuration Items? · Software System Decomposition b. Baselines· Baselines Defined · Types of Baselines · Acquisition · Version, Releases & Revisions c. Configuration Identification Methods· Unique Identifiers · Build Identification Scheme – Example · Document Identification Scheme – Example 3. Configuration Controla. Configuration Control· Sources of Change · Configuration Control Procedures · Change Control Process – Example b. Configuration Control Boards· CCB Processes · Impact Analysis c. Version Control4. Configuration Status Accountinga. Status Reporting b. Change Requests 5. Configuration Auditsa. Functional Configuration Audits b. Physical Configuration Audits Other Software Quality Engineering Courses:Software Quality Engineering: This 5-day course designed to provide a comprehensive knowledge base and practical skills for anyone interested in implementing or improving Software Quality Engineering techniques and practices in their organization. Building Software Quality Skills: This 3-day course is a subset of the Software Quality Engineering design to provide a fundamental knowledge base and practical skills for anyone interested in implementing or improving Software Quality Engineering techniques and practices in their organization. Customized Courses: Our Software Quality Engineering courses are modularized so that they can be easily customized for in-house course offerings that focus on the specific content and topics needed to meet your organization’s exact training requirements. The Westfall Team can also customize this course or any of our other standard courses or develop unique software engineering, quality and project management courses to meet your exact in-house training needs and specifications. For example, class exercises can be tailored to include actual examples from your organization in order to make the training more relevant to your environment. For more information about this course or other courses offered by The Westfall Team Send an email to: lwestfall@westfallteam.com Or call: 972-867-1172
|