SlideShare une entreprise Scribd logo
1  sur  57
BUG BEST PRACTICE
LIANG GAO (LIANGG@GMAIL.COM)
AGENDA
Bug filing best practice
You should learn….
Value added for bug management
Defect management
Bug follow up best practice
BUG IS IMPORTANT
Your performance is partially judged by the quality and
amount of the bug you filed.
As an engineer, reputation is the most important thing. A
tester’s reputation is as good as the quality of your bug can
get.
Most of the time, it is the only way you communicate with the
developer.
Who will read your bug report? – developer, your managers,
developer’s manager, product manager, marketing folks,
customers……
WHERE ARE BUGS
COME FROM?
Laziness (does not perform error handling)
Inexperience (does not know the impact of code changes)
Carelessness (blind cut-n-paste)
Bad design/infrastructure (bad module design  un-
maintainable code)
Incomplete documentation (misunderstood customer
requirements, missing information in func spec)
Complexity of software (hard to maintain/enhance/test)
Bad tools (compiler, CM tool, merge tool, etc)
Lack unit-level testing (misses lots of basic bugs)
Time pressure (fatigue)  Laziness and carelessness
 Code scales linearly, the complexity scales exponentially
THE QUALITY OF A
TESTERScript Quality
Test Case Quality
Bug Quality
Case Execution
Quality
HOW TO FIND A BUG?
You think it is a bug because?
• Understand the product/function spec correctly
• Understand the use case scenarios correctly
• Put yourself in a user’s perspective.
• Your experience counts a lot, 上 兵纸 谈 is harmful
Bad bugs cause you trouble
• Junk bug is counter productivity, and ruin your
reputation
• Bad documented bugs cause you a lot of time and
energy, like…. living in a nightmare.
HOW TO FIND A BUG?
Debugging is like watching Magic Tricks
(Michael Amma17:40 - 19:00)
James Brown 5:10
WHY I CAN FIND HIGH QUALITY BUGS BUT
YOU CAN’T?
High quality bug
• Affect the major functionality
QoS still work after delete the configuration
• Not Cosmetic
Bug 3744 - WebUI 的导航栏没有滚动条 , 不便于用户浏览操
作
Because I understand the functionality deeper than you
Because I use more testing types than you.
Because I design more use case than you
Because I carefully execute the cases than you
Because I pay more attention to the details than you.
Because once I found a crack, I’ll keep on going, but you didn’t
NONREPRODUCIBLE BUGS –
HEADACHE?
Random is not equal to irreproducible
NONREPRODUCIBLE BUGS –
HEADACHE?
Always report non-reproducible bugs, they might be time
bombs.
Non-reproducible bugs are always reproducible.
• Timing and delay?
• Only happen during installation
• Depend on some data like corrupted database?
• Sequence of the execution?
• Interaction with other programs in the background?
NONREPRODUCIBLE BUGS –
ELABORATE
a. I saw this one, but was never able to make it happen again.
b. I see this when I run with this setup, but sometimes I don't.
c. This is the same anomaly I see under several setups, but not
all the time.
d. Under X setup, this happens sometimes and not other times.
There may be something different from one X to the other, but
I' not seeing it.
What is the impact if this happens all the time?....
NONREPRODUCIBLE BUGS –
DEBUGGING STORY
²»¿É¸´ÏÖBug
ʵս
ר¼Ò̸֮
ר¼Ò̸֮ - 2
AVOID CRITICAL BUG IN THE LATE
DEVELOPMENT
Execute test cases based on priorities
Discover critical bug in the early development stage
• It gets fixed early, less resource waste
• It gives developer more lead time – critical bugs are hard to fix
MOST IMPORTANT
THINGS ON A BUG
Subject, Subject, Subject
• One line
• Exactly pinpoint the problem.
• Accurately describe the problem
Bug 3747 - WebUI 界面上的字体、图标等在 Linux 系统下的显示不
正常
Bug 3774 - 客户端能够通过 Admin 端口与 DUT 建立 PPTP 连接 , 不符
合设计规范
Bug 3768 - admin route: 不能为同一个服务创建多条 admin 路由
Bug 3788 - 在配置 DUT 的时候, DUT 死机
Which one is better?
WHAT IS THE BUG
QUALITY
Reproducible
• Testers filed bug need to be reproducible in developer’s
environment.
• Customer found bugs sometime is hard to reproduce, but that
not tester’s concern.
• Test case is not the step to reproduce.
• Need to find the main cause by ruling our the unrelated
factors. Need to pinpoint the root cause (Strong Analytical
skills).
• 蛛 迹只是 象,需要 一 追踪,找到 的本丝马 现 进 步 问题 质。
ISIC crash the box, can you find out which packet, and why?
HOW TO WRITE A
REPRODUCIBLE BUG
REPORT
A short paragraph for detail description.
A topology file with detail annotation. (IP address, DUT type
etc)
Step to reproduce
• Step 1. execution step with detail output.
• Step 2… execution step with detail output
• Seep 3: where the problem is. What is the expected output,
what is the actual output.
Detail DUT configuration dump,
Anything else (document) you think can claim the
validation of your bug?
Review each others bug reports
AGENDA
Bug filing best practice
Bug follow up best practice
Defect management
Integration of bug tracking system with other engineering
tools
UNDERSTAND BUG
STATE FIRST!
N:
A:
I: Information needed: Take action ASAP
R: Need Tester’s verify. Take action ASAP
V:
Monitor your bug daily: usually you will get an email reminder
whenever a bug state is changed. Pay special attention to “I”
and “R”
Best practice: I and R state bug need to be updated within 24
hours.
Ask your team lead for help, monitoring bug every day is hard.
INTERACT WITH
DEVELOPERS -1
Understand the developer’s response.
It is like writing an email, need to be polite. Need to have start
paragraph and end paragraph.
It needs to be thorough and accurate (provide as many
useful info as possible).
A quick and good response help you gain the respect from
developer.
Ask your team lead for help is a good idea.
INTERACT WITH
DEVELOPERS -2
Meet the programmers who will read your report
The best approach may be to demonstrate your bugs to the
programmers.
When the programmer say it is fixed, make sure it isn’t still
broken
Verify bug fixed promptly
When fixes fail, talk with the programmer.
Bug report should be closed by testers..
AN EXAMPLE OF
QUERY
State-Changed-From-To: open->info
State-Changed-By: murphyw
State-Changed-When: Sun, 24 Jun 2007 23:14:08 -0700
State-Changed-Why:
1. ‘set policy id 1 attack "CS:ftp" action close’, does this CLI mean that
we should drop FTP traffic?
2. Please help to provide debug information on successful case.
3. Please turn on snoop and snoop detail during debugging.
Thanks!
How Would you response?
AGENDA
Bug filing best practice
Bug follow up best practice
Defect management
Integration of bug tracking system with other engineering
tools
DEFECT
MANAGEMENT
How to know how many bugs filed per person, per day – bug search
is your best friend.
How to know how many bugs filed for certain type of testing
• Search for testing type – regression; performance;
functionality;…
• Add key word in front of the bug subject field then search the
keyword
REG: extended access list can not block traffic.
Pre-Test:-Pascal-when the packets can't pass through VPN
tunnel with deep inspect
• Be careful when add the interest field: those are the person
will be notified every time this bug state is changed.
• If there is a field called attribute, use it. It helps to categorize
and manage bugs we filed.
FILING BUG REPORTS
File every bug found (except duplicate bugs), annotate if a
bug:
• Blocker: High priority bug preventing further testing
• Regression: Bugs that introduce in new build
• Unreproducable: Bugs that cannot be reproduced
• Customer found: Bugs found by customers (Beta/FCS)
Pick right Priority (usage) & Severity (impact)
• P3/S1 : Login 200 times with 200 characters user name will
crash the device with exception core dump
• P1/S3 : GUI splash screen misspelled company name
Bug report is a statistics tool, use to predict readiness of
software and future releases
DEFECTS QUALITY
CONTROL PROCESS
BUG TREND
CONVERGENCE
Bug Filed
Release Date
BUG TREND
CONVERGENCE
Bug Fixed
Release Date
Bug Filed
BUG TREND
CONVERGENCE
发现 Bug
正常测试 分散测试
发布日期
Bug 修复
Bug 严重程度
日期
Bug 数目
BUG TREND
CONVERGENCE
发现 Bug
正常测试 分散测试
发布日期
Bug 修复
Bug 严重程度 日期
Bug 数目
BUG TREND
CONVERGENCE
发现 Bug
正常测试 分散测试
发布日期
Bug 修复 Bug 严重程度 日期
Bug 数目
USE BUG TREND TO
FIND QUALITY PROBLEM
USE BUG TREND TO
FIND QUALITY PROBLEM
BUG FIELDS FOR
METRICS
Status
Date Reported
Who Found
Assigned To
Program Area
Severity
Priority
Resolution
INTERESTING BUG
METRICS
Priority 1 Find Rate
− This is the find rate of bugs that at any point in time
become priority 1. It is a retrospective analysis.
Open Bug Aging Report − A histogram of how long bugs
have been open. This is most useful early in long projects.
Deferred Bug Aging Report − A histogram of how long
deferred bugs have been waiting on the list. It helps spot
chronically deferred bugs.
Promotions/Demotions/Deferrals Chart − Three lines that
help us see the triage process at work.
AVOID CONTROL METRICS;
EMBRACE INQUIRY METRICS
A control metric is any metric that drives decisions. − Any
metric you use to control a self-aware system will be used by
that system to control YOU.
An inquiry metric is any metric that helps you ask the right
questions at the right time. − An inquiry metric might look
like a control metric. The difference is how you use it and
what you infer from it.
EXAMPLE CONTROL
METRICS
“The developer who creates the fewest bugs will receive a
bonus.”
“Testers must average at least three bugs found per day.”
“The product may not be released unless we’ve gone at least
one week without finding a bug.”
“The product may not be released with more than 10 high
severity bugs.”
EXAMPLE INQUIRY
METRICS
Why do some developers have more bugs reported on their
code than others? How might it be good to have more bugs
reported? How might it be bad?”
“How do find rates differ among testers? What makes them
differ?”
“What does the bug find rate tell us about the readiness of
the product? Could the find rate be falling because testing is
slack, and not because the product is good?”
“What are the high severity bugs? Should we fix them?”
INQUIRY METRICS
INVITE LEARNING
Observe: You try to see what's happening.
Inquire: You conjecture about the meaning and significance
of the observations. You collect additional observations to
corroborate or refute our conjectures.
Model: You form and improve theories about why the system
behaves as it does, how you know that it behaves that way,
and what you can do about it.
QUESTIONS BUG METRICS MIGHT HELP
WITH TEST PROCESS
Productivity
• − Are the testers working at full speed?
• − Are they speeding up or slowing down?
• − Is anything blocking their work?
• − Are the testers burning out or staying sharp?
• − Are testers and developers getting along together?
Status
• − How close is the test effort to reaching a point of diminishing
returns?
• − What kinds of problems are being found?
• − Is the bug tracking system being used properly?
Focus
• − Are the testers focused on the areas of greatest risk or need?
• − Could the testers use some outside help?
QUESTIONS BUG METRICS MIGHT HELP
WITHQUALITY IMPROVEMENT
Productivity
• − Are the developers working at full speed?
• − Are they speeding up or slowing down?
• − Is anything blocking their work?
Status
• − Is the product improving?
• − How close is the product to being good enough?
• − What must happen in order to meet the schedule?
Focus
• − Is the work distributed effectively among the developers?
• − Do any areas of the product need more attention to improve
more quickly?
• − Is the triage process working well?
DAILY METRICS!
Consider producing a bug metric summary:
• − Daily
• − Automatic
• − Archived
• − Web Based
This becomes a resource for retrospective analysis.
Additionally, daily graphs can help you notice fast breaking
dynamics.
Include weekends in the graphs.
EXAMPLE: WHY WAS CONVERGENCE
HARDER DURING THE SECOND CYCLE?
CYCLE 1 CRITICAL BUGS
CYCLE 2 CRITICAL BUGS
DIFFERENT SLOPS
WHY SLOW CONVERGENCE?
OPEN BUGS BEFORE ENTER
CYCLE 2
LOW PRIORITY BUG WAIT FOR
THE FIX
AGENDA
Bug filing best practice
Bug follow up best practice
Defect management
Integration of bug tracking system with other engineering
tools
VALUE ADDED
DEFECT/CODE
INTEGRATION
Bug system can be integrated with CVS, Subversion etc code
control tool
When check in code, developer can specify the bug id, the
bug will be automatically updated with code diff.
When check in code, developer can specify the bug id, and
bug’s state will be automatically changed to “R”, and trigger
tester to verify it.
Other scenarios you can think of?
This is the area that we can provide the value added for our
customer
THINGS YOU SHOULD
REMEMBER AFTER THIS
Bug quality means it can be reproduced by developers in
their environment.
Most important thing on a bug is its subject
Junk bug is counter productive, and ruin your reputation.
I, R state bug need to be updated ASAP.
Use Sigma Bug Template to file bugs.
BUG REVIEW CHECK
LIST - 1
Is the summary short (about 50-70 characters) and descriptive?
Can you understand the report?
• As you read the description, do you understand what the reporter
did?
• Can you envision what the program did in response?
• Do you understand what the failure was?
Is it obvious where to start (what state to bring the program to)
to replicate the bug?
Is it obvious what files to use (if any)? Is it obvious what you
would type?
Is the replication sequence provided as a numbered set of steps,
which tell you exactly what to do and, when useful, what you
will see?
BUG REVIEW CHECK
LIST - 2
Does the report include unnecessary information, personal
opinions or anecdotes that seem out of place?
Is the tone of the report insulting? Are any words in the
report potentially insulting?
Does the report seem too long? Too short? Does it seem to
have a lot of unnecessary steps? (This is your first
impression—you might be mistaken. After all, you haven’t
replicated it yet. But does it LOOK like there’s a lot of excess
in the report?)
Does the report seem overly general (“Insert a file and you
will see” – what file? What kind of file? Is there an example,
like “Insert a file like blah.foo or blah2.fee”?)
BUG REVIEW CHECK
LIST – 3Can you replicate the bug?
Did you need additional information or steps?
Did you get lost or wonder whether you had done a step
correctly? Would additional feedback (like, “the program will
respond like this...”) have helped?
Did you have to guess about what to do next?
Did you have to change your configuration or environment in
any way that wasn’t specified in the report?
Did some steps appear unnecessary? Were they unnecessary?
Did the description accurately describe the failure?
Did the summary accurate describe the failure?
Does the description include non-factual information (such as
the tester’s guesses about the underlying fault) and if so, does
this information seem credible and useful or not?
BUG REVIEW CHECK
LIST – 4Does the description include non-factual information (such as
the tester’s guesses about the underlying fault) and if so, does
this information seem credible and useful or not?
Does the description include statements about why this bug
would be important to the customer or to someone else?
VERSION CONTROL
1st draft, Dec 7th, 2007, Liang Gao
2nd draft, Dec 27th, 2007, Liang Gao
Bug best practice

