The proliferation of technologies and the vast availability of information change the way services and goods are created and delivered. These changes are making it possible to improve the quality of products at every stage of the process, progressively eliminating systems that perceived quality assurance as something that should be done at the end of the production cycle.
In the manufacturing space in general, and in software development in particular, teams are moving away from quality assurance (QA) in the direction of quality engineering (QE). But what is the difference between these two concepts, and what are the driving trends towards quality engineering over quality assurance?
We took some time to answer these questions in this article. We will also look at some quality engineering methodologies and tools, and some certifications if you want a career in the field.
What is Quality Engineering?
Quality engineering is a relatively new method of ensuring quality products by applying stringent quality checks at each phase of product development. This model works from the assumption that everyone involved in developing the product is responsible for the quality of the product at the stage where they are involved. If this perspective is applied across all the stages of product development, the assumption is that the overall product will be of high quality because issues can be attended to in real-time.
Under the QE model, quality maintenance does not end when the product is complete, as it continues with the cycle and uses any information obtained at each stage of the development process to improve the next round.
Quality engineering focuses not only on the quality of the product; it also emphasizes analysis the processes involved in the product development, to reduce waste. Waste is reduced by minimizing the potential costs resulting from defects. The idea is that waiting for the defects to be identified last, just before the product is released, is expensive.
QE in Software Development
In software development, QE is closely linked to the test-driven development (TDD) methodology. At the core of TDD lies the assumption that, before developers start writing application code, they write the test that the code should pass. They will then execute the test, which will fail because the application code has not yet been written. The test will be re-run after the code is written to see if the code passes the test.
QE, in the context of software development, is also linked to DevOps and agile processes. DevOps brings together software development and IT operations, removing “silos” (a situation where departments do not share information and goals) and making development and security teams work together smoothly. Security becomes embedded in each stage of the development process. Agile processes denote the ability to move with ease and speed through attending to issues, as they arise, in the development process.
Software development QE has several goals:
Identifying issues as they occur, and solving them through corrective actions.
Oversight and control of processes.
Determining the metrics and standards.
Collecting and analyzing data.
Developing suitable tests.
Following up to make sure that issues are solved.
The Difference between Quality Engineering and Quality Assurance
In the traditional model of ensuring quality, a team of quality assurance professionals comes in after the product has been finished, to detect any faults with the product before it goes to the users. This method is generally known as quality assurance. If there are any defects in the product, the product is sent back to the team responsible for the offending part.
An analysis of the quality assurance model shows that the method has several inefficiencies. For example, sometimes these quality assurance teams may identify faults that require the product to be redesigned. To do this, more time and resources are needed. This may also result in delays in getting the product to the end-user.
To solve the challenges inherent in QA, QE is the new method that has been introduced. The idea is that if the development teams know the requirements that the end product should meet, they will be able to consciously test the product as they develop it so that there are no nasty surprises at the end.
Even though QE and QA both have the same goal of ensuring quality products, there are some differences between the two:
QA seeks to maintain the quality of the finished product, while QE puts in place the system that the product should meet at different stages.
QE requires all teams involved in the development of the product to pay attention to quality, while QA generally leaves this to a quality assurance team that comes in when the product is complete.
QE sees quality as both a top-down and bottom-up effort, while QA sees quality as a top-down effort.
QE focuses on having the right testing tools for each development stage, while QE takes a “one-size-fits-all” approach.
QE seeks to keep things agile and flexible, while QA looks at the bigger picture.
What are the Driving Trends towards QE over QA?
The move towards QE over QA can be defined as a cultural shift within the development teams, but what are the trends driving this shift?
The multinational professional services company, Accenture Plc., through a report entitled Quality Engineering in the New, provides an idea of the trends driving the shift towards QE over QA. According to Accenture, “traditional approaches to software testing have been significantly disrupted with the advent of DevOps and intelligent automation, as well as the proliferation of digital applications.”
The Accenture report continues to note that “testing has evolved through quality engineering that begins upfront as part of the initial application planning and establishes a continuous feedback loop to anticipate and act on the unknown.” The reports suggest that a time for us to unlearn most of what we know has arrived.
For Nitin Mehra, an Engineering Director at the American job search engine, Indeed, the introduction of concepts like agile development “flipped the model [quality assurance] on its head in terms of software development timelines and its delivery.” Mehra notes that this has “forced teams to adapt to a process which encouraged smaller multiple releases as opposed to longer fewer ones,” significantly impacting the way in which testing is being done.
From the views above, it becomes clear that the introduction of technologies such as artificial intelligence (the simulation of human intelligence in machines) and automation (systems that operate with minimal intervention from humans) are driving the shift from QA towards QE. Artificial intelligence (AI) and automation allow for collecting historical information that can assist teams in identifying problems faster, or before they occur, and correcting them.
Quality Engineering Methodologies and Tools
As is the case with every new system, implementing QE can be a daunting task that will require time, resources, and commitment; thus, it is vital to have the right tool for a specific job. We identified some standard methodologies and tools that can assist development teams in implementing QE:
Quality Management System (QMS)
Whether you are looking at QE or QA, the product quality forms a vital part of the equation. This is why one of the leading tools that should be in the kit of any organization that wants to manage quality is a quality management system (QMS). The QMS ensures that you have formalized the documentation and processes for achieving quality. It will also indicate your quality objectives, and who is responsible for meeting them.
One of the most popular standards used in the management of quality is the ISO 9000 family. For example, the ISO 9001 is described by the International Organization for Standardization (ISO) as setting “out the criteria for a quality management system and is the only standard in the family that can be certified.” The organization says that this certification can be used by organizations of any size in any field.
Advanced Product Quality Planning
Advanced Product Quality Planning (APQP) is a tool that enhances communication between supply chain management and customers to facilitate and manage changes in existing products and processes. Through this communication, developers gather information about customer requirements and how the products can meet these requirements.
Regarding QE, the APQP can assist developers in having an idea of the parts of their products that are working well, and which ones need to be changed or improved. It could also be used to save costs by removing the parts that users are not interested in.
Statistical Process Control
Statistical Process Control (SPC) provides development teams with an industry-standard methodology to control and measure quality in the development or manufacturing process. The method takes advantage of quality data obtained from the process of product measurement.
The SPC determines what are called control limits and specification limits. When the process moves according to design, the data remains within the control limits, while data falling within the specification limits shows that the client needs are being met. When the data falls outside these limits, then something needs to be fixed.
Problem Solving Tools
For teams following the QE model, quality tools play a fundamental role in solving problems identified at each development stage. Kaoru Ishikawa, the late Japanese organizational theorist and Professor at the Faculty of Engineering at The University of Tokyo, introduced the Classic Seven Quality tools in his book Guide to Quality Control, published in 1991. Today, many of the sophisticated tools available still follow Ishikawa’s basic model.
Cause-and-effect diagram: Attempts to identify the factors responsible for a given result. Every reason for imperfection is considered to be a source of variation. Causes are categorized to identify and classify these sources of variation.
Check sheet: Is a document where data is stored in real-time, usually where the data is collected.
Control chart: Works mostly with the statistic process control chart, also called the Shewhart chart. It generally monitors processes to ensure that they are under control, and there is no need to make any changes. Collected data can also be used to forecast how the process will perform in the future.
Histogram: Helps to place data into a series of intervals to categorize the data, giving a general sense of how the data is distributed. In problem-solving, this could assist in determining areas that need more attention.
Pareto chart: Contains both a line graph and bars. It is mostly used to identify the most vital factors from a given set. It is usually used for quality control to indicate the leading causes of faults, customer complaints or recommendations, or other such factors.
Scatter plot: Is used to compare two variables. It generally shows how variables are linked, and how they can influence each other.
Stratified sampling: Is a sampling method that can be used to place different population segments into groups before studying them. In problem-solving, this can ensure that all the components related to the problem are fully considered.
Quality Engineering Certifications
If QE sounds like a career that you may enjoy, you need to know a few things about QE certifications. According to Study.com, a website that provides information about educational programs, “A certified quality engineer is available to experienced engineers who are looking to advance in their career.” The website adds, “Other than experience, the person seeking certification must also have a superb understanding of quality systems, mathematics, and the motivation to learn the finer details of quality engineering.”
Quality engineer certification is granted based on educational qualifications and job experience. The Certified Quality Engineer Body of Knowledge is responsible for determining the specific areas of expertise that you will need to prove before you can become certified. The American Society for Quality (ASQ) administers the quality engineer certification examinations twice a year.