Category Archives: talks

Regression Testing: The Bane of the Tester

I was fortunate enough to be invited to the 2nd Midlands Exploratory Workshop on Testing (MEWT) which took place on the 13th September at the wonderful Attenborough Nature Centre.

(You can read more about the background to the MEWT concept and the day’s events on the MEWT blog.)

The theme of this year’s workshop was “Regression Testing”.

I’ve set out my presentation in long form below but if you want the original slides here they are: MEWT – Regression Testing


Initial thoughts

When I first read what the theme of this year’s workshop was I thought “Well, that’s a bit obvious. Surely everyone knows what Regression Testing is?”

It turns out there’s no such thing as a silly question, especially when it comes to testing.

So let me just set out what I understand regression testing to be, because I know already (thanks, Twitter) that there’s a difference of opinion in the room as to what that might be.

Again, I’m not going off what the “dictionary definition” says. I’ve deliberately not looked it up. I must present what I understand it to be, not what I’d like it to be, and certainly not what some other source says it is.

Regression Testing is…

Ensuring what has already been tested, and found to be good, remains so as the software continues to be developed.

Ideally you would re-run all your previous tests every time there is a change.

What’s the problem?

Q: Why is it the “bane of the tester”?

A: There is rarely (if ever) enough resource to cover a full regression test every time it is needed.

Reducing the load

There are some common tactics to reduce the workload…

1. Don’t retest everything.

  • Wait until there are enough changes built up to form a release, then test that.
    • Reduces effort with minimal risk.
  • Only test significant changes.
    • How do you determine “significant”?
  • Only test those areas likely to have been affected.
    • Again, sensible, but how is this determined?

2. Don’t do it all yourself.

  • Spread the testing effort out across the team.
    • Rerunning tests manually is dull. Rotate the tests. Share the pain.
  • Outsource the testing.
    • Rerunning tests manually is dull. Let factory testers do it.
  • Automate the testing.
    • Let the computer do the work. Now you have two problems.

Coverage

Regression Tests are…

  • All the tests you have run to check against requirements.
  • All the tests you have run to check the fixes are correct.

That’s a lot of tests.

Regression Testing vs Sapient Testing

Regression Testing is the antithesis of Sapient Testing.

  • Use sapient testing to explore the way ahead.
  • Use regression testing to shore up the road behind.

 

The one thing to take away from the workshop was that everyone came away with a different idea of what Regression Testing should be and could be than when they started that day. (As I’ve already said.)

I’d say that, on that basis alone, it was a worthwhile exercise.

99-Second Talk: Software Crisis?

As delivered in under 1:39 at TestBash 2.0, Brighton, 22nd March 2013.

[This is from my notes. It probably isn’t what I actually blurted out. Video evidence to follow, probably…]


While thinking about what to talk about today for some reason a term that I had not really encountered since university days came to mind. Has anyone heard of the term Software Crisis?


[One person put their hand up: Michael Bolton IIRC.]


Well there’s a reason for that. It was coined back in 1968 at the NATO Conference on Software Engineering held in Germany. It was (is?) an emotive, provocative term that posited this: with the increase in complexity of software made possible by rapid advances in computing power, how can we ever successfully manage such projects? We can do anything with a computer we can set our minds to. There is no bound to things that are virtual, and whose mechanics are invisible. To paraphrase Fred Brooks, there will never be enough human resources to build (provably) correct software.


  • So, is the term an anachronism?
  • If the term no longer has currency [it seems that way by show of hands hand], are we still in crisis or out of the woods?
  • Are software development methodologies are simply various ways of managing crises?

Five Misleading Software Testing Concepts

This week I gave a lightning talk about Five Misleading Software Testing Concepts at the STC Meetup in Cambridge. They were:

  1. Automated Testing
  2. Quality Assurance
  3. Best Practices
  4. Bug Counts
  5. Code Complete

My cue cards can be found here.

[Edit: 29/03/12] I also gave this talk at the STC Meetup in Birmingham last night. Here’s a blogged response already.

[Edit: 03/04/13] Once again (and for the final time I think) I gave this talk exactly a year later at the inaugural Sheffield Test Gathering on 28th March.

Permit me some self-promotion here:

.@pmberry2007 provoking some lively discussion at the first #shefTest. twitter.com/WhyAyeMac/stat…
— Iain Mc (@WhyAyeMac) March 28, 2013