what makes a good bug report?

58
What makes a good bug report? Thomas Zimmermann Saarland University Sascha Just Saarland University Adrian Schröter Saarland University Nicolas Bettenburg Saarland University Cathrin Weiss Saarland University Rahul Premraj Saarland University 1

Upload: rahul-premraj

Post on 13-Dec-2014

1.402 views

Category:

Technology


0 download

DESCRIPTION

Presented at the International Symposium on Foundations of Software Engineering \'08, Atlanta.

TRANSCRIPT

Page 1: What makes a good bug report?

What makes agood bug report?

Thomas ZimmermannSaarland University

Sascha JustSaarland University

Adrian SchröterSaarland University

Nicolas BettenburgSaarland University

Cathrin WeissSaarland University

Rahul PremrajSaarland University

1

Page 2: What makes a good bug report?

What makes agood bug report?

Thomas ZimmermannUniversity of Calgary

Sascha JustSaarland University

Adrian SchröterUniversity of Victoria

Nicolas BettenburgQueen’s University

Cathrin WeissUniversity of Zurich

Rahul PremrajFree Uni. Amsterdam

Page 3: What makes a good bug report?

What makes agood bug report?

Thomas ZimmermannMicrosoft Research

Sascha JustSaarland University

Adrian SchröterUniversity of Victoria

Nicolas BettenburgQueen’s University

Cathrin WeissUniversity of Zurich

Rahul PremrajFree Uni. Amsterdam

Page 4: What makes a good bug report?

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

4

Page 5: What makes a good bug report?

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

CONTACT LEGAL

Bugzilla – Full Text Bug Listing

Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

Actions:Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

4

Page 6: What makes a good bug report?

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

CONTACT LEGAL

Bugzilla – Full Text Bug Listing

Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

Actions:Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

4

Page 7: What makes a good bug report?

Description: Opened: 2007-02-22 23:35 -0400

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had

made a R&D in eclipse documentation. I had get an idea about create a plugin

using Java. But i wand to create a new plugin ( user defined plugin ) using

CDT. After that I wand to impliment it in my programe. If it possible?. Any

one can help me please...

Bug 175222

Summary: Create a new plugin using CDT.

Product: [Tools] CDT Reporter: Sabeesh C.S. <[email protected]>

Component: cdt-build Assignee: [email protected] <cdt-build-

[email protected]>

Status: RESOLVED

INVALID

QA Contact:

Severity: normal

Priority: P3 CC: [email protected]

Version: 3.1.1

Target Milestone: ---

Hardware: PC

OS: Linux

Whiteboard:

Description: Opened: 2007-02-22 23:35 -0400

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had

made a R&D in eclipse documentation. I had get an idea about create a plugin

using Java. But i wand to create a new plugin ( user defined plugin ) using

CDT. After that I wand to impliment it in my programe. If it possible?. Any

one can help me please...

------- Comment #1 From Norbert Plött 2007-02-23 01:55:42 -0400 -------

Saabeesh,

the way I understand it you want to create a plug-in and do the code

implementation in C/C++ using the CDT. Eclipse supports only Java

implementations. In theory you could probably call into your C/C++ library via

the Java native interface but this is probably not what you want to do.

In any case you would need to create at least a Java wrapper around your

implementation.

Do I read you right?

------- Comment #2 From Chris Recoskie 2007-02-23 08:14:04 -0400 -------

I don't see a bug or enhancement described here... this question belongs on the

newsgroup.

CONTACT LEGAL

Bugzilla – Full Text Bug Listing

Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

Bug 175222

Summary: Create a new plugin using CDT.

Product: [Tools] CDT Reporter: Sabeesh C.S. <[email protected]>

Component: cdt-build Assignee: [email protected] <cdt-build-

[email protected]>

Status: RESOLVED

INVALID

QA Contact:

Severity: normal

Priority: P3 CC: [email protected]

Version: 3.1.1

Target Milestone: ---

Hardware: PC

OS: Linux

Whiteboard:

Description: Opened: 2007-02-22 23:35 -0400

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had

