In the first post in this series, I listed a number of challenges that you face when writing Acceptance Tests for a Web App. In this post, I will explain how I deal with the fact that there is no headless browser that meets all the requirements that one might need (or at least not all of MY requirements).Read more
Things I have learned as a researcher in Information Technology.
In my previous post, I listed a number of challenges that you face when writing acceptance tests for a Web App. In this post, I will explain how I deal with the first of those issues: avoiding brittle tests that are coupled too closely to presentation details.Read more
Writing Acceptance Tests for a web application is difficult, yet necessary. In this blog post and subsequent ones in the series, I describe some of the unique challenges posed by web apps and present solutions I use to deal with them.Read more
A common tenet of Test Driven Development is that you should test your classes in complete isolation from every other class. And that usually means writing Mock Implementations of every component that your Class Under Test (CUT) might collaborate with. But personally, I find that Mock Objects are often more trouble than they are worth, and I tend to avoid them. In this rather long blog post, I explain why I think they are bad, and what I do to avoid using them.Read more
Whenever you need to provide a default value for a variable or attribute, use an "empty" value instead of a null one. This will greatly reduce the chances that you will end up with a a NullPointerException at run time.Read more
When writing a brand new class, make sure it can be instantiated and used with minimal fuss. In particular, always provide an "empty" constructor that doesn't require any arguments....Read more
On October 21, 2013, I will be speaking at the Gatineau-Ottawa Agile Tour 2013 (GOAT2013). This is a really great 1-day event at an unbeatable price ($60 for the whole day)! My talk is entitled ''"Finding the Right Thing to Build: How to facilitate a focused collaborative project chartering workshop"''.Read more
One of the reasons why I like Test Driven Development so much is that it supports so many important things besides testing. In particular, it helps me better design my classes, and better document those designs. Over the years, I have developed a particular idiom for doing this, which I call Synopsis Tests.Read more
On the surface, timeboxing and estimating may seem very similar, but in fact, they put you in a completely different mindset. The main difference is that with estimating, you are in a mode of GUESSING how long something will take, while with timeboxing, you are CHOOSING how much time to spend on it. As a result, I find that timeboxing tends to result in more predictable timelines than estimation.Read more
Since starting Alpaca Technologies in April 2013, I have had to learn a lot about becoming an entrepreneur. So I read some books, and asked advice from a lot of freelances. Below is a list of all the advice I have picked up so far. I can't say that I have tried all of these bits of wisdom, but whenever I am faced with a business challenge, I look at it to see if something strikes me as directly applicable to my current situation...Read more
My last blog posts
Acceptance Testing for Web Apps -- Part III: Clunky Headless Browsers
Acceptance Testing for Web Apps -- Part II: Avoiding Brittle Tests
Acceptance Testing for Web Apps -- Part I: Why do it?
To Mock or not to Mock?
Use "empty" values instead of nulls
The importance of default values
Come and see me at the Gatineau-Ottawa Agile Tour (Oct 21, 2013)
Use Synopsis Tests to design and document your classes
Timebox tasks, don't estimate them
Advice on Starting a one-person Technical Business