Guidelines for writing good automated tests

Monday, April 30, 2012

Hi everybody! Recently I was appointed to lead the test automation and TDD efforts in Retalix’s development group. As part of this effort, I realized that most people lack the knowledge of how to write good tests, and their mistakes lead to tests that are a pain to maintain, or give doubtful ROI. So I ended up putting this short guidelines on the internal Wiki. However, I thought that it should be useful to share it with everyone. What kind of tests these guidelines refer to? Any functional automated tests. That is automated tests that...

Is Bug-Free Software Possible (or, Who Afraid of Change?)

Thursday, August 11, 2011

Introducing a new methodology in an organization is an investment. As with all investments, you first see what you give up, and only later see what you get. As humans (and as any biological creature), it’s against our instincts, because the future is always more vague than the present, and so any investment feels like a risk (and in fact, it is always a risk, to some degree). Because investments are against our nature, we tend to make only small improvements to our existing practices. And because we’re afraid of big changes, we convince ourselves that our problems...

ATDD Explained

Tuesday, July 26, 2011

In few of my previous posts I mentioned ATDD (and a related tool called FitNesse), but I never really explained what it is, and how it works. So here I go: ATDD stands for Acceptance Test Driven Development. ATDD is somewhat related to TDD (Test Driven Development), but there are also some key differences (see this comparison). In my opinion, it is best to use both techniques together, as each has its own benefits. ATDD is an agile development methodology (complementary to SCRUM or any other agile methodology), which puts the focus on the customer requirements and...

Comparing TDD with ATDD

Monday, February 14, 2011

In the project I’m working on right now we’re using FitNesse as a core part of our development process and I found it very useful. FitNesse is a wiki-like tool that provides the ability to define tests (and run them) by writing them in a special mark-up language, rather than in a programming language. This is usually best for describing user-stories (rather than low-level unit-tests), and therefore this approach is often referred to as “Acceptance Test Driven Development” or shortly ATDD. Note: other tools (like Cucumber and SpecFlow) refer to a similar approach...