Test Plans Making the world safe for software
Why?
Why? It’s really
Why? It’s really, really
Why? It’s really, really, really
Why? It’s really, really, really simple…
If it ain’t tested, it is broken. Why? It’s really, really, really simple… If it ain’t tested, it is broken.
How they are used in industry
How they are used in industry Very formal, very serious things
How they are used in industry Very formal, very serious things Can be literally hundreds of pages long
How they are used in industry Very formal, very serious things Can be literally hundreds of pages long Often have a very large & talented team of engineers working on it
How they are used in industry Very formal, very serious things Can be literally hundreds of pages long Often have a very large & talented team of engineers working on it No worries, we’re not going there…
How we will use them
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do.
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do. What goes in it?
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do. What goes in it? Team member’s names
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do. What goes in it? Team member’s names Program/project name (HelloWorld, HelloUser, etc)
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do. What goes in it? Team member’s names Program/project name (HelloWorld, HelloUser, etc) Flowchart (attached)
How we will use them An outline of what you need to do to make sure your software does what it is supposed to do. What goes in it? Team member’s names Program/project name (HelloWorld, HelloUser, etc) Flowchart (attached) Test cases
What are test cases?
What are test cases? Input, actions, events and the associated expected response
What are test cases? Input, actions, events and the associated expected response Used to determine if the program works
What are test cases? Input, actions, events and the associated expected response Used to determine if the program works Testing sequence:
What are test cases? Input, actions, events and the associated expected response Used to determine if the program works Testing sequence: Known good input, etc.
What are test cases? Input, actions, events and the associated expected response Used to determine if the program works Testing sequence: Known good input, etc. Reasonable but invalid input, etc.
What are test cases? Input, actions, events and the associated expected response Used to determine if the program works Testing sequence: Known good input, etc. Reasonable but invalid input, etc. Total obvious and evil garbage
How do I come up with my test cases?
How do I come up with my test cases? Basic job is to become evil!
How do I come up with my test cases? Basic job is to become evil! Try to figure out as many ways as possible to break and destroy your program as you can.
How do I come up with my test cases? Basic job is to become evil! Try to figure out as many ways as possible to break and destroy your program as you can. Pretend you are a user (not the designer) … what will/can they do?
How do I come up with my test cases? Basic job is to become evil! Try to figure out as many ways as possible to break and destroy your program as you can. Pretend you are a user (not the designer) … what will/can they do? Start with what you expect and move towards evilness.
How do I come up with my test cases?
How do I come up with my test cases? Look at your flowchart … it is your friend
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking?
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely?
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes”
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes” “yes” is the true case
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes” “yes” is the true case What is the false case?
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes” “yes” is the true case What is the false case? The obvious one is “no”
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes” “yes” is the true case What is the false case? The obvious one is “no” But…what about “Yes” or “YES” or “yEs” or “Y” or … you get the idea…
How do I come up with my test cases? Look at your flowchart … it is your friend Any decision is a danger spot Decision question really what I want to be asking? Do I have the “false” path covered right and completely? For instance: if user input is “yes” “yes” is the true case What is the false case? The obvious one is “no” But…what about “Yes” or “YES” or “yEs” or “Y” or … you get the idea… Will your software do the “right” thing?
How do I come up with my test cases?
How do I come up with my test cases? Look at your flowchart … continued
How do I come up with my test cases? Look at your flowchart … continued Any loop is a danger spot
How do I come up with my test cases? Look at your flowchart … continued Any loop is a danger spot Does my loop have an exit condition?
How do I come up with my test cases? Look at your flowchart … continued Any loop is a danger spot Does my loop have an exit condition? Is it “going” the right way?
How do I come up with my test cases? Look at your flowchart … continued Any loop is a danger spot Does my loop have an exit condition? Is it “going” the right way? Incrementing when I wanted to decrement? Or vice-versa…
How do I come up with my test cases?
How do I come up with my test cases? Look at your flowchart … continued
How do I come up with my test cases? Look at your flowchart … continued Look closely at any user input
How do I come up with my test cases? Look at your flowchart … continued Look closely at any user input Is it being stored properly? … at all???
How do I come up with my test cases? Look at your flowchart … continued Look closely at any user input Is it being stored properly? … at all??? Is it being handled correctly?
How do I come up with my test cases? Look at your flowchart … continued Look closely at any user input Is it being stored properly? … at all??? Is it being handled correctly? Remember … users are EVIL
Your Task
Your Task Put together a test plan to test the “File Open” dialog of WordPad
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use Remember the testing sequence:
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use Remember the testing sequence: Known good input
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use Remember the testing sequence: Known good input Reasonable but invalid input
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use Remember the testing sequence: Known good input Reasonable but invalid input Total, obvious and evil garbage
Your Task Put together a test plan to test the “File Open” dialog of WordPad Consider it’s capabilities and intended use Remember the testing sequence: Known good input Reasonable but invalid input Total, obvious and evil garbage Turn in at end of period…all team member names at top. …go…
WordPad Test Cases – Known Good
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Known Good 1. Action: Double-click on text file appearing in “Open” dialog window. Expected Response: WordPad will open the file 2. Action: Type name of text file appearing in “Open” dialog window, click “Open” button. 3. Action: Type name of text file appearing in “Open” dialog window, hit enter. 4. Action: Existing file not in window. Navigate to it using “Look in” pull-down menu. Expected Response: File will appear in “Open” dialog window 5. Action: Existing file not in window. Navigate to it using the “Up One Level” button and by double clicking on folders in the “Open” dialog window. 6. Action: File appears in “Open” dialog window. Select different file type in “Files of type” pull-down menu. Expected Response: File will no longer appear in “Open” dialog window . . . There are about a billion more . . .
WordPad Test Cases – Reasonable but Invalid
WordPad Test Cases – Reasonable but Invalid 7. Action: After completing #6 above (file name does not appear in “Open” dialog window), type in name of file in “File name” edit field, click “Open” button. Expected Response: WordPad will open the file 8. Action: Type name of non-existent file in “File name” edit field, click “Open” button. Expected Response: WordPad will display “File not found” error message 9. Action: Double-click on text file appearing in “Open” dialog window. 10. Action: With no text in the “File name” edit field, click the “Open” button. Expected Response: WordPad will do nothing . . . There are about a billion more . . .
WordPad Test Cases – Reasonable but Invalid 7. Action: After completing #6 above (file name does not appear in “Open” dialog window), type in name of file in “File name” edit field, click “Open” button. Expected Response: WordPad will open the file 8. Action: Type name of non-existent file in “File name” edit field, click “Open” button. Expected Response: WordPad will display “File not found” error message 9. Action: Double-click on text file appearing in “Open” dialog window. 10. Action: With no text in the “File name” edit field, click the “Open” button. Expected Response: WordPad will do nothing . . . There are about a billion more . . .
WordPad Test Cases – Reasonable but Invalid 7. Action: After completing #6 above (file name does not appear in “Open” dialog window), type in name of file in “File name” edit field, click “Open” button. Expected Response: WordPad will open the file 8. Action: Type name of non-existent file in “File name” edit field, click “Open” button. Expected Response: WordPad will display “File not found” error message 9. Action: Double-click on text file appearing in “Open” dialog window. 10. Action: With no text in the “File name” edit field, click the “Open” button. Expected Response: WordPad will do nothing . . . There are about a billion more . . .
WordPad Test Cases – Reasonable but Invalid 7. Action: After completing #6 above (file name does not appear in “Open” dialog window), type in name of file in “File name” edit field, click “Open” button. Expected Response: WordPad will open the file 8. Action: Type name of non-existent file in “File name” edit field, click “Open” button. Expected Response: WordPad will display “File not found” error message 9. Action: Double-click on text file appearing in “Open” dialog window. 10. Action: With no text in the “File name” edit field, click the “Open” button. Expected Response: WordPad will do nothing . . . There are about a billion more . . .
WordPad Test Cases – Reasonable but Invalid 7. Action: After completing #6 above (file name does not appear in “Open” dialog window), type in name of file in “File name” edit field, click “Open” button. Expected Response: WordPad will open the file 8. Action: Type name of non-existent file in “File name” edit field, click “Open” button. Expected Response: WordPad will display “File not found” error message 9. Action: Double-click on text file appearing in “Open” dialog window. 10. Action: With no text in the “File name” edit field, click the “Open” button. Expected Response: WordPad will do nothing . . . There are about a billion more . . .
WordPad Test Cases – Obvious Garbage
WordPad Test Cases – Obvious Garbage 11. Action: In the “File name” edit field, type in 256 of the following in a row: \0 and click the “Open” button Expected Response: WordPad will display “\0\0\0\0\0…\0 The above file name is invalid” error message 12. Action: Type in the name of a folder appearing in the “Open” dialog window. Expected Response: WordPad display the contents of that folder in the “Open” dialog window 13. Action: Select “Rich Text Format (*.rtf)” in the “Files of type” pull-down menu. Ensure at least rtf appear in the “Open” dialog window. Enter the text “*.rtf” (not including double-quotes) in the “File name” edit field. Click the “Open” button. Expected Response: WordPad will do nothing 14. Action: Enter the following text in the “File name” edit field: *.exe Locate an executable file (file name ends with .exe). Double-click on it. Expected Response: WordPad opens the file, displays strange symbols but doesn’t crash . . . There are about a billion more . . .
WordPad Test Cases – Obvious Garbage 11. Action: In the “File name” edit field, type in 256 of the following in a row: \0 and click the “Open” button Expected Response: WordPad will display “\0\0\0\0\0…\0 The above file name is invalid” error message 12. Action: Type in the name of a folder appearing in the “Open” dialog window. Expected Response: WordPad display the contents of that folder in the “Open” dialog window 13. Action: Select “Rich Text Format (*.rtf)” in the “Files of type” pull-down menu. Ensure at least rtf appear in the “Open” dialog window. Enter the text “*.rtf” (not including double-quotes) in the “File name” edit field. Click the “Open” button. Expected Response: WordPad will do nothing 14. Action: Enter the following text in the “File name” edit field: *.exe Locate an executable file (file name ends with .exe). Double-click on it. Expected Response: WordPad opens the file, displays strange symbols but doesn’t crash . . . There are about a billion more . . .
WordPad Test Cases – Obvious Garbage 11. Action: In the “File name” edit field, type in 256 of the following in a row: \0 and click the “Open” button Expected Response: WordPad will display “\0\0\0\0\0…\0 The above file name is invalid” error message 12. Action: Type in the name of a folder appearing in the “Open” dialog window. Expected Response: WordPad display the contents of that folder in the “Open” dialog window 13. Action: Select “Rich Text Format (*.rtf)” in the “Files of type” pull-down menu. Ensure at least rtf appear in the “Open” dialog window. Enter the text “*.rtf” (not including double-quotes) in the “File name” edit field. Click the “Open” button. Expected Response: WordPad will do nothing 14. Action: Enter the following text in the “File name” edit field: *.exe Locate an executable file (file name ends with .exe). Double-click on it. Expected Response: WordPad opens the file, displays strange symbols but doesn’t crash . . . There are about a billion more . . .
WordPad Test Cases – Obvious Garbage 11. Action: In the “File name” edit field, type in 256 of the following in a row: \0 and click the “Open” button Expected Response: WordPad will display “\0\0\0\0\0…\0 The above file name is invalid” error message 12. Action: Type in the name of a folder appearing in the “Open” dialog window. Expected Response: WordPad display the contents of that folder in the “Open” dialog window 13. Action: Select “Rich Text Format (*.rtf)” in the “Files of type” pull-down menu. Ensure at least rtf appear in the “Open” dialog window. Enter the text “*.rtf” (not including double-quotes) in the “File name” edit field. Click the “Open” button. Expected Response: WordPad will do nothing 14. Action: Enter the following text in the “File name” edit field: *.exe Locate an executable file (file name ends with .exe). Double-click on it. Expected Response: WordPad opens the file, displays strange symbols but doesn’t crash . . . There are about a billion more . . .
WordPad Test Cases – Obvious Garbage 11. Action: In the “File name” edit field, type in 256 of the following in a row: \0 and click the “Open” button Expected Response: WordPad will display “\0\0\0\0\0…\0 The above file name is invalid” error message 12. Action: Type in the name of a folder appearing in the “Open” dialog window. Expected Response: WordPad display the contents of that folder in the “Open” dialog window 13. Action: Select “Rich Text Format (*.rtf)” in the “Files of type” pull-down menu. Ensure at least rtf appear in the “Open” dialog window. Enter the text “*.rtf” (not including double-quotes) in the “File name” edit field. Click the “Open” button. Expected Response: WordPad will do nothing 13. Action: Enter the following text in the “File name” edit field: *.exe Locate an executable file (file name ends with .exe). Double-click on it. Expected Response: WordPad opens the file, displays strange symbols but doesn’t crash . . . There are about a billion more . . .
Clear and Unclear Windows