Open Source Software (OSS) Quality Assurance – A Milvus Case Study

Quality assurance (QA) is a systematic process of determining whether a product or service meets specific requirements. A QA system is an indispensable part of the R&D process because, as its name suggests, it ensures the quality of the product.

This post introduces the QA framework adopted in developing the Milvus vector database, providing a guideline for contributing developers and users to participate in the process. It will also cover the major test modules in Milvus and methods and tools that can be leveraged to improve the efficiency of QA testings.

What Is Test Monitoring and Test Control?

Introduction

In the field of app testing, QA managers and other senior testing professionals must implement different test management approaches such as test monitoring and control to ensure that the test suite runs smoothly. These essential management strategies are required by the managers to track and align the test progress for optimal accuracy and efficiency.

What Is Test Monitoring?

Test monitoring is a test execution process in which all testing activities and efforts are evaluated to:

Component Tests for Spring Cloud Microservices

Introduction

The shift towards microservices has a direct impact on the testing strategies applied and has introduced a number of complexities that need to be addressed. In fact, microservices require additional levels of testing since we have to deal with multiple independently deployable components.

An excellent explanation of these concepts and the various levels of microservices testing is given by Martin Fowler in his Testing Strategies in a Microservice Architecture presentation. Let's have a look at the revised "test pyramid" from this presentation:

QA To Support Software Development Life Cycle: Best Practices To Follow

Hardly anyone would argue that speed and innovation are pillars of efficient product delivery contributing to success on the market today. With the ability to smoothly introduce tech novelties and release top-tier software faster, companies embark on the path to recovering from the COVID-19 pandemic and its aftermath and adjusting to the "next normal." 

To do it confidently and guarantee that software meets planned business requirements, open-minded companies embed QA into a software development life cycle (SDLC). 

How to Mock a Web Server in Your Java Applications

When you need to test an application that consumes a web API, you basically have two options:

  1. Use Testcontainers to start a container that will run the web API which your application will consume.
  2. Mock a Web Server to emulate the web API which your application will consume.

Many times, starting a container for that is not an option. For instance: you might not have a container environment available, or you just don’t have the artifacts to create that container (it might be a 3rd part API), or it is hard to emulate the needed behavior with containers.

Run RSpec on GitHub Actions in the Shortest Time Using Parallel Jobs

GitHub introduced their own CI server solution called GitHub Actions. You will learn how to set up your Ruby on Rails application on GitHub Actions with the YAML config file. To run your RSpec test suite faster, you will configure parallel jobs with matrix strategy on GitHub Actions.

Automate Your Workflow on GitHub Actions

GitHub Actions makes it easy to automate all your software workflows with world-class CI/CD. The building, testing, and deploying your code right from GitHub became available with simple YAML configuration.

Role of Test Automation in DevOps

Here's where QA fits into new DevOps processes.

The purpose of DevOps is to bring development and operations together. It allows them to build, test and deploy applications while reducing time-to-market considerably. Increasing the convenience and popularity of DevOps have sparked the conversation that Quality Assurance has become an outdated concept. However, it is not true.

QA was an integral part of the waterfall development process but it still holds a relevant position in DevOps. The process of DevOps never allows a lot of time for comprehensive test creation between coding and release. This also means that teams are continuously on their toes to specify, build, test, and deploy software effectively and rapidly.

Big Data Testing Perspectives for Emerging Businesses

In this era of technological transformation, Big Data and analytics possess tremendous significance for enterprises, as they have become game-changers in most, if not all types of modern industries in the last few years. As Big Data continues to influence our day-to-day lives, finding real value in its use is imperative.

To address challenges like cost reduction, customer experience, and creating more efficient processes, enterprises must make effective implementation of Big Data in their projects. A report by BCG states that about 58% of CMOs believe that SEO, E-Mail, and mobile communications are the areas where Big Data systems are having the largest impact on their organizations.

Implementing DevOps With Containerization

Traditionally, application development, testing, deployment, and support (monitoring) were all treated as separate entities, and multiple departments were involved in the completion of the software lifecycle. This resulted in a fragmented approach to the process, people, and tools, later impacting the final product performance, features, cost, schedules, and quality.

Business Drivers

Acceptance of cloud platform as the de facto service line brought many changes of procuring and managing infrastructure. As a result, open source tools have earned significant acceptance for each segment of IT function across the world, thereby increasing their popularity and versatility day-by-day. The competitive shift seems visible as there are companies like Oracle and SAP that are also offering Cloud along with Amazon, Google, Salesforce, and Microsoft. There are multiple other cloud companies as well apart from the aforementioned vendors. With cloud acceptance, an addition of infrastructure/servers is just a click away which, along with credible open source tools have paved way for Dev-Ops. With open source tools, build, QA, and pre-production machines can be added as exact replicas and configurations as needed, in a fraction of the time.

Automation Testing Our Blockchain Significantly Improved Dev Speed and Quality (Part 2)

Today we discuss the importance of software testing in blockchain, outline benefits of automation testing and explain how to get involved in the Quality Assurance of our open source project. This is part two of the two part blog post.

Many blockchain projects don't survive long after hitting the initial production state. For most, a lack of proper software testing is one of the main reasons for their demise. It's estimated that over half a billion dollars worth of cryptocurrency has been lost due to bad code in the last year alone. You probably heard about The DAO's code loophole, which allowed attackers to drain out 3.6 million ETH (worth $70 million at the time) from the Ethereum-based smart contract. Another notorious case was the Parity bug which resulted in over $150 million permanently frozen. Even Bitcoin itself is not immune to hacks. Late last year, a bug discovered in the code allowed malicious individuals to artificially inflate Bitcoin's supply via double input. If the bug wasn't quickly identified and addressed, it could have had catastrophic effects on the network. This is just the tip of the iceberg — there are plenty of smaller incidents caused by inexperienced or inattentive developers that don't make the headlines.

What does this tell us? In development, things can go wrong fast and the outcome can be ugly. This is why software testing is so important for any project utilizing blockchain technology, such as blockchain platforms, blockchain applications or blockchain-based services.

Automation Testing Blockchain For Improved Speed and Quality, Part 1


Today we will discuss the importance of software testing in blockchain, outline benefits of automation testing and explain how to get involved in the Quality Assurance of our open source project. This is part one of the two-part blog post.


Many blockchain projects don't survive long after hitting the initial production state. For most, the lack of proper software testing is one of the main reasons for their demise. It's estimated that over half a billion dollars worth of cryptocurrency has been lost due to bad code in the last year alone. You probably heard about The DAO's code loophole, which allowed attackers to drain out 3.6 million ETH (worth $70 million at the time) from the Ethereum-based smart contract. Another notorious case was the Parity bug which resulted in over $150 million permanently frozen. Even Bitcoin itself is not immune to hacks. Late last year, a bug discovered in the code allowed malicious individuals to artificially inflate Bitcoin's supply via double input. If the bug wasn't quickly identified and addressed, it could have had catastrophic effects on the network. This is just the tip of the iceberg — there are plenty of smaller incidents caused by inexperienced or inattentive developers that don't make the headlines.