cmpt 473 software quality assurance managing bugswsumner/teaching/473/17-bugs.pdf · 2020. 3....

60
Managing Bugs CMPT 473 Soſtware Quality Assurance Nick Sumner

Upload: others

Post on 04-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

Managing Bugs

CMPT 473Software Quality Assurance

Nick Sumner

Page 2: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

2

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

Page 3: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

3

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

● Eventually, you might actually encounter a bug/error

Page 4: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

4

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

● Eventually, you might actually encounter a bug/error

● 2 perspectives to consider

Page 5: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

5

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

● Eventually, you might actually encounter a bug/error

● 2 perspectives to consider– Developer – how should the program handle errors?

● Error Reporting

Page 6: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

6

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

● Eventually, you might actually encounter a bug/error

● 2 perspectives to consider– Developer – how should the program handle errors?

● Error Reporting

– Client/Teammate – how should the bug be reported / prioritized / fixed?

● Bug Advocacy

Page 7: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

7

Bugs!

● So far, we've been trying to find & avoid them– Test, test, test!

● Eventually, you might actually encounter a bug/error

● 2 perspectives to consider– Developer – how should the program handle errors?

● Error Reporting

– Client/Teammate – how should the bug be reported / prioritized / fixed?

● Bug Advocacy

These perspectives are not independent!Why?

Page 8: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

8

Error Reporting

● What should the program do when it detects an error?

Page 9: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

9

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice

Page 10: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

10

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it

Page 11: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

11

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it– Fail gracefully, continuing if possible

Page 12: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

12

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it– Fail gracefully, continuing if possible

● What should error messages contain?

Page 13: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

13

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it– Fail gracefully, continuing if possible

● What should error messages contain?– What specifically is incorrect

Page 14: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

14

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it– Fail gracefully, continuing if possible

● What should error messages contain?– What specifically is incorrect– Why it is incorrect

Page 15: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

15

Error Reporting

● What should the program do when it detects an error?– Simply ignoring the error is often a poor choice– Log it, print it, or otherwise report it– Fail gracefully, continuing if possible

● What should error messages contain?– What specifically is incorrect– Why it is incorrect– Where / when it is incorrect

Page 16: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

16

Error Reporting

● Should match your existing intuition:

Page 17: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

17

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!

Page 18: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

18

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!– “Segmentation Fault” is frustrating

Page 19: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

19

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!– “Segmentation Fault” is frustrating– “Program Error” is infuriating

Page 20: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

20

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!– “Segmentation Fault” is frustrating– “Program Error” is infuriating– “Index out of bounds: index i = 30 > size 15 at line 5 of

MyVector.java” is rather pleasant

Page 21: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

21

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!– “Segmentation Fault” is frustrating– “Program Error” is infuriating– “Index out of bounds: index i = 30 > size 15 at line 5 of

MyVector.java” is rather pleasant● But not all information should be reported!

– Why might some values/variables be undesirable to report?

Page 22: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

22

Error Reporting

● Should match your existing intuition:– “try { … } catch (Exception e) {}” is hideous!– “Segmentation Fault” is frustrating– “Program Error” is infuriating– “Index out of bounds: index i = 30 > size 15 at line 5 of

MyVector.java” is rather pleasant● But not all information should be reported!

– Why might some values/variables be undesirable to report?

Note: Sensitive values should not even be available or possible to report!

This indicates design bugs!

Page 23: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

23

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

Page 24: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

24

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:

Page 25: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

25

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure

Page 26: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

26

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”

Page 27: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

27

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports

Page 28: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

28

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects

Page 29: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

29

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects– Prioritizing the bug

Page 30: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

30

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects– Prioritizing the bug– Identifying workarounds & working cases

Page 31: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

31

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects– Prioritizing the bug– Identifying workarounds & working cases

What have we left out?

Page 32: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

32

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects– Prioritizing the bug– Identifying workarounds & working cases– … and creating a fix

Page 33: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

33

Reporting, Advocacy, & Management

● The reason we need good error messages is to support bug reporting & management

● Help facilitate:– Reproducing the failure– Finding the best initial “owner”– Combining duplicate reports– Identifying possible causes & effects– Prioritizing the bug– Identifying workarounds & working cases– … and creating a fix

Bad bug reporting & managementis worse that none!

Any ideas why?

Page 34: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

34

Bug Management

● All projects have unfixed bugs– How do we keep track of them & decide what to fix?

Page 35: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

35

Bug Management

● All projects have unfixed bugs– How do we keep track of them & decide what to fix?– Bug Databases– e.g. Bugzilla, Mantis, Trac, FogBugz, ...

Page 36: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

36

Bug Management

● All projects have unfixed bugs– How do we keep track of them & decide what to fix?– Bug Databases– e.g. Bugzilla, Mantis, Trac, FogBugz, ...

● Bug Databases– Centralize communication (developer & user) to:

Page 37: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

37

Bug Management

