Featured in Architecture & Design

Monal Daxini presents a blueprint for streaming data architectures and a review of desirable features of a streaming engine. He also talks about streaming application patterns and anti-patterns, and use cases and concrete examples using Apache Flink.

Featured in AI, ML & Data Engineering

Joy Gao talks about how database streaming is essential to WePay's infrastructure and the many functions that database streaming serves. She provides information on how the database streaming infrastructure was created & managed so that others can leverage their work to develop their own database streaming solutions. She goes over challenges faced with streaming peer-to-peer distributed databases.

Articles

“Tap compare” is a testing technique that allows you to test the behavior and performance of the new service by comparing its results against the old service. This article provides an example of using a new open source tool, Diferencia, and mirroring production traffic across both old and new services to compare the difference in result.

An in-depth look at the criteria & requirements for Functional Test Automation in the agile world, and the capabilities you should build in your custom framework, or should exist the tools you choose. Anand Bagmar explores aspects like readability, reuse, debugging / rca, CI, Test Data, Parallel Execution, integration with other tools & libraries, free Vs open-source and support.

These dependencies require well-defined and well-tested services. Behavior Driven Development (BDD) and Interface Oriented Design (IOD) help achieve this. BDD concentrates on the functionality of the services, which are specified with tests. IOD identifies contractual obligations (e.g. failure reporting) of the services.

Going fast without control could be the biggest enemy of software development. By slowing down on people, we improve professionalism and craftsmanship. By slowing down on process, we improve adaptation and efficiency. And by slowing down on product, we improve automation and quality. When we focus on these areas, we start to cultivate a development culture enabling software development fast.

As part of our core values of sharing knowledge, the InfoQ editors were keen to capture and share our book and article recommendations for 2018, so that others can benefit from this too. In this second part we are sharing the final batch of recommendations

In this interview, James Bach explores making software testing legible and how to assess the values of your testing work and risk in a software product. He talks about how to overcome the testing automation pesticide paradox, and how should we leverage AI and ML in our testing. With more than 30 years software testing experience, Bach gives three pieces of advice to software testing beginners.

Continuous Delivery is about working in a way that keeps the system in a releasable state throughout its development. This article describes how a large software development organization at Siemens Healthineers started the transformation towards Continuous Delivery. It describes the strategy and tactics used to gradually and safely change the development process in a regulated medical domain.

JUnit 5 is a modular and extensible testing framework with support for Java 8 and higher. The Jupiter extension model can be used to add custom features. This is explained by building out a simple set of extensions that support the BDD approach to testing with full code examples.

The book Agile Methods for Safety-Critical Systems by Nancy Van Schooenderwoert and Brian Shoemaker explains how agile principles and practices can be used to build quality in from the start to develop medical and other safety-critical systems.

Far too often the dream of a successful digital transformation shatters against a limited, team-centric continuous testing strategy. This article describes how testing must be applied to fit not only agile teams but also the whole enterprise, why collaboration is the key enabler and how different testing techniques work together for overall success.