Top Banner
Driving Innovation Using Pattern Based Thinking 1
32

Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Jan 20, 2015

Download

Technology

RIA RUI Society

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Driving Innovation Using Pattern Based Thinking

1

Page 2: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

From India With Love

2

Page 3: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Agenda

Patterns in real world Design Patterns and Test Patterns Usefulness of patterns in testing Patterns in testing

Data Patterns Test Patterns Defect Patterns Test management Patterns People management Patterns Control Patterns

What we do not know today What we might need to create – pattern language

3

Page 4: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

What Do You Mean You Have Seen This Before?

4

Page 5: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

What Do You See Here?What Patterns Do You See Here?

5

Page 6: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Did You See This?

The sum of the numbers in any row is equal to 2n

Source - http://ptri1.tripod.com/

6

Page 7: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Learning the Language

How do you learn your native language?

How do you learn your second language?

7

Page 8: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

*Brain – A Pattern Machine The brain is a pattern-mad supposing

machine. Given just a little stimuli, it divines the probable. …it recognizes familiar patterns and acts with conviction.

As much of a confection as our mental maps are, they (Patterns) allow us to speculate, rehearse and make plans.

*http://www.nytimes.com/2004/06/15/science/essay-i-sing-the-body-s-pattern-recognition-machine.html

8

Page 9: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Pattern

*A form or model proposed for imitation

*Something designed or used as a model for making things

 Design pattern - general reusable solution to a commonly occurring design problem

From MW Dictionary* 9

Page 10: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Patterns in Testing-Possibilities

I predict that one of the future breakthrough in testing will come through pattern recognition

Example Patterns of defects arising out of

patterns of errors in code/design/requirements

Patterns of project failures arising out of data collected during project execution

10

Page 11: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Why Identify Patterns?

Patterns exists everywhere - in defects, code, design, processes

Pattern identification helps predict the next set of events in the chain enabling you to do risk mitigation

Patterns enable you to distinguish the woods from the trees

11

Page 12: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Patterns in testing

Data Patterns Test Patterns Defect Patterns Test management Patterns People management Patterns Control Patterns

12

Page 13: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Data Patterns

Ross Collard listed a number of data patterns for functional and performance testing - Routine Live Data Baseline Batch Volume or Parallel Benchmark Pristine Truncated Minimally Redundant etc.

13

Page 14: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Simple Testing Pattern (Observed)

People often work on one side of boundary while testing

Make them work on both sides/all sides of boundary

Example – Triangle Problem negative test cases - no

value, 1 value, 2 values, all 3 values what about the other side of the

boundary - more number of values?

14

Page 15: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Discovering Test Design Techniques

Patterns can help uncover new test design techniques OR new ways to look at existing test design techniques Apply test design techniques to create tests Monitor the bugs arising OUT(SIDE) of tests Establish the bugs that could have been

found using existing techniques Defects not “findable” using techniques

should be analyzed for patterns and a technique using which these could be found

15

Page 16: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Example of Discovered Technique

Some patterns in type of bugs not found using tests created using techniques Interaction of application with the operating

system Reason – Design specifications hardly go to that

level of detail and system specifications never Defects related to interdependency of features

and code structures causing one portion of code to be bound to another piece of code Reason – Code dependencies are either not called

out explicitly, born in either assumptions or ignorance (most of the time)

16

Page 17: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Unified Test Design Technique

A model based technique

Resembles state diagrams

Entity under test

User Inputs

System Inputs

Input Data

Input Actors

Ass

oci

atio

ns

Co

nta

ins

Output Data

Output Actions

On otherelements/

entities

On OS - Disk- File- Process- Screen IO- System Messages

Transient /Stable State

Parameters & their attributes

Parameters

State of Parameters

En

viro

nm

en

t (E

xt.

Sta

te)

St a

te (

Inte

rna

l Sta

t e)

17

Page 18: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Defects, Patterns and You

How many bugs do you find every month?

How many of them are type – UI, Feature, cross-feature, database, security…

Can you sub-classify them? Do you know what are other testers

finding? Do you see any patterns in

What type of bugs you find What types of bugs you don’t find?

18

Page 19: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Design, Code and Requirements

If you find predictable bugs (based on your past experience and pattern recognition) can there be pattern recognition for code? Design? Requirements?

19

Page 20: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Bug Isolator Patterns

Are there testers who do good bug isolation?

Are there those who do not? How do they fail? What things they

do not do? What patterns exist? If I know those patterns can I

improve their skills?

20

Page 21: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Test Management Patterns

Example Project Failure pattern –

Communication/delivery/no-interested-client-stakeholder

Automation Outsourcing Failure – Lack of ~effort appreciation/well-written tests/domain knowledge

21

Page 22: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Project Diary as a Tool

What pattern do you see here? This pattern emerges from long term view - The four

entries here are from a list of 133 entries between Jan and April 2001. How is pattern recognition different from Root cause analysis?

Date Action Issue24-Jan-

01Clear work division in overlapping areas and ensuring communication between the overlapping/concerned people.

Performance test cases being written by Joe and Jane. Test were duplicated. Some missing test cases because every body was not aware hence did not review/contribute to the tests.

28-Jan-01

Knowledge of the system (WES, WAS performance, tuning, deployment) should be available to the team.

Some members of the team did not know what they had to do, others did not have required technical knowledge

14-Feb-01

Communication of the documents, Agenda, Minutes to the testing team should be formal, via mail.

The release meeting with developers happened without a copy of test plan (esp. dates) being available.

9-Mar-01

User Guides esp. “how to get started” should always accompany a build

Swami sent a mail asking how to use the ABC app. We had to write some steps and send him the document.

22

Page 23: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

People Management Patterns

Example – Patterns while Interviewing assessing people, forming impressions,

validating, creating and refining patterns Remember - you have not discovered

the last pattern hence you may be wrong

Keep updating your impression of patterns and be ready for the worst

23

Page 24: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

People Management Patterns

Example – “Only a Guest” pattern when people (are about to) leave the

organization without information to the management there are some behavioral patterns that manifest themselves.

Indifference, extra-hard work, sudden forgiveness and not picking up of battles, unplanned absenteeism, putting all paper-work in place etc.

24

Page 25: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Applying Pattern Thinking

Patterns for Predicting Inventing Improving Preventing …

25

Page 26: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Possibilities

Unified Modeling Language – Unified Testing Language

No guarantee of success and no predictions of failure

26

Page 27: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

How to Identify Patterns

Applying patterns requires Ignoring the small and looking at the

large Large amount of data (usually) Reduction in the number of variables Elimination of outliers Pattern of outliers Variations and taking cognizance of

those Variations and eliminating them

27

Page 28: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

What Do You See Here?

http://www.rense.com/general86/stun.htm28

Page 29: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

And Here?

http://www.rense.com/general86/stun.htm

29

Page 30: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Careful…

“Homo sapiens is about pattern recognition, he says. Both a gift and a trap.” - William Gibson – Pattern Recognition

30

Page 32: Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking by Vipul Kocher

Questions?

Thank you everybody <<meta-pattern – help>> for images, text and ideas

32