Contenu connexe

Tendances

How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopJim Plush
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Grig Gheorghiu
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieQA or the Highway
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testingSiti Rubayati
 
Jason Olson - Test What You've Built
Jason Olson - Test What You've BuiltJason Olson - Test What You've Built
Jason Olson - Test What You've BuiltJohn Zozzaro
 
Digital Transformation, Testing and Automation
Digital Transformation, Testing and AutomationDigital Transformation, Testing and Automation
Digital Transformation, Testing and AutomationTEST Huddle
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateTEST Huddle
 
Software presentation
Software presentationSoftware presentation
Software presentationJennaPrengle
 
Digital transformation testing.
Digital transformation testing. Digital transformation testing.
Digital transformation testing. Deepak Daniel
 
Become Software Tester or Developer
Become Software Tester or DeveloperBecome Software Tester or Developer
Become Software Tester or DeveloperKMS Technology
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarQASymphony
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Edureka!
 
Continuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueContinuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueTechWell
 
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?TechWell
 
Topic production code
Topic production codeTopic production code
Topic production codeKavi Kumar
 

Tendances (20)

How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Software testing
Software testingSoftware testing
Software testing
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
 
Jason Olson - Test What You've Built
Jason Olson - Test What You've BuiltJason Olson - Test What You've Built
Jason Olson - Test What You've Built
 
