Quality Assurance (QA) and Quality Engineering (QE)
In an increasingly digital world, the importance of software quality cannot be overstated. In quality management, quality assurance and quality engineering are related but distinct concepts.
Quality Assurance
Purpose: Quality Assurance is the systematic process of ensuring that a product or service meets specified standards and customer expectations.
Focus: Ensure software reliability, functionality, and security before release. Establish processes, standards, and guidelines to ensure quality.
Practice: QA involves testing and validation processes to find and rectify defects (often occurs post-development). It employs methods such as audits, reviews, and compliance with industry standards like ISO 9001.
Quality Engineering
Purpose: Quality Engineering is a proactive approach aimed at designing and building quality into products and services from the outset.
Focus: Utilize data analysis and statistical methods to identify potential issues and optimize processes. Ensures quality considerations are present at every stage of development.
Practice: QE is integrated into the entire product development lifecycle. It uses data-driven insights for continuous improvement and tools like Six Sigma and Lean methodologies to streamline processes and enhance product quality.
Some argue that QA is traditional, and QE is more modern—that is not true. They play complementary roles. Combining QA's validation with QE's proactive approach is the best way to ensure high-quality outcomes.
What’s trending in QA and QE
It has been less than 60 years since the first computer in the world was created. But both hardware and software have changed drastically, along with how we build and test them.
5G, Metaverse, AI and machine learning, cloud computing, and IoT bring so many new types of exciting and challenging applications. The criteria of computer systems’ quality are changing too. For example, in the Metaverse, you need to evaluate the degree of immersiveness, which may be difficult.
On the other hand, the modern technologies are also changing QA and QE. Let’s look at the major trends.
Shift-left Testing
Shift-left testing involves moving testing activities earlier in the software development lifecycle, sometimes even before coding begins. This approach helps identify and fix issues at an earlier stage, reducing overall testing time and costs while improving product quality.
The best practice is to not only focus on functional testing, but also performance, security, and compliance testing.
Shift-right Testing
Shift-right testing emphasizes monitoring and feedback from the production environment. User experience monitoring tools, such as APM (Application Performance Monitoring) and RUM (Real User Monitoring), provide valuable insights into how users interact with applications in real-time. This data helps QA teams find issues that may not be apparent during pre-release testing.
Automation
The DevOps and Continuous Integration/Continuous Delivery (CI/CD) pipelines aim to ensure that every code change is thoroughly tested through continuous automated testing. Nowadays automated tests are getting smarter with AI-powered vision, or can adapt to changes in the application's UI, making tests more resilient and reducing maintenance efforts. RPA lets you test a whole process.
Apply AI and Machine Learning
QA and QE found AI and machine learning a great help. Generative AI and large language model (LLM) bring new ways of working. Here are some examples:
- Generate test cases for features.
- Create a custom graph or report based on your natural language description.
- Maximize coverage by intelligently selecting the test cases.
- Perform autonomous testing.
- Perform root cause analysis of failures or waste.
- Use predictive analysis to identify code where defects are likely to happen.
Solving QA/QE challenges in Agile and DevOps
Agile and DevOps have been proven to increase software quality. Agile methodologies tend to incorporate quality engineering more seamlessly by embedding testing activities throughout each iteration of the development lifecycle. They prioritize customer feedback and requirements, which can help identify and address quality issues early in the process. The CI/CD and continuous improvement practices in DevOps form the feedback loops needed for improving software quality.
However, they may pose unique challenges to quality as well, such as:
Insufficient testing
DevOps automated pipelines may give the impression that every test case is covered. However, some of the corner issues won’t be detected by automation scripts and must still rely on manual testing.
That’s why you need to implement robust continuous testing practices, including a mix of automated and manual testing. Combine testing data from all angles to gain a holistic view of the health of your application under development.
Scalability challenges
Agile and DevOps practices that work well for small teams may not work when scaling across complex projects or the whole enterprise.
When you have many agile and non-agile teams working together to build a complex application, be sure to use an enterprise-level management tool that can give you visibility of the overall quality, and align different teams to the same goal. You need a tool that can govern the complicated topology of DevOps pipelines and gives insight on flow metrics and value streams.
Toolchain glitches
Complex toolchains not well-maintained cause failures that are hard to diagnose. The cost of failures offsets the benefits of DevOps.
That’s why DevOps platforms are getting popular, as they provide integrated toolchains that are robust and ready to use. An end-to-end DevOps platform that covers from strategy, to conception, to operation will best save your effort in toolchain maintenance.
Compliance and security concerns
Short iterations in Agile and rapid deployments in DevOps don’t allow enough time for sufficient security and compliance testing. This puts both you and your customers at risk. Practice DevSecOps to incorporate security into DevOps workflows.
Regulated products or services cannot be automatically released into production without passing checks and approvals. Use a solution that can define release processes with quality gates to control it.
Cost and time predictability
Quality is always associated with cost and time. Cloud environments make the application team’s life much better, but without visibility, time and cost may go out of control.
Use the following ways to cope with it:
- Analyze data to precisely predict completion time.
- Align tasks with business value and strategy.
- Detect anomalies and waste to continuously improve the process.
- Implement FinOps to manage cloud cost.
Learn more!
Interested in modern QA and QE practices? OpenText DevOps Cloud portfolio enables you to implement them. Contact us to discuss your needs.
Visit our website to learn more about OpenText software quality management solutions:
Join us at OpenText World 2023 Las Vegas to interact with experts and peers in person on the latest news in quality management topic. I highly recommend the following sessions:
- DOPS03 Quality is the new black: Improve agility, traceability, and predictability in ALM
- DOPS02 Turbocharge Your Delivery: Unleashing Value with OpenText ValueEdge!
- TT06_DOPS Increase software quality in a value-based world with AI