In Diagramming Spring MVC webapps, I presented an approach that allows you to create a fairly comprehensive model of a software system in code.
Thucydides plays nicely with BDD tools such as JBehave, and traditional tools like JUnit, to make writing automated acceptance tests easier, and to provide richer and more useful living documentation. In a series of two articles, we will look at the tight one and two-way integration that Thucydides offers with JIRA.
This is the first of a series of posts that is going to discuss the different faces of tests. Let’s start with validity. Admittedly, it’s not the first of attribute I thought about. What are the chances we’re going to write a wrong test?
Automate ENV preparation with Docker and Vagrant.
While it is possible to construct situations where double produces an error, it is also just as easy to construct situations were BigDecimal get an error.
Packaging and deploying an application consisting of Puppet manifests and Chef cookbooks (Docker container requests also). Easy integration with Jenkins; XL Deploy takes care of targeting the manifests/cookbooks at the appropriate hosts and all the orchestration of the invocations. Piece of cake!
Microservices are an architectural style where each service is implemented as an independent system. They can use their own persistence system (although it is not mandatory), deployment, language...
New vulnerabilities are frequently discovered in open source components previously thought to be safe, so to keep your applications from going sour, you should rely on automation to alert you when new risks are discovered in existing applications.
Here are a few quick tips to examine your existing code to identify reuse candidates:
For maintenance purposes, it is often beneficial to separate projects into their own projects. Furthermore, the commit history for the extracted project should not be lost. With Git, this can be achieved using git-subtree.
Let’s put it this way: If the test fails the evaluation, there’s going to be work later to fix it. When would you rather do it – now, when the test is fresh in your head, or later, when you have to dive in again, into code that you haven’t seen in 6 months, instead of working on the new exciting feature you want to work on?
In the webinar Death to Manual Deployments we highlight a common problem in enterprise IT: configuration updates to middleware and applications are made on an “as-broken” basis. A developer will change the application to need a configuration tweak, which she makes on her own laptop.
The entry point of a Continuous Delivery pipeline is its Commit Stage, and as such manages the compilation, unit testing, analysis, and packaging of source code whenever a change is committed to version control.
Two examples of Spring Security's authentication replacement feature, often referred to as Run-As, that can replace the current user's authentication (and thus permissions) during a single secured object invocation.
Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (June 27 to July 3). This week's topics includes code complexity, code refactorings, unit testing database code, injection as a security risk, and an interview with PagerDuty on incident management in DevOps.
When making these tests, I allowed for a little flexibility as well: By setting environment variables, the same tests can be run with a manually deployed server, so you can use it to verify that your staging server is up and running (for example).
As a leader in distributed computing architectures, FastConnect brings its unique expertise to assist you in redesigning your information and your business applications involving system implementation methodologies and the most advanced technologies.
Here's a little demo video that I put together to explain
pushing/pulling with multiple remotes and how tracking branches make
this easier. It's one of the chapters from my "Git Adventures" talk,
but it didn't make it in to the talk in Amsterdam...
Continuing with my interview series from DevOps Days Austin, today’s interview is with Matt Barlow. Matt established Rackspace’s support offering around DevOps automation late last year. Hear about it and how it all came to be.
Which is more readable? releaseVersion = version.substring(0, version.indexOf('-SNAPSHOT')) or
releaseVersion = version[0..-10] ? I'm going to go with the first one because it’s easier to understand if/when something goes wrong.
Later in the day I found myself in conversation with two people concerned about software testing. They posed the question: “How do we make testing faster?” Specifically, how do we make SIT (“System Integration Testing”) and UAT (“User Acceptance Testing”) faster?
Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we have something a little bit different: Hernâni Cerqueira, Lead Software Engineer for DZone and AnswerHub.
I have finally put the finishing touches on the rough draft of Working Effectively with Unit Tests.
Now that this has been established, let’s have a look at a blog post by Marco Behler, in which he elaborates on various options when testing database code, with respect to transactionality. Testing database transactions is even harder than just testing database code.
The science of appreciation tells us that gratitude is lacking in most work environments, but even a little bit of appreciation can lead to a better work environment and higher performance. People start to feel better about themselves, perform better as a result, and are more likely to show appreciation to others.