Digital Transformation, Testing and Automation
Digital Transformation, Testing and AutomationDigital Transformation, Testing and Automation
Digital Transformation, Testing and Automation
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
 
Selenium at Salesforce Scale
Selenium at Salesforce ScaleSelenium at Salesforce Scale
Selenium at Salesforce Scale
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
Digital transformation testing.
Digital transformation testing. Digital transformation testing.
Digital transformation testing.
 
Manual testing1
Manual testing1Manual testing1
Manual testing1
 
Become Software Tester or Developer
Become Software Tester or DeveloperBecome Software Tester or Developer
Become Software Tester or Developer
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Tdd dev session
Tdd dev sessionTdd dev session
Tdd dev session
 
Closing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop WebinarClosing the Requirements and Testing Loop Webinar
Closing the Requirements and Testing Loop Webinar
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
 
Continuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueContinuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the Rescue
 
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
 
Topic production code
Topic production codeTopic production code
Topic production code
 

En vedette

How to become a testing expert
How to become a testing expertHow to become a testing expert
How to become a testing expertgaoliang641
 
Make good use of explortary testing
Make good use of explortary testingMake good use of explortary testing
Make good use of explortary testinggaoliang641
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projectsgaoliang641
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projectsgaoliang641
 
Lessons learned on localization testing
Lessons learned on localization testingLessons learned on localization testing
Lessons learned on localization testinggaoliang641
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goalsgaoliang641
 