made a R&D in eclipse documentation. I had get an idea about create a plugin

using Java. But i wand to create a new plugin ( user defined plugin ) using

CDT. After that I wand to impliment it in my programe. If it possible?. Any

one can help me please...

------- Comment #1 From Norbert Plött 2007-02-23 01:55:42 -0400 -------

Saabeesh,

the way I understand it you want to create a plug-in and do the code

implementation in C/C++ using the CDT. Eclipse supports only Java

implementations. In theory you could probably call into your C/C++ library via

the Java native interface but this is probably not what you want to do.

In any case you would need to create at least a Java wrapper around your

implementation.

Do I read you right?

------- Comment #2 From Chris Recoskie 2007-02-23 08:14:04 -0400 -------

I don't see a bug or enhancement described here... this question belongs on the

newsgroup.

Actions:Home | New | Search | Find | Reports | Requests | New Account | Log In | Terms of Use

5

Page 8: What makes a good bug report?

2

Cuezilla

1

Survey

6

Page 9: What makes a good bug report?

2

Cuezilla

1

Survey

6

Page 10: What makes a good bug report?

Survey the users

872 developers 1,354 reporterswith at least 50 bugs

assigned to them.who have reported at least 30 bugs.

7

Page 11: What makes a good bug report?

Survey the users

872 developers 1,354 reporters156 responses (19%) 310 responses (26%)

8

Page 12: What makes a good bug report?

Survey’s aim

9

Page 13: What makes a good bug report?

Survey’s aim

Learn developers’ problems and information needs—and

what reporters provide.

9

Page 14: What makes a good bug report?

product namecomponent nameoperating systemobserved behaviourexpected behaviour

You were given wrongcode examplessteps to reproducetest casesstack traces

There were errors inbad grammarunstructured textprose texttoo long textno spell check

The reporter usedduplicatesspamincomplete info.viruses/worms

Others

Problems faced

10

Page 15: What makes a good bug report?

Question 1Which of the following problems have your encountered when fixing bugs?(select as many as you wish)

product namecomponent nameoperating systemobserved behaviourexpected behaviour

You were given wrongcode examplessteps to reproducetest casesstack traces

There were errors inbad grammarunstructured textprose texttoo long textno spell check

The reporter usedduplicatesspamincomplete info.viruses/worms

Others

Problems faced

10

Page 16: What makes a good bug report?

Question 1Which of the following problems have your encountered when fixing bugs?(select as many as you wish)

Question 2Which three caused you the most delay in fixing bugs?(select at most three items)

product namecomponent nameoperating systemobserved behaviourexpected behaviour

You were given wrongcode examplessteps to reproducetest casesstack traces

There were errors inbad grammarunstructured textprose texttoo long textno spell check

The reporter usedduplicatesspamincomplete info.viruses/worms

Others

Problems faced

10

Page 17: What makes a good bug report?

ResponsesM

ost d

elay

cau

sed

Encountered when fixing a bug11

Page 18: What makes a good bug report?

ResponsesM

ost d

elay

cau

sed

Encountered when fixing a bug viruses/spam

wrong system information

11

Page 19: What makes a good bug report?

ResponsesM

ost d

elay

cau

sed

Encountered when fixing a bug viruses/spam

wrong system information

errors in test casesduplicates

bad grammar

11

Page 20: What makes a good bug report?

ResponsesM

ost d

elay

cau

sed

Encountered when fixing a bug viruses/spam

wrong system information

errors in test casesduplicates

bad grammar

wrong observed behaviourwrong expected behaviour

wrong product information

11

Page 21: What makes a good bug report?

ResponsesM

ost d

elay

cau

sed

Encountered when fixing a bug viruses/spam

wrong system information

errors in test casesduplicates

bad grammar

wrong observed behaviourwrong expected behaviour

wrong product information

erroneous steps to reproduce

incomplete information

11

Page 22: What makes a good bug report?

productcomponentversionseverity

hardwareoperating systemsummarybuild information

observed behaviourexpected behavioursteps to reproducestack traces

screen shotscode exampleserror reportstest cases

