Why Am I Writing This Test?

Billy Korando Articles, Development Technologies & Tools, Effective Automated Testing With Spring Series, Testing Leave a Comment

… The highlight of this episode for me was when Dan laid out the three major concerns of automated tests. I hadn’t previously heard all the major purposes for automated testing laid out in such a succinct fashion. They are paraphrased:

Using Tests to Specify the Requirements of the System
Using Tests to Document the System
Using Tests to Build Confidence in the System

With purpose in mind, it is good practice for both developers and automated testers to ask themselves the following questions when writing a test:ย Why am I writing this test?ย Am I specifying system requirements?ย Documenting system behavior?ย Building confidence in the system?ย I’m a firm believer that asking the right questions when writing tests can lead to a better design for individual tests, in addition to more coherent and effective automated test suites.

In this article, we look into the three major purposes for writing automated unit tests. We discuss how they should be approached and what developers and automated testers can do right now toย establish better, more purposeful, practices.ย 

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.