Protocol Security Testing best practice
Protocol Security Testing best practiceProtocol Security Testing best practice
Protocol Security Testing best practicegaoliang641
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interactiongaoliang641
 
Automation framework design and implementation
Automation framework design and implementationAutomation framework design and implementation
Automation framework design and implementationgaoliang641
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automationgaoliang641
 
Why we didn't catch that application bugs
Why we didn't catch that   application bugsWhy we didn't catch that   application bugs
Why we didn't catch that application bugsgaoliang641
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testinggaoliang641
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
Tester performance evaluation
Tester performance evaluationTester performance evaluation
Tester performance evaluationgaoliang641
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testinggaoliang641
 
Project management for qa manager
Project management for qa managerProject management for qa manager
Project management for qa managergaoliang641
 
Tester career path
Tester career pathTester career path
Tester career pathgaoliang641
 

En vedette (19)

How to become a testing expert
How to become a testing expertHow to become a testing expert
How to become a testing expert
 
Make good use of explortary testing
Make good use of explortary testingMake good use of explortary testing
Make good use of explortary testing
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projects
 
Char Davies
Char DaviesChar Davies
Char Davies
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projects
 
Lessons learned on localization testing
Lessons learned on localization testingLessons learned on localization testing
Lessons learned on localization testing
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goals
 
