Curious Cat Management Improvement Blog: Deming, lean thinking, innovation, customer focus, continual improvement, six sigma.
March 8, 2010
Improving Software Development with Automated Tests

Automated software testing is a mistake proofing (poka-yoke) solution for software development.

The way automated testing works is that software code is written that tests the software code of the application. This automated testing code test that business rules are correctly being followed by the code in the application.

So for example, a user should not be able to create a new account without entering password. Then you create code that does not allow an account to be created without a password. And you write a test that passes if this is true and fails if it is false.

The best implementation will then not allow deploying code to your production environment until the code has passed all the automated tests. So if a software developer changes the code, the automated tests are all run and if there is an error noted by the automated testing the code cannot be deployed to the production environment. So, in the example above, if somehow the changes made to the application code somehow now let an account be created without a password the test would fail, and the developer would know to fix the problem before putting the code into production.

Thus automated testing mistake proofs the process. Now the mistake proofing is only as good as the test that are added. Software development is complex and if the code has an error (based on the business rules) that is not tested then the code can be deployed to production and affect customers. But it is a huge help in preventing many errors from affecting customers.

It seems pretty obvious but until the widespread adoption of agile software development techniques and frameworks that make it easy to adopt automated testing (like Ruby on Rails) this sensible process improvement tool was used far less often than you would think.

Related: Combinatorial Testing for SoftwareMetrics and Software DevelopmentChecklists in Software DevelopmentGoogle testing blogHexawise software testing blog

6 Responses to “Improving Software Development with Automated Tests”

  1. Nicholas Hebb Says:

    [I'm not trying to quibble over semantics, but ...]

    I think your example is really a poka-yoke for the user input process, not the software development process. Unit testing would be more analogous to poka-yoke.

  2. John Hunter Says:

    The automated testing I refer to above is unit and integration testing. Application code is not deployed to the production server if those tests show the code includes a bug that causes the test suite to fail.

    Any process that prevents code with a bug (defined as a failing test) from being deployed when any type of tests fail I would see as poka-yoke.

    Selenium is another good automated testing tool. Which could be seen as integration testing but also more (testing browser compatibility).

  3. Deming vs. Automated Software Testing – Machiel's Blog Says:

    [...] Hunter says tests are a form of prevention. They are a form of Poke Yoke, Poke Yoke means [...]

  4. Jeff Hajek Says:

    John,

    Thanks for this example. I am constantly looking for good poka yoke examples for office environments. I hadn’t thought of that one before.

    Your point on the quality of the poka yoke is equally valid in any environment. The same is true of fixtures or other devices. The key is to combine it with continuous improvement and keep making the poka yoke better.

    Jeff

  5. How small batches improve product development | Manufacturology Says:

    “A couple of recent blog posts are representative: Hunter talks about how automated testing improves quality since it acts as a mistake proofing or poka yoke… automated testing of a product that is composed of ready–tested and reliable modules facilitates that developers make very frequent deliveries of small batches of working code.”

  6. Curious Cat Management Improvement Blog » Mistake Proofing Deployment of Software Code Says:

    [...] is a continuation of my previous post: Improving Software Development with Automated Tests. Lets look at a typical poka-yoke example. A USB connector must be put in the right way up – [...]

Leave a Reply


Curious Cat Management Improvement Blog © curiouscat.com 2005-2010

Internal Links

Author

John Hunter

Tags

blogs Books Career Carnival cars commentary Creativity curiouscat Customer focus Data Deming Economics economy engineering executive pay Google Health care Innovation internet Investing IT Japan John Hunter leadership lean manufacturing Lean thinking Madison management managing people Manufacturing overpaid executives Performance Appraisal Process improvement Psychology Quality tools quote respect for people Six sigma Software Development Statistics Systems thinking tips Toyota Toyota Production System (TPS) webcast
Full tag could

Other

Search Blog

Web Search

Management Improvement web search

Recent Comments

  • Claudia: I like how people expect a methodology to “fix” poor management. It doesn’t. Six sigma or...
  • Milan Moravec: It is too early for a Performance Appraisal In Memoriam. It’s amazing that such dinosaurs...
  • shaun sayers: Nice article Jon. I think it is probably because a lot of quality professionals come into...
  • Paul Sheldon: John, sadly Hock’s advice seems to be applied in reverse too often. Automated scanning of resumes...
  • Dave Crosby: I think you’re over-thinking zero defects. In my view it doesn’t prevent or slow down...
  • Guy Farmer: Great points. It’s noteworthy how many companies still think that if they only talk at their...
  • Scott Sorheim: Great video. Love the “stop-the-line” mentality that is really similar to...
  • Scott Sorheim: My frustrations with tech support are actually how I became a programmer. I was a Mechanical Engineer,...
  • Wally Bock: Congratulations! This post was selected as one of the five best independent business blog posts of the...
  • Wally Bock: Very well stated, John. The very idea of “motivating” other people assumes that the people...
  • Wade Cartagena: I importance the Montessori method because it targets all knowing styles, provides the baby a...

Archives

March 2010
M T W T F S S
« Feb   Apr »
1234567
891011121314
15161718192021
22232425262728
293031