Introduction to Software Quality Management

Free online course on software quality management, ISO 9000 certification, as well as software reliability management.

This free online course on Introduction to Software Quality Management discusses the evolution of software quality management. You will learn about the ISO 9000 structure and certification as well as the ISO 9000 requirements. You will be introduced to the concept of software reliability management, the process of evaluating the reliability of a software and Personal Software Process. Start this course today and learn more about software quality.

In This Free Course, You Will Learn How To

  • Discuss the evolution of quality control in software development
  • Discuss the purpose of software quality control
  • Outline some of the requirements for ISO 9001
  • Identify shortcomings of ISO 9001 certification
  • Define Personal Software Process
  • Describe the objective of statistical testing
  • Identify the steps involved in statistical testing
  • Identify the advantages and disadvantages of statistical testing

Course Modules

MODULE 01

Software Quality Management

In this module, you will be introduced to software quality management. You will learn about the evolution of software quality management, and the ISO 9000 structure and certification. You will also learn about the ISO 9000 requirements as well as SEI Capacity Maturity Model. You will also be introduced to the Key Process Areas (KPAs) in CMM.

  • Software Quality Management – Learning Outcomes
  • Software Quality Management
  • ISO 9000 Structure and Certification
  • ISO 9001 Requirements
  • SEI Capacity Maturity Model
  • Key Process Areas (KPAs) in CMM
  • Software Quality Management – Lesson Summary

MODULE 02

Software Reliability Measurement

In this module, you will be introduced to software reliability management. You will learn about the Personal Software Process (PSP) and its advantages to a user. You will also learn about the process of evaluating the reliability of the software. You will also be introduced to the difference between hardware and software failure curves as well as learn about software reliability estimation techniques and software statistical testing.

  • Software Reliability Measurement – Learning Outcomes
  • Personal Software Process (PSP)
  • Software Reliability Measurement
  • Hardware and Software Failure Curve
  • Software Reliability Estimation Technique
  • Software Statistical Testing
  • Software Reliability Measurement – Lesson Summary

MODULE 03

Course assessment

Introduction to Software Quality Management – Course Assessment

Course Description

This free online course on Introduction to Software Quality Management will begin by introducing you to the evolution of software quality. You will learn about quality assurance, total quality management and process improvement for product quality, reducing costs, as well as accelerating schedules. You will gain an understanding of the ISO 9000 structure and the reasons for acquiring an ISO certification. You will also learn about ISO 9001 requirements.

This course will then introduce you to the Software Engineering Institute Capacity Maturity Model (SEI CMM). You will learn about how the SEI CMM can be used in the capacity evaluation and software process assessment. You will study the key process areas in CMM as well as learn about the Personal Software Process which is a scaled-down version of the industrial software process and is used by individuals. You will also learn about Six Sigma and its aim to eliminate defects.

Lastly, this course will introduce you to software reliability measurement. You will learn about the major problems in software reliability measurements as well as how software reliability keeps changing throughout the life of the product. Furthermore, you will learn about hardware and software failure curves and the differences between them. You will also learn about software reliability estimation technique, Jelinski and Moranda model, as well as Littlewood and Verrall’s model. Start this course today and improve your knowledge of software quality management.

Introduction to Software Testing

About this Course

After completing this course, you will have an understanding of the fundamental principles and processes of software testing. You will have actively created test cases and run them using an automated testing tool. You will being writing and recognizing good test cases, including input data and expected outcomes.

After completing this course, you will be able to… – Describe the difference between verification and validation. – Explain the goal of testing. – Use appropriate test terminology in communication; specifically: test fixture, logical test case, concrete test case, test script, test oracle, and fault. – Describe the motivations for white and black box testing. – Compare and contrast test-first and test-last development techniques. – Measure test adequacy using statement and branch coverage. – Reason about the causes and acceptability of and poor coverage – Assess the fault-finding effectiveness of a functional test suite using mutation testing. – Critique black-box and white-box testing, describing the benefits and use of each within the greater development effort. – Distinguish among the expected-value (true), heuristic, consistency (as used in A/B regression), and probability test oracles and select the one best-suited to the testing objective. – Craft unit and integration test cases to detect defects within code and automate these tests using JUnit. To achieve this, students will employ test doubles to support their tests, including stubs (for state verification) and mocks (for behavioral verification) (https://martinfowler.com/articles/mocksArentStubs.html). This course is primarily aimed at those learners interested in any of the following roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. We expect that you should have an understanding of the Java programming language (or any similar object-oriented language and the ability to pick up Java syntax quickly) and some knowledge of the Software Development Lifecycle.

WHAT YOU WILL LEARN

  • You will gain an understanding of the theory of testing.
  • You will practice writing tests for a variety of quality intent, including code coverage, defect finding, and statistical testing.
  • You will develop test plans to guide the testing stage of the software development lifecycle.
  • You will create defect reports to provide transparency and understanding to supervisors, colleagues, and users.

SKILLS YOU WILL GAIN

  • Writing Test Plans
  • Writing Defect Reports
  • Understanding of Testing Theory
  • Writing Tests
  • Testing Vocabulary

Syllabus – What you will learn from this course

WEEK1

7 hours to complete

Introduction

In this module, you will be introduced to the basics of testing, especially the variety of terminology to be used through the rest of the course.

6 videos (Total 66 min), 1 reading, 6 quizzesSee All

WEEK2

5 hours to complete

Testing Foundations

In this module, you will investigate a variety of testing principles, models of testing, and types of systematic testing strategies.

8 videos (Total 57 min)See All

WEEK3

8 hours to complete

Testing in the Software Development Lifecycle

In this module, you will learn about the social aspects of testing. We will learn about test plans, testing status reports, and defect reporting.

10 videos (Total 49 min)See All

WEEK4

10 hours to complete

Writing Good Unit Tests

In this module, you will learn about writing unit tests and gain practice in writing these tests through three coding assignments, each with additional testing sophistication.

  • Test Doubles: Introduction11m
  • Test Doubles: Input18m
  • Test Doubles: Output14m
  • Assessing Adequacy and Code Coverage Analysis with JaCoCo9m
  • Flakey Tests and How to Avoid Them22m

3 practice exercises

Test Doubles: IntroductionTest Doubles: InputTest Doubles: Output