Ponder 06 : Black Box Testing
Create a test plan for a program used to verify Roman numerals. This test plan should conform to the outline specified in the reading and be complete enough to be used by any software engineer. This is to be done in groups of 3-4.
Program
The program for this assignment is the same one we used for Week 04. You can execute the program from:
RomanNumerals.cpp
RomanNumerals.out (unix executable)
This program will verify whether a given string is a valid Roman numeral. It will accomplish this by prompting the user for a string containing a Roman numeral. The string will then be converted to an integer and back to a string Roman numeral. If the source and destination string are the same, then the input is deemed to be a a valid Roman numeral.
Enter a Roman numeral or quit
Input: IV
valid
Input: IVI
invalid
Input: quit
The program has the following properties:
- Only two forms of input: a Roman numeral or a command to quit
- There is only one prompt used both for the Roman numeral and for the quit command
- Case is ignored for all input. Thus, "
mmm
" is the same as "MMM
" - Do not output anything if the quit command is input
- Output "
valid
" if the input is a valid Roman numeral. Otherwise, output "invalid
" - A valid Roman numeral is one that complies with the rules for Roman numerals (as used
today). These rules may be found using Google. Do not implement the rule regarding placing a
bar over a letter or over a string of letters. A valid Roman numeral uses the minimum number of
letters (
X
instead ofVV
) and has larger values to the left and smaller values to the right (XIX
instead ofIXX
). Do not worry about fractions (the dot), horizontal bars (multiply by 1,000), or vertical bars (multiply by 100), or the backwards C. Here is a definitive list of valid Roman numerals for our program:
Black Box Testing
Your assignment is to create a test plan for the Roman numeral program using the Black Box Testing technique. In other words, you are not to find defects but rather to provide a plan where, if executed, an competent software engineer would be able to find the defects. There are two deliverables for this assignment: 1) a test tree and 2) the collection of tests in the test suite.
1. Test Tree
Please provide a tree representing the hierarchy of tests to be completed. Please see the reading for a description of the purpose of this tree, how to create one, and how to use it to find test cases.
You may create this tree any way you like. It could be drawn in an image editor program (such as Adobe Photoshop or Microsoft Paint), your word processor usng the drawing tools, or on paper and take a picture. As long as it is legible, anything works.
Test Case
Please create a suite of test cases, each of which designed to exercise a given part of the program. Each test case must have the following components:
- Title: A statement describing what the test is designed to accomplish
- Steps: Exactly what input the tester needs to use. This could be one step or many
- Expected Output: What output would one expect from the provided steps?
Assignment
To turn this in:
- Please submit a single .DOCX file through I-Learn with your last name as
the file name. If your last name is "Smith," the filename would be
Smith_06.docx
.
Your grade for this activity will be according to the following rubric:
Exceptional 100% |
Good 90% |
Acceptable 70% |
Developing 50% |
Missing 0% |
|
---|---|---|---|---|---|
Test Tree 20% |
The tree leads one to believe that all possible test cases were found | The tree clearly illustrates how all the test cases are related to each other | One aspect about the test tree reduces its effectiveness as a tool to find test cases | The quality of the test tree is inadequate or fundamentally flawed | The test tree is missing |
Test Cases 50% |
There is no ambiguity in any of the test cases | Each test case completely describes what needs to be done to conduct the test | One part of a test case (title, steps, output) was not done correctly | One part of a test case (title, steps, output) is missing | The test cases do not resemble the problem definition |
Completeness 30% |
Complete coverage is achieved in the test suite | All major aspects of the software program will be tested in the test suite | One aspect of the software program is not tested in the test suite | One aspect of the software program is tested in the test suite | The test suite makes no attempt at completeness |