● All projects have unfixed bugs– How do we keep track of them & decide what to fix?– Bug Databases– e.g. Bugzilla, Mantis, Trac, FogBugz, ...

● Bug Databases– Centralize communication (developer & user) to:

● Own● Prioritize● Reproduce, Localize, Explain● Patch

Page 38: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

38

Ownership

● Who is responsible for a bug?– A very difficult task in general

Page 39: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

39

Ownership

● Who is responsible for a bug?– A very difficult task in general– “Who knows the most about this module?”– “Whose code (if any!) exposed the bug?” (RIP)– “Who worked with this code most recently?”

Page 40: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

40

Ownership

● Who is responsible for a bug?– A very difficult task in general– “Who knows the most about this module?”– “Whose code (if any!) exposed the bug?” (RIP)– “Who worked with this code most recently?”– Is this a client side issue?

Page 41: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

41

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

Page 42: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

42

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?

What makes bugs a higher priority for you?

Page 43: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

43

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users

Page 44: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

44

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users– Have substantial risks / consequences

Page 45: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

45

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users– Have substantial risks / consequences

This requires proper risk assessment (tricky)

Page 46: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

46

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users– Have substantial risks / consequences– Are new in the latest version

Page 47: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

47

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users– Have substantial risks / consequences– Are new in the latest version

Why are new bugs important?

Page 48: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

48

Prioritizing Bugs

● All projects have unfixed bugs– If a bug doesn't appear important, it won't get fixed

● Which bugs are important?– Occur frequently / for most users– Have substantial risks / consequences– Are new in the latest version

● Identifying the importance of bugs is critical to prioritizing them– Usually informally at first until a bug owner is found to

estimate the risk

Page 49: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

49

But what should a report contain?● A concise explanation of anything helpful in

evaluating & fixing the bug– …?

Page 50: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

50

But what should a report contain?● A concise explanation of anything helpful in

evaluating & fixing the bug– Product, version, & relevant feature– Platform & environment– Potential severity / priority– Possible owners– Possible duplicates– ...

Page 51: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

51

But what should a report contain?● A concise explanation of anything helpful in

evaluating & fixing the bug– Product, version, & relevant feature– Platform & environment– Potential severity / priority– Possible owners– Possible duplicates– A one line summary

Page 52: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

52

But what should a report contain?● A concise explanation of anything helpful in

evaluating & fixing the bug– Product, version, & relevant feature– Platform & environment– Potential severity / priority– Possible owners– Possible duplicates– A one line summary– An explanation of what happened, when it happened, & why it was unexpected

Page 53: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

53

But what should a report contain?● A concise explanation of anything helpful in

evaluating & fixing the bug– Product, version, & relevant feature– Platform & environment– Potential severity / priority– Possible owners– Possible duplicates– A one line summary– An explanation of what happened, when it happened, & why it was unexpected

– A minimal, self contained test case (steps to reproduce)

Page 54: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

54

Bug Advocacy – An Example“A colleague of mine have find a hairy bug,

here is a simple code to reproduce it.”public class FunWithMultiCatch { public static void main(String[] args) { Runnable r = () -> { try { Object o = null; o.getClass(); throw new IOException(); } catch(IOException | IllegalArgumentException e) { System.out.println("KO !"); } catch(RuntimeException e) { System.out.println("OK !"); } }; r.run(); }} http://mail.openjdk.java.net/pipermail/lambda-dev/2014-March/011940.html

Page 55: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

55

“A colleague of mine have find a hairy bug,here is a simple code to reproduce it.”

Bug Advocacy – An Example

public class FunWithMultiCatch { public static void main(String[] args) { Runnable r = () -> { try { Object o = null; o.getClass(); throw new IOException(); } catch(IOException | IllegalArgumentException e) { System.out.println("KO !"); } catch(RuntimeException e) { System.out.println("OK !"); } }; r.run(); }}

It prints 'KO !' :(

http://mail.openjdk.java.net/pipermail/lambda-dev/2014-March/011940.html

Page 56: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

56

Common Problems

● Incomplete / missing information is the most common issue [Bettenburg 2008]

– It is also what I face when trying to help students

Page 57: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

57

Common Problems

● Incomplete / missing information is the most common issue [Bettenburg 2008]

– It is also what I face when trying to help students

● Also, errors in:– steps to reproduce (incorrectness or overcomplication)

Page 58: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

58

Common Problems

● Incomplete / missing information is the most common issue [Bettenburg 2008]

– It is also what I face when trying to help students

● Also, errors in:– steps to reproduce (incorrectness or overcomplication)– expected behaviors

Page 59: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

59

How can we minimize test cases?

● For now:– How do you already minimize test cases?

Page 60: CMPT 473 Software Quality Assurance Managing Bugswsumner/teaching/473/17-bugs.pdf · 2020. 3. 27. · Bug Advocacy – An Example “A colleague of mine have find a hairy bug, here

60

How can we minimize test cases?

● For now:– How do you already minimize test cases?

Let's think of what else we could do…