"Excellent testing is a rich and open-ended intellectual activity. It cannot be encapsulated into discrete procedural units."-James Bash

Monday, 11 May 2015

Bug Free Software (ポカヨケ)

The one and only objective of Software Testing & Quality department is to deliver 100% bug free product to client.,

software testing industry born at the year of 1954 in IBM., From that day onwards there is no history our industry having about the 100% bug free software., 

Yep, we tried our level best to make our customers have confident smile while think about their projects, This is not a simple thing to do, shrinking between with hundreds of technologies, tools, methods etc.., etc..,

Here am presenting one another method met before a couple of months "Poka Yoke".,
You are right, this Japanese word Before that let me explain what the mean of Defects..?
dear Testers, you all here is having good understand about the defects., But this is my responsibility to explain here because you never believe me whether am giving the presentation related to the testing department if am not touch this topic means., 
What is defect..?

It s unexpected and undesired behaviour that occurs in the product.,
And anything happens in the product, which make the Precious client Frustrate is a defect..,

Defect Management:
 Finding and fixing the issues in the development stage is always minimize the cost, time and rework.,
 Dealing with the issues after this phase always cost effective.,
 So this is most important to concern defect management entire software development cycle.,
 This process should start at the first step of the software development such as analysis., so that we can able to give an good quality product and gain customer satisfaction.,

Here am going to explain one such technique is "Poka-Yoke".

let me start this from history:
 This is a Japanese term it means "Mistake-proofing".
 This term adopted by "Shigeo shingo, 1909-1990)" 
  shigo was a Japanese industrial engineer who is considered as the world's leading expert on manufacturing practices and the Toyota Production System.,
He was famous with the Poka yoke and SMED (Single Minutes Exchange Dies), the important tool of the Toyota Production System.
 The Shigo prize  was created which initiated by Norman Bodek is awarded for manufacturing as tribute to this passion contribution to the industry.
(Ref:  http://en.wikipedia.org/wiki/Shigeo_Shingo) :)


Okay., Lets come to the point,  "What is Poka-Yoke"?

 Poka-yoke is any mechanism in a lean manufacturing process that helps an equipment operator avoid mistakes.
its purpose to eliminate product defects by preventing,correcting or drawing attention to human errors as they occur.

Lean manufacturing is all about preserving value with less work.

(** have to speck with TIMWOOD seven waste defined by Toyoto manufacturing system. **)

Poke Yoke method Examples: Mistake Proof Design
1) Electronic door locks can have three mistake-proofing devices:

    insures that no door is left unlocked.
    doors automatically lock when the car exceeds 18 miles an hour.
    lock won't operate when door is open and the engine is running.

2) Automatic light switch in room turns light on automatically. After the room has been unoccupied for a few minutes, the light goes off automatically. The error of forgetting to turn off the light is eliminated.

3)SIM card slot in cell phones is designed such a way, and there is no chance for user to make mistake while putting SIM card in cell phone.,

Is this technique is applicable for "Software Development".
Answer is YES

Examples:
 1)Cmd-Q Warning In Chrome: Quite often Mac users make a mistake of pressing Cmd+Q to close a TAB instead of Cmd+W. Google Chrome on Mac can warn users when they press Cmd+Q, to help them from inadvertently closing all their windows.

2)Password Strength Indicators: When you sign up for an account on most websites, you are nowadays displayed a password strength indicator - which gives you feedback on the quality and strength of your chosen password. You may think that "Passw0rd" is an awesome password, but that's a mistake you are making! Websites have data collected over millions of users which can tell them things like what are common and easy to break passwords. They utilize this data, along with sophisticated software to create Password Strength indicators so that naive users don't mistakenly set simple, easy to guess passwords.

3)Gmail Attachment Check: If one uses the words "I have attached", but does not attach any document to the email, Gmail will give a warning saying you used the words I have attached, but didn't really attach any document. Are you sure this isn't a mistake?

*Steps to Implement a Poka Yoke Process:
 1. List all user scenarios or end to end test cases for the application.
2. Analyse all these scenarios by asking 5-whys question to understand the ways these scenarios can fail.
3. Once you identify the ways these user scenarios can be wrong, design and apply a Poka Yoke technique to avoid the possible problems (e.g. this design could be a simple unit test to check if any function written is working properly or not).
4. Make sure the technique designed to avoid the defect is working properly by giving errors or warning message for incorrect input or handing of the user scenario.
5. Once the trial is passed add this technique in the list of Poka Yoke processes to be performed each time on new release/build.  (In above unit testing example, once the unit test is written to check the function code, check if it is working for positive and negative values. When this test passes add it to ‘unit tests’ repository to be executed each time any change is made in relevant modules)
6. Measure the success of this Poka Yoke process. Check if this technique has really prevented or caught defects when happening.

Categories of Poka-Yoke
 Prevention and detection
1) Prevention:  A prevention device engineers the process., so that it is impossible to make a mistake at all.

• EX: 3.5 inch computer diskette.The diskette is carefully engineered to be slightly asymmetrical so that it will not fit into the disk drive in any orientation other than the correct one. Prevention devices remove the need to correct a mistake, since the user cannot make the mistake in the first place.

2)Detection: A detection device signals the user when a mistake has been made, so that user can quickly correct the problem.
 Detection devices typically warn the user of a problem, but they do not enforce the correction.,

Microwave will not work if the door is open (a prevention device). Car beeps if I leave the key in the ignition (a detection device).

 Characteristics of good poka-yoke devices
    they are simple and cheap. If they are too complicated or expensive, their use will not be cost-effective.
    they are part of the process, implementing what Shingo calls "100%" inspection.
    they are placed close to where the mistakes occur, providing quick feedback to the workers so that the mistakes can be corrected. It should be part of software design and coding process.

Poka-Yoke should be designed early in SDLC so that it can detect issues quickly.

Recommendations for Creating Good Software Poka-yokes:

Think simple-t is better to have several simple poka-yokes, each with a single purpose, than to have one large complicated script.

Think specific= Look at your process; identify a mistake that occurs frequently, and design a poka-yoke to prevent or detect that particular mistake.

Think attributes-Rather than wait for the entire software application to become available, look for aspects of the software that can be verified independently.

Think early-Try to detect and eliminate defects as early as possible so that they do not pollute processes downstream.

Think responsive-Once a defect is detected, correct the mistake as soon as possible.

Think re-use- Successful poka-yokes can be modified to serve new purposes.

    How could I have automatically detected this bug?
    How could I have prevented this bug?

conclusion
Poka yoke method is best solution to avoid costly mistakes in customer end.,
Making mistakes is OK; just don’t make the same mistake again and again. And to avoid making same mistakes again there should be some checks or processes in place. The Poka-Yoke techniques are developed to solve this problem.
FMEA (Failure Mode Effect Analysis) is also one of the technique used to identify the risks and mitigate them in the Design.

"Those who are not dissatisfied will never make any progress."-Shingo

No comments:

Post a Comment