Retratos
RetratosRetratos
Retratos
 
Protocol Security Testing best practice
Protocol Security Testing best practiceProtocol Security Testing best practice
Protocol Security Testing best practice
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interaction
 
Automation framework design and implementation
Automation framework design and implementationAutomation framework design and implementation
Automation framework design and implementation
 
Lessons learned on software testing automation
Lessons learned on software testing automationLessons learned on software testing automation
Lessons learned on software testing automation
 
Why we didn't catch that application bugs
Why we didn't catch that   application bugsWhy we didn't catch that   application bugs
Why we didn't catch that application bugs
 
The art of system and solution testing
The art of system and solution testingThe art of system and solution testing
The art of system and solution testing
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Tester performance evaluation
Tester performance evaluationTester performance evaluation
Tester performance evaluation
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
Project management for qa manager
Project management for qa managerProject management for qa manager
Project management for qa manager
 
Tester career path
Tester career pathTester career path
Tester career path
 

Similaire à Bug best practice

Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing techniques
Testing techniquesTesting techniques
Testing techniquescnpltesters
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226MBA_Community
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-TestingMary Clemons
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choicetoddbr
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652ngothanhtungth
 
Info manual testing questions
Info manual testing questionsInfo manual testing questions
Info manual testing questionsSandeep
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECHPravinsinh
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experiencedzynofustechnology
 
Bug reporting and tracking
Bug reporting and trackingBug reporting and tracking
Bug reporting and trackingVadym Muliavka
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsTechWell
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questionsBABAR MANZAR
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineeringkiansahafi
 
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBWebinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBMongoDB
 
How to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality TesterHow to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality Testerjeetendra mandal
 

Similaire à Bug best practice (20)

Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacy
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing techniques
Testing techniquesTesting techniques
Testing techniques
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652179 black-box-software-testing-copyright-2003-cem-kaner1652
179 black-box-software-testing-copyright-2003-cem-kaner1652
 
Info manual testing questions
Info manual testing questionsInfo manual testing questions
Info manual testing questions
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experienced
 
Bug reporting and tracking
Bug reporting and trackingBug reporting and tracking
Bug reporting and tracking
 
The art of Bugging
The art of BuggingThe art of Bugging
The art of Bugging
 
Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
 
Manual testing interview questions
Manual testing interview questionsManual testing interview questions
Manual testing interview questions
 
Testing overview
Testing overviewTesting overview
Testing overview
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineering
 
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDBWebinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
Webinar: Keep Calm and Scale Out - A proactive guide to Monitoring MongoDB
 
How to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality TesterHow to become a Software Tester Carrier Path for Software Quality Tester
How to become a Software Tester Carrier Path for Software Quality Tester
 
