1emc confidential—internal use only bugs – from finding to preventing jacky guo

28
1 EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

Upload: marian-rose

Post on 27-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

1EMC CONFIDENTIAL—INTERNAL USE ONLY

Bugs – From Finding to Preventing

Jacky Guo

Page 2: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

2EMC CONFIDENTIAL—INTERNAL USE ONLY

About this presentation

•Overview

– Testing vs. Quality Engineering

– Start preventing bugs

Page 3: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

3EMC CONFIDENTIAL—INTERNAL USE ONLY

Objectives

• After this presentation, you'll be able to:

– Identify a phased approach for preventing bugs

– Identify two actions for tomorrow to prevent bugs

Page 4: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

4EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 5: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

5EMC CONFIDENTIAL—INTERNAL USE ONLY

Test vs. Quality Engineering (SQE)

"Test: to try something out… in order to find out… how well it works…"

"Engineering: the application of science in the design planning, construction and maintenance of…

manufactured things"

Page 6: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

6EMC CONFIDENTIAL—INTERNAL USE ONLY

Test vs. Quality Engineering (SQE) (continued)

Test

• Late in the timeline

• Reactive

• Find defects

• Singular in affect

Quality Engineering

• First in the timeline

• Proactive and reactive

• Understand defects

• Multiplicative in affect

Page 7: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

7EMC CONFIDENTIAL—INTERNAL USE ONLY

Phased approach

• 3 elements– Clearly written requirements/specs– "Look" at code– "Test" early

Page 8: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

8EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 1: how do I start?

• Written requirements– Clarify user& user scenario– Have your design principle

• Simple– One Step instead of two or three– Avoid repeated things – Batch command

• Bug the documents– "Does everyone see the same picture?"– "Will" versus "might, should, desirable"

• Testability/ Sustainability• SMART

Page 9: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

9EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 10: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

10EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 11: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

11EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 12: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

12EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 13: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

13EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 14: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

14EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 1: how do I start? (continued)

"Look" at Dev Design• Understand dev design

AssumptionDependencyWork flowData flowError/Exception handling/Log system

• Cover different user scenario• Testability• Risk

Page 15: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

15EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 16: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

16EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 1: how do I start? (continued)

"Look" at code• Code inspections or reviews– Reviews are light-weight– Target code subsets– Inspect only the most critical/difficult sections.

• Static analysis– Built into VS2005– Find Bugs

• Compiler warnings• Debugging skill

Page 17: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

17EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 18: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

18EMC CONFIDENTIAL—INTERNAL USE ONLY

Page 19: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

19EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 1: how do I start? (continued)

Set the example• Test requirements• Test design– Archive/version control(Testlink)– Reviewed by program manager and developers

• Test code– Small code reviews

Page 20: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

20EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 1: done

Congratulations• You have just grabbed low-hanging fruit• You have prevented countless bugs• You have risen above at least 50% of the Industry

Now what?

Page 21: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

21EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 2: change the process

Learn about your bugs• Find the cause– Unexpected customer requirement?– Vague spec?– Rushed design?– Domain knowledge?– Code error?

• Be gentle, accurate and honest

• Make a change

Page 22: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

22EMC CONFIDENTIAL—INTERNAL USE ONLY

Phase 2: change the process (continued)

Assess the value/impact of that change• Hard Metrics– Defects per 1K LOC– Test cycles to ship criteria

• Soft Metrics– Less panic at the end– Fewer pizzas ordered– People are happier

Page 23: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

23EMC CONFIDENTIAL—INTERNAL USE ONLY

Call to action

• Start small, get a win– What are people most upset about?– What is the low-hanging fruit?– What does the RCA data say?

• Be prepared to set the example

Page 24: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

24EMC CONFIDENTIAL—INTERNAL USE ONLY

Call to action (continued)

What can you do tomorrow (pick 1)?• Get a best practice on the schedule• Document one requirement or design– Get it reviewed

• Code-review one critical section• RCA 10 bugs• Implement 10 unit tests

Page 25: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

25EMC CONFIDENTIAL—INTERNAL USE ONLY

SUMMARYReview process

•Requirement spec review•Dev Design review•Test Plan review(involve Dev)•Code Review(including bug fix)•Release spec review

Page 26: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

26EMC CONFIDENTIAL—INTERNAL USE ONLY

SUMMARYTest case Management

• TC from Bugs by customer/external users• TC from review dev design• TC from user scenario• TC from Bugs review in case of regression• Regression Test strategy("diff" VS "full")• BVT runs before Dev Check in

Page 27: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

27EMC CONFIDENTIAL—INTERNAL USE ONLY

SUMMARYBug Management

•Map to TC•Bug quality•Root cause(process may needs change)•Bug fix review to evaluate the risk•Control the bar to fix bug(potential risk)

Page 28: 1EMC CONFIDENTIAL—INTERNAL USE ONLY Bugs – From Finding to Preventing Jacky Guo

28EMC CONFIDENTIAL—INTERNAL USE ONLY