Why SQL Sucks

About two weeks ago at work we discussed different strategies on testing databases. Although there are ways to do it, they are all more or less painful. And finally we all parted in agreeing: (SQL) databases suck, SQL sucks and testing databases and SQL sucks as well. We are only testing this crap because the [...]

Posted in: Softwaredevelopment by Jens Schauder 11 Comments

More on JUnit Theories

In my last blog post, I described how to use JUnit Theories to create large amounts of test runs, with very limited amount of work, like so:

import static org.junit.Assume.assumeTrue;

@RunWith(Theories.class)

public class TheorieTest {

 

 @DataPoint

 public static String a = "a";

 

 @DataPoint

 public static String b = "bb";

 

 @DataPoint

 public static String c = "ccc";

 

 @Theory

 public void stringTest(String x, String y) {

  assumeTrue(x.length() > [...]

New Feature of JUnit: Theories

A couple of months ago I blogged about JUnit Rules, one of the new features in JUnit. While fooling around with JUnit Rules, I found a couple more features that you might be interested in. So here it comes: Theories! It turns out Theories are really a piece of cake. Try this:

import static org.junit.Assume.assumeTrue;

import org.junit.experimental.theories.DataPoint;

import [...]

Posted in: Softwaredevelopment by Jens Schauder 3 Comments , ,

Mixins, Inheritance and Delegation

A week ago I started learning Scala. One of the features I found pretty interesting are mixins and traits. That was just the point of time, when I read this little tweet of GeekyL:
“i am still not sure if mixins are super cool or dark magic.”
Of course I was instantly reminded of the time when [...]

New Project’s Resolution

In a couple of days I’ll start working on a new project. Actually it is an project that I worked one or two years ago. I think I did decent job last time. But there is always lots of room for improvement. So today I want to list a couple of things I want to [...]

Developing for Maintainability

Just as Supportability, Maintainability is one of these Non Functional Requirements, that is or should be required from every software development project. So what does that mean? Wikipedia defines it as
the ease with which a software product can be modified in order to:

correct defects
meet new requirements
make future maintenance easier, or
cope with a changed environment;

Wow, that’s [...]

Developing for Supportability

When reading the specification of a piece of software to be written, you are bound to find some non functional requirements. Among these there will be, or at least should be Supportability. But what the heck does that mean? How do you install supportability? Let me present some ideas, what you can do to improve [...]

Versioned Data

In about one of two projects the customer comes up with the requirement of ‘historization’ of data. And more often then not this lead to an unholy back and forth of discussions, prototypes and complaining. The reason for this as far as I can tell is: This is not a well defined requirement. It can [...]

The Software Development is like the Evolution of Life

Software development has been compared to many things. I’d like to propose another comparison: Evolution.
Why another metaphor?
A metaphor enables you to think about a problem in a different way, thus possibly gaining new insight. It is also useful for explaining something to someone who otherwise wouldn’t understand what you are talking about. Or to use [...]

Are You a Software Developer or a Dabbler

When reading blogs you get the impression, that everybody works in high end environments, using the latest greatest distributed version control system. Writing tons of tests, before they even dream about writing actual code and of course the tests a executed by the continuous integration system after every commit, which happens about 30 times per [...]