Faq
FaqFaq
Faq
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Bug best practice

  • 1. BUG BEST PRACTICE LIANG GAO (LIANGG@GMAIL.COM)
  • 2. AGENDA Bug filing best practice You should learn…. Value added for bug management Defect management Bug follow up best practice
  • 3. BUG IS IMPORTANT Your performance is partially judged by the quality and amount of the bug you filed. As an engineer, reputation is the most important thing. A tester’s reputation is as good as the quality of your bug can get. Most of the time, it is the only way you communicate with the developer. Who will read your bug report? – developer, your managers, developer’s manager, product manager, marketing folks, customers……
  • 4. WHERE ARE BUGS COME FROM? Laziness (does not perform error handling) Inexperience (does not know the impact of code changes) Carelessness (blind cut-n-paste) Bad design/infrastructure (bad module design  un- maintainable code) Incomplete documentation (misunderstood customer requirements, missing information in func spec) Complexity of software (hard to maintain/enhance/test) Bad tools (compiler, CM tool, merge tool, etc) Lack unit-level testing (misses lots of basic bugs) Time pressure (fatigue)  Laziness and carelessness  Code scales linearly, the complexity scales exponentially
  • 5. THE QUALITY OF A TESTERScript Quality Test Case Quality Bug Quality Case Execution Quality
  • 6. HOW TO FIND A BUG? You think it is a bug because? • Understand the product/function spec correctly • Understand the use case scenarios correctly • Put yourself in a user’s perspective. • Your experience counts a lot, 上 兵纸 谈 is harmful Bad bugs cause you trouble • Junk bug is counter productivity, and ruin your reputation • Bad documented bugs cause you a lot of time and energy, like…. living in a nightmare.
  • 7. HOW TO FIND A BUG? Debugging is like watching Magic Tricks (Michael Amma17:40 - 19:00) James Brown 5:10
  • 8. WHY I CAN FIND HIGH QUALITY BUGS BUT YOU CAN’T? High quality bug • Affect the major functionality QoS still work after delete the configuration • Not Cosmetic Bug 3744 - WebUI 的导航栏没有滚动条 , 不便于用户浏览操 作 Because I understand the functionality deeper than you Because I use more testing types than you. Because I design more use case than you Because I carefully execute the cases than you Because I pay more attention to the details than you. Because once I found a crack, I’ll keep on going, but you didn’t
  • 9. NONREPRODUCIBLE BUGS – HEADACHE? Random is not equal to irreproducible
  • 10. NONREPRODUCIBLE BUGS – HEADACHE? Always report non-reproducible bugs, they might be time bombs. Non-reproducible bugs are always reproducible. • Timing and delay? • Only happen during installation • Depend on some data like corrupted database? • Sequence of the execution? • Interaction with other programs in the background?
  • 11. NONREPRODUCIBLE BUGS – ELABORATE a. I saw this one, but was never able to make it happen again. b. I see this when I run with this setup, but sometimes I don't. c. This is the same anomaly I see under several setups, but not all the time. d. Under X setup, this happens sometimes and not other times. There may be something different from one X to the other, but I' not seeing it. What is the impact if this happens all the time?....
  • 12. NONREPRODUCIBLE BUGS – DEBUGGING STORY ²»¿É¸´ÏÖBug ʵս ר¼Ò̸֮ ר¼Ò̸֮ - 2
  • 13. AVOID CRITICAL BUG IN THE LATE DEVELOPMENT Execute test cases based on priorities Discover critical bug in the early development stage • It gets fixed early, less resource waste • It gives developer more lead time – critical bugs are hard to fix
  • 14. MOST IMPORTANT THINGS ON A BUG Subject, Subject, Subject • One line • Exactly pinpoint the problem. • Accurately describe the problem Bug 3747 - WebUI 界面上的字体、图标等在 Linux 系统下的显示不 正常 Bug 3774 - 客户端能够通过 Admin 端口与 DUT 建立 PPTP 连接 , 不符 合设计规范 Bug 3768 - admin route: 不能为同一个服务创建多条 admin 路由 Bug 3788 - 在配置 DUT 的时候, DUT 死机 Which one is better?
  • 15. WHAT IS THE BUG QUALITY Reproducible • Testers filed bug need to be reproducible in developer’s environment. • Customer found bugs sometime is hard to reproduce, but that not tester’s concern. • Test case is not the step to reproduce. • Need to find the main cause by ruling our the unrelated factors. Need to pinpoint the root cause (Strong Analytical skills). • 蛛 迹只是 象,需要 一 追踪,找到 的本丝马 现 进 步 问题 质。 ISIC crash the box, can you find out which packet, and why?
  • 16. HOW TO WRITE A REPRODUCIBLE BUG REPORT A short paragraph for detail description. A topology file with detail annotation. (IP address, DUT type etc) Step to reproduce • Step 1. execution step with detail output. • Step 2… execution step with detail output • Seep 3: where the problem is. What is the expected output, what is the actual output. Detail DUT configuration dump, Anything else (document) you think can claim the validation of your bug? Review each others bug reports
  • 17. AGENDA Bug filing best practice Bug follow up best practice Defect management Integration of bug tracking system with other engineering tools
  • 18. UNDERSTAND BUG STATE FIRST! N: A: I: Information needed: Take action ASAP R: Need Tester’s verify. Take action ASAP V: Monitor your bug daily: usually you will get an email reminder whenever a bug state is changed. Pay special attention to “I” and “R” Best practice: I and R state bug need to be updated within 24 hours. Ask your team lead for help, monitoring bug every day is hard.
  • 19. INTERACT WITH DEVELOPERS -1 Understand the developer’s response. It is like writing an email, need to be polite. Need to have start paragraph and end paragraph. It needs to be thorough and accurate (provide as many useful info as possible). A quick and good response help you gain the respect from developer. Ask your team lead for help is a good idea.
  • 20. INTERACT WITH DEVELOPERS -2 Meet the programmers who will read your report The best approach may be to demonstrate your bugs to the programmers. When the programmer say it is fixed, make sure it isn’t still broken Verify bug fixed promptly When fixes fail, talk with the programmer. Bug report should be closed by testers..
  • 21. AN EXAMPLE OF QUERY State-Changed-From-To: open->info State-Changed-By: murphyw State-Changed-When: Sun, 24 Jun 2007 23:14:08 -0700 State-Changed-Why: 1. ‘set policy id 1 attack "CS:ftp" action close’, does this CLI mean that we should drop FTP traffic? 2. Please help to provide debug information on successful case. 3. Please turn on snoop and snoop detail during debugging. Thanks! How Would you response?
  • 22. AGENDA Bug filing best practice Bug follow up best practice Defect management Integration of bug tracking system with other engineering tools
  • 23. DEFECT MANAGEMENT How to know how many bugs filed per person, per day – bug search is your best friend. How to know how many bugs filed for certain type of testing • Search for testing type – regression; performance; functionality;… • Add key word in front of the bug subject field then search the keyword REG: extended access list can not block traffic. Pre-Test:-Pascal-when the packets can't pass through VPN tunnel with deep inspect • Be careful when add the interest field: those are the person will be notified every time this bug state is changed. • If there is a field called attribute, use it. It helps to categorize and manage bugs we filed.
  • 24. FILING BUG REPORTS File every bug found (except duplicate bugs), annotate if a bug: • Blocker: High priority bug preventing further testing • Regression: Bugs that introduce in new build • Unreproducable: Bugs that cannot be reproduced • Customer found: Bugs found by customers (Beta/FCS) Pick right Priority (usage) & Severity (impact) • P3/S1 : Login 200 times with 200 characters user name will crash the device with exception core dump • P1/S3 : GUI splash screen misspelled company name Bug report is a statistics tool, use to predict readiness of software and future releases
  • 28. BUG TREND CONVERGENCE 发现 Bug 正常测试 分散测试 发布日期 Bug 修复 Bug 严重程度 日期 Bug 数目
  • 29. BUG TREND CONVERGENCE 发现 Bug 正常测试 分散测试 发布日期 Bug 修复 Bug 严重程度 日期 Bug 数目
  • 30. BUG TREND CONVERGENCE 发现 Bug 正常测试 分散测试 发布日期 Bug 修复 Bug 严重程度 日期 Bug 数目
  • 31. USE BUG TREND TO FIND QUALITY PROBLEM
  • 32. USE BUG TREND TO FIND QUALITY PROBLEM
  • 33. BUG FIELDS FOR METRICS Status Date Reported Who Found Assigned To Program Area Severity Priority Resolution
  • 34. INTERESTING BUG METRICS Priority 1 Find Rate − This is the find rate of bugs that at any point in time become priority 1. It is a retrospective analysis. Open Bug Aging Report − A histogram of how long bugs have been open. This is most useful early in long projects. Deferred Bug Aging Report − A histogram of how long deferred bugs have been waiting on the list. It helps spot chronically deferred bugs. Promotions/Demotions/Deferrals Chart − Three lines that help us see the triage process at work.
  • 35. AVOID CONTROL METRICS; EMBRACE INQUIRY METRICS A control metric is any metric that drives decisions. − Any metric you use to control a self-aware system will be used by that system to control YOU. An inquiry metric is any metric that helps you ask the right questions at the right time. − An inquiry metric might look like a control metric. The difference is how you use it and what you infer from it.
  • 36. EXAMPLE CONTROL METRICS “The developer who creates the fewest bugs will receive a bonus.” “Testers must average at least three bugs found per day.” “The product may not be released unless we’ve gone at least one week without finding a bug.” “The product may not be released with more than 10 high severity bugs.”
  • 37. EXAMPLE INQUIRY METRICS Why do some developers have more bugs reported on their code than others? How might it be good to have more bugs reported? How might it be bad?” “How do find rates differ among testers? What makes them differ?” “What does the bug find rate tell us about the readiness of the product? Could the find rate be falling because testing is slack, and not because the product is good?” “What are the high severity bugs? Should we fix them?”
  • 38. INQUIRY METRICS INVITE LEARNING Observe: You try to see what's happening. Inquire: You conjecture about the meaning and significance of the observations. You collect additional observations to corroborate or refute our conjectures. Model: You form and improve theories about why the system behaves as it does, how you know that it behaves that way, and what you can do about it.
  • 39. QUESTIONS BUG METRICS MIGHT HELP WITH TEST PROCESS Productivity • − Are the testers working at full speed? • − Are they speeding up or slowing down? • − Is anything blocking their work? • − Are the testers burning out or staying sharp? • − Are testers and developers getting along together? Status • − How close is the test effort to reaching a point of diminishing returns? • − What kinds of problems are being found? • − Is the bug tracking system being used properly? Focus • − Are the testers focused on the areas of greatest risk or need? • − Could the testers use some outside help?
  • 40. QUESTIONS BUG METRICS MIGHT HELP WITHQUALITY IMPROVEMENT Productivity • − Are the developers working at full speed? • − Are they speeding up or slowing down? • − Is anything blocking their work? Status • − Is the product improving? • − How close is the product to being good enough? • − What must happen in order to meet the schedule? Focus • − Is the work distributed effectively among the developers? • − Do any areas of the product need more attention to improve more quickly? • − Is the triage process working well?
  • 41. DAILY METRICS! Consider producing a bug metric summary: • − Daily • − Automatic • − Archived • − Web Based This becomes a resource for retrospective analysis. Additionally, daily graphs can help you notice fast breaking dynamics. Include weekends in the graphs.
  • 42. EXAMPLE: WHY WAS CONVERGENCE HARDER DURING THE SECOND CYCLE?
  • 47. OPEN BUGS BEFORE ENTER CYCLE 2
  • 48. LOW PRIORITY BUG WAIT FOR THE FIX
  • 49. AGENDA Bug filing best practice Bug follow up best practice Defect management Integration of bug tracking system with other engineering tools
  • 50. VALUE ADDED DEFECT/CODE INTEGRATION Bug system can be integrated with CVS, Subversion etc code control tool When check in code, developer can specify the bug id, the bug will be automatically updated with code diff. When check in code, developer can specify the bug id, and bug’s state will be automatically changed to “R”, and trigger tester to verify it. Other scenarios you can think of? This is the area that we can provide the value added for our customer
  • 51. THINGS YOU SHOULD REMEMBER AFTER THIS Bug quality means it can be reproduced by developers in their environment. Most important thing on a bug is its subject Junk bug is counter productive, and ruin your reputation. I, R state bug need to be updated ASAP. Use Sigma Bug Template to file bugs.
  • 52. BUG REVIEW CHECK LIST - 1 Is the summary short (about 50-70 characters) and descriptive? Can you understand the report? • As you read the description, do you understand what the reporter did? • Can you envision what the program did in response? • Do you understand what the failure was? Is it obvious where to start (what state to bring the program to) to replicate the bug? Is it obvious what files to use (if any)? Is it obvious what you would type? Is the replication sequence provided as a numbered set of steps, which tell you exactly what to do and, when useful, what you will see?
  • 53. BUG REVIEW CHECK LIST - 2 Does the report include unnecessary information, personal opinions or anecdotes that seem out of place? Is the tone of the report insulting? Are any words in the report potentially insulting? Does the report seem too long? Too short? Does it seem to have a lot of unnecessary steps? (This is your first impression—you might be mistaken. After all, you haven’t replicated it yet. But does it LOOK like there’s a lot of excess in the report?) Does the report seem overly general (“Insert a file and you will see” – what file? What kind of file? Is there an example, like “Insert a file like blah.foo or blah2.fee”?)
  • 54. BUG REVIEW CHECK LIST – 3Can you replicate the bug? Did you need additional information or steps? Did you get lost or wonder whether you had done a step correctly? Would additional feedback (like, “the program will respond like this...”) have helped? Did you have to guess about what to do next? Did you have to change your configuration or environment in any way that wasn’t specified in the report? Did some steps appear unnecessary? Were they unnecessary? Did the description accurately describe the failure? Did the summary accurate describe the failure? Does the description include non-factual information (such as the tester’s guesses about the underlying fault) and if so, does this information seem credible and useful or not?
  • 55. BUG REVIEW CHECK LIST – 4Does the description include non-factual information (such as the tester’s guesses about the underlying fault) and if so, does this information seem credible and useful or not? Does the description include statements about why this bug would be important to the customer or to someone else?
  • 56. VERSION CONTROL 1st draft, Dec 7th, 2007, Liang Gao 2nd draft, Dec 27th, 2007, Liang Gao