Information needs

12

Page 23: What makes a good bug report?

productcomponentversionseverity

hardwareoperating systemsummarybuild information

observed behaviourexpected behavioursteps to reproducestack traces

screen shotscode exampleserror reportstest cases

Question 1Question 3Which of the following items have you previously used when fixing bugs?(select as many as you wish)

Information needs

12

Page 24: What makes a good bug report?

productcomponentversionseverity

hardwareoperating systemsummarybuild information

observed behaviourexpected behavioursteps to reproducestack traces

screen shotscode exampleserror reportstest cases

Question 1Question 3Which of the following items have you previously used when fixing bugs?(select as many as you wish)

Which three items helped you the most?(select at most three items)

Question 4

Information needs

12

Page 25: What makes a good bug report?

ResponsesHe

lped

mos

t

Used when fixing a bug13

Page 26: What makes a good bug report?

ResponsesHe

lped

mos

t

Used when fixing a bughardware severity

version

13

Page 27: What makes a good bug report?

ResponsesHe

lped

mos

t

Used when fixing a bughardware severity

version

expected behavior

test cases/examples

observed behavior

screenshots

13

Page 28: What makes a good bug report?

ResponsesHe

lped

mos

t

Used when fixing a bughardware severity

version

expected behavior

test cases/examples

observed behavior

screenshots

steps to reproduce

stack traces

13

Page 29: What makes a good bug report?

productcomponentversionseverity

hardwareoperating systemsummarybuild information

observed behaviourexpected behavioursteps to reproducestack traces

screen shotscode exampleserror reportstest cases

Same options as for developers

Questions to reporters

14

Page 30: What makes a good bug report?

productcomponentversionseverity

hardwareoperating systemsummarybuild information

observed behaviourexpected behavioursteps to reproducestack traces

screen shotscode exampleserror reportstest cases

Same options as for developers

Question 1What information have you previously provided in bug reports?(select as many as you wish)

Questions to reporters

14

Page 31: What makes a good bug report?

Question 2What of the above information was most difficult to provide?(select at most three items)

Question 3In your opinion, what information is most relevant to developers?(select at most three items)

Question 1What information have you previously provided in bug reports?(select as many as you wish)

Questions to reporters

15

Page 32: What makes a good bug report?

Rated most helpfulby developers

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information16

Page 33: What makes a good bug report?

Provided bymost reporters

Rated most helpfulby developers

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information16

Page 34: What makes a good bug report?

Provided bymost reporters

Rated most helpfulby developers

Rated most helpfulby reporters

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information16

Page 35: What makes a good bug report?

Provided bymost reporters

Rated most helpfulby developers

Rated helpfulby most reporters

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information17

Page 36: What makes a good bug report?

Provided bymost reporters

Rated most helpfulby developers

Rated helpfulby most reporters

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information17

Reporters need bettertool assistance.

Page 37: What makes a good bug report?

Provided bymost reporters

Rated most helpfulby developers

Rated helpfulby most reporters

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information18

Page 38: What makes a good bug report?

2

Cuezilla

1

Survey

19

Page 39: What makes a good bug report?

Assist reporters

20

Page 40: What makes a good bug report?

Assist reporters

20

Page 41: What makes a good bug report?

Assist reporters

20

Page 42: What makes a good bug report?

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had made a R&D in eclipse documentation. I had get an idea about create a plugin using Java. But i wand to create a new plugin ( user defined plugin ) using CDT. After that I wand to impliment it in my programe. If it possible?. Any one can help me please...

Create a new plugin using CDT.

Rating bug reports

21

Page 43: What makes a good bug report?

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had made a R&D in eclipse documentation. I had get an idea about create a plugin using Java. But i wand to create a new plugin ( user defined plugin ) using CDT. After that I wand to impliment it in my programe. If it possible?. Any one can help me please...

Create a new plugin using CDT.

Poor Average Good

Rating bug reports

21

Page 44: What makes a good bug report?

I wand to create a new plugin in Eclipse using CDT. Shall it possible. I had made a R&D in eclipse documentation. I had get an idea about create a plugin using Java. But i wand to create a new plugin ( user defined plugin ) using CDT. After that I wand to impliment it in my programe. If it possible?. Any one can help me please...

Create a new plugin using CDT.

Poor Average Good

Rating bug reportsTotal votes received: 1,186Total reports voted: 289

21

Page 45: What makes a good bug report?

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

CUEZILLA

22

Page 46: What makes a good bug report?

Bug 31021

Summary: Tree - Selection listener stops default expansion

Product: [Eclipse] Platform Reporter: Veronika Irvine <[email protected]>

Component: SWT Assignee: Steve Northover <[email protected]>

Status: RESOLVED WONTFIX QA Contact:

Severity: normal

Priority: P3

Version: 2.1

Target Milestone: ---

Hardware: PC

OS: Windows XP

Whiteboard:

Description: Opened: 2003-02-05 14:52 -0400

I20030205

Run the following example. Double click on a tree item and notice that it does

not expand.

Comment out the Selection listener and now double click on any tree item and

notice that it expands.

public static void main(String[] args) {

Display display = new Display();

Shell shell = new Shell(display);

shell.setLayout(new FillLayout());

Tree tree = new Tree(shell, SWT.BORDER);

for (int i = 0; i < 4; i++) {

TreeItem item = new TreeItem(tree, SWT.NONE);

item.setText("item " + i);

for (int j = 0; j < 4; j++) {

TreeItem subItem = new TreeItem(item, SWT.NONE);

subItem.setText("item " + j);

for (int k = 0; k < 4; k++) {

TreeItem subsubItem = new TreeItem(subItem,

SWT.NONE);

subsubItem.setText("item " + k);

}

}

}

tree.addSelectionListener(new SelectionAdapter() {});

shell.setSize(200, 200);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

------- Comment #1 From Steve Northover 2004-10-07 19:39:16 -0400 -------

This behavior can't be changed now because application code now relies on it.

Sorry.

CUEZILLA

22

Page 47: What makes a good bug report?

CUEZILLA

detects Itemisations

Keywords

Code samples

Stack traces

Patches

Screenshots

computes Readability23

Page 48: What makes a good bug report?

Build and evaluate Cuezillabuild

CUEZILLA

24

Page 49: What makes a good bug report?

Build and evaluate Cuezilla

CUEZILLA

evaluate

build

CUEZILLA

24

Page 50: What makes a good bug report?

Within projects

Evaluation Setup

25

Page 51: What makes a good bug report?

Within projects

Evaluation Setup

48% agreement91% off by one

25

Page 52: What makes a good bug report?

Make recommendations

CUEZILLA

+ Stack trace

26

Page 53: What makes a good bug report?

Make recommendations

CUEZILLA

+ Stack trace

26

Page 54: What makes a good bug report?

Incentives to reporters

27

Page 55: What makes a good bug report?

• Bug reports containing stack traces get fixed sooner.

• Bug reports that are easier to read have lower lifetimes.

• Code samples in your bug report increase chances of it getting fixed.

Incentives to reporters

28

Page 56: What makes a good bug report?

Duplicates

Duplicates often add useful information. That this information is filed under a new report is not ideal.

Apache Developer

“”

29

Page 57: What makes a good bug report?

Future of bug tracking

30

lies in thinkingoutside the box!

Page 58: What makes a good bug report?

SummaryProvided by

most reporters

Rated most helpful

by developers

Rated helpful

by most reporters

steps to reproduce

stack traces

test cases

observed behaviour

screenshots

code examples

summary

version

steps to reproduce

test cases

observed behaviour

stack traces

expected behaviour

version

code examples

error reports

expected behaviour

error reports

build information

summary

steps to reproduce

product

observed behaviour

expected behaviour

version

operating system

component

summary

severity

build information

Assist reporters

Responses

Help

ed

most

Used when fixing a bug

hardware severity

version

expected behavior

test cases/examples

observed behavior

screenshots

steps to reproduce

stack traces

14

31

Future of bug tracking

29

lies in thinking

outside the box!