Cucumber Testing in Spring Batch

Dallas Monson Articles, Development Technologies & Tools, Spring, Spring Batch, Testing 3 Comments

With the evolution of microservices and the scalable nature of modern distributed architectures, batch processing seems to be falling out of favor. In fact, the term batch processing itself seems to be unfavorably associated with monolithic mainframe applications and thus does not seem to have much appeal.

Unless, of course, you are working on a project that is being designed to replace or modernize one of those mainframe applications. If that is the case, then likely some sort of batch process has come up with a non-functional requirement that needs to be dealt with in the new system.

For this specific concern, a very powerful framework has been provided: Spring Batch. It has many of the same features of a mainframe batch process like restart/recovery, chunk processing, and error handling along with exit codes. This framework allows developers to create powerful batch processing applications in the Spring Framework and enjoy the rich backplane of capabilities that this provides.

Continuing with the modernization thread, you will likely be tasked with providing some assurances to the business that the new, modernized process will produce the same outcome as the one that is being replaced. Here is where testing comes in, and where Cucumber specifically shines.

Cucumber provides behavioral testing support in the Spring universe. This allows developers and business users to collaborate through a common set of conventions and verbiage to validate that the app is behaving how the business intended as well as how the developer coded it.

In this post we will cover the following:
Why use Cucumber with Spring Batch
An overview of Cucumber and an example Cucumber Test
How to start with Cucumber and Spring Batch…

Taking on the Azure Developer Certification (70-532) Exam

Vince Pendergrass .NET, Articles, Azure, Cloud, Opinion, Service Fabric 7 Comments

Many of the companies that we work with use various cloud providers (such as Google, Amazon and Microsoft) for IT Service Delivery. This has created a great need for those who assist these companies to possess the technical skills required for proper and effective implementation of such services.

An excellent way to make yourself stand apart from the crowd in this space (and your company for that matter), is to obtain a developer/architect certification, such as the Microsoft Azure Developer Certification. Plus, if your company is focusing on becoming a Microsoft partner, it may be necessary to have a few developers on your team spend some time working to become certified. Fortunately, my awesome company Keyhole Software presented me with this opportunity.

In this blog, I share what I did to prepare for the Azure developer certification, specifically the 70-532 Developing Microsoft Azure Solutions Certification exam. I’ll include a couple of prep tools that helped me significantly, as well as a few unexpected “gotchas” I encountered when taking the exam…

Conditionally Disabling and Filtering Tests in JUnit 5

Billy Korando Articles, Development Technologies & Tools, Effective Automated Testing With Spring Series, Java, Testing 9 Comments

Iโ€™m in the middle of several talks on JUnit 5, so itโ€™s safe to say that JUnit has been on my mind lately. In the last article in this series, we covered how to use test interfaces to encourage good behavior.

In this article, we look at the improvements the JUnit team has made to filtering and conditionally disabling tests in JUnit 5….

Encouraging Good Behavior with JUnit 5 Test Interfaces

Billy Korando Articles, Development Technologies & Tools, Effective Automated Testing With Spring Series, Java, Spring, Testing 2 Comments

JUnit 5, released in September of 2017, is the first major release for the popular JUnit testing framework in a little over a decade. I recently presented on JUnit 5 at Lava One Conf in Hawaii in January. If you have heard about JUnit 5, but are not yet familiar with it, you can check out my presentation here, as well as the JUnit 5 User Guides.

While researching for my presentation, one new feature in JUnit 5 really caught my eye was the ability to declare tests on default methods in interfaces. This feature caught my eye because two issues I frequently face are encouraging developers to write automated tests and promoting consistent patterns across the enterprise. In this article we are going to look at how test interfaces can help accomplish both of these goals.

Default image for blog posts - purely decorative

Technical Debt โ€“ Observe, React, Prevent

Keith Shakib Articles, Consulting, Opinion, Soft Skills Leave a Comment

The term โ€œtechnical debtโ€ was coined over a decade ago to help highlight a common problem in software development. Generally you can think of technical debt like this:

The cost of additional rework created by choosing an easy, shortcut solution now instead of the better approach that would take longer.

Delivering software to meet deadlines or functional goals that are wrought with technical debt is like buying items before you can afford them. Both practices can drastically affect your ability to reach your future goals, both long term and short term.

This article is a gentle reminder to recognize, fix, and avoid technical debt in your software projects.