SlideShare a Scribd company logo
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

More Related Content

PPTX
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
PPTX
How to Add Test Automation to your Quality Assurance Toolbelt
PDF
Software Defects and SW Reliability Assessment
PPSX
Developers Border Line: Unit Testing
PDF
Testing in a glance
PDF
Tec314f
PPTX
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
PDF
Bug Advocacy
Risk Mitigation Using Exploratory and Technical Testing | QASymphony Webinar
How to Add Test Automation to your Quality Assurance Toolbelt
Software Defects and SW Reliability Assessment
Developers Border Line: Unit Testing
Testing in a glance
Tec314f
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Bug Advocacy

What's hot (20)

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

Viewers also liked (19)

PPT
How to become a testing expert
PPT
Make good use of explortary testing
PPT
Agile testing for large projects
PPT
Char Davies
PPT
Agile testing for large projects
PPT
Lessons learned on localization testing
PPT
Backward thinking design qa system for quality goals
PPT
PPT
Protocol Security Testing best practice
PPT
Tester developer interaction
PPT
Automation framework design and implementation
PPT
Lessons learned on software testing automation
PPT
Why we didn't catch that application bugs
PPT
The art of system and solution testing
PPT
Understand release engineering
PPT
Tester performance evaluation
PPT
Understand regression testing
PPT
Project management for qa manager
PPT
Tester career path
How to become a testing expert
Make good use of explortary testing
Agile testing for large projects
Char Davies
Agile testing for large projects
Lessons learned on localization testing
Backward thinking design qa system for quality goals
Protocol Security Testing best practice
Tester developer interaction
Automation framework design and implementation
Lessons learned on software testing automation
Why we didn't catch that application bugs
The art of system and solution testing
Understand release engineering
Tester performance evaluation
Understand regression testing
Project management for qa manager
Tester career path
Ad

Similar to Bug best practice (20)

PPTX
Supercharging your bug reports
PDF
Bug Life Cycle in Software Testing: Understanding the Journey from Detection ...
PDF
Defect Metrics for Organization and Project Health
PDF
bug-advocacy
PPTX
The art of Bugging
PPT
Ticket101
PDF
Bugs and non-technical client
PPT
Bug Advocacy
PPTX
Bug reporting and tracking
PPTX
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
PPTX
Bug life cycle
PPTX
Continuous Quality - Moving Beyond Bug Reports
PPTX
Bug tracking tool
PDF
Bug reporting
PDF
Effective Bug Identification-Best Practices and Techniques
PDF
An Introduction To Software Development - Final Review
PDF
When the System Creaks: Lessons Learned in Agile Maintenance
PDF
Bug Process & Power_of_QA
PPT
Bug Reporting
PDF
IRJET- Data Reduction in Bug Triage using Supervised Machine Learning
Supercharging your bug reports
Bug Life Cycle in Software Testing: Understanding the Journey from Detection ...
Defect Metrics for Organization and Project Health
bug-advocacy
The art of Bugging
Ticket101
Bugs and non-technical client
Bug Advocacy
Bug reporting and tracking
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
Bug life cycle
Continuous Quality - Moving Beyond Bug Reports
Bug tracking tool
Bug reporting
Effective Bug Identification-Best Practices and Techniques
An Introduction To Software Development - Final Review
When the System Creaks: Lessons Learned in Agile Maintenance
Bug Process & Power_of_QA
Bug Reporting
IRJET- Data Reduction in Bug Triage using Supervised Machine Learning

Recently uploaded (20)

PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PPTX
A Presentation on Artificial Intelligence
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
cuic standard and advanced reporting.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Weekly Chronicles - August'25 Week I
CIFDAQ's Market Insight: SEC Turns Pro Crypto
A Presentation on Artificial Intelligence
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
cuic standard and advanced reporting.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Big Data Technologies - Introduction.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx
Spectral efficient network and resource selection model in 5G networks
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...

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