DNA
Dynamic Neural Art - Test Plan
Version 2.0
Table of Contents
- Scope
- Schedule
- Validation Tests
- Verification Tests
- Document Revision History
I. Scope
Each of the following issues will be tested to ensure they meet the Requirements Document, where a more detailed description of the individual requirements can be found.
- FUNCTIONAL REQUIREMENTS
- Image Selection by the User
The web interface which collects users votes and keeps track of the
current status of the system.
- The Learning Algorithm & Color Integration
The color integration and learning process, which takes the voter information and creates new formulas for fractal images.
- Generating the Fractals
The fractal generation program, that uses explicit parameters to create new fractals.
- NON-FUNCTIONAL REQUIREMENTS
II. Schedule
The links below will show where in our project development the testing has been scheduled.
- FUNCTIONAL REQUIREMENTS
- NON-FUNCTIONAL REQUIREMENTS
III. Validation tests
Test 1
(See task #1.22)
-
Purpose
-
Generate new fractals when given the list of parameters. The parameters
are generated from the learning algorithm.
-
Test description
-
We should have a new fractal image which accurately represents the parameters which were passed in.
This part of the system will actually produce an images in .gif format for each set of
parameters. The image size is 150 x 100 pixels. This will be a black box test, indicating that we will pass parameters
in, and only really care that it produces the correct output.
-
For this test to be successful, it should automatically that are 150 x 100 pixels in size. These images are placed into the directory /net/www-int/projects/DNA/graphics and are world readable and writeable. In addition, the file which contains the parameters which made up this image should be copied into the directory /net/www-int/projects/DNA/voting. These files should be in the format:
-
<Number of votes [initially set to 0]>
-
<Line one of the parameters>
-
<Line two of the parameters>
-
<Line three of the parameters>
-
Each file must be both world readable and writeable. (i.e. it must have
permissions 666). This is because the internal server will execute the
script which reads them, thus it must have read and write permissions.
-
This test will be performed by the programmer as soon as all parts
of the code (including the color map generation part) are completed.
-
Results
| Tester | |
| Date | |
| Platform | |
| Outcome | |
| Are 9 usable fractals generated automatically in .gif format? |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| | | | | | | | | |
| Are 9 usable fractals made world read/writeable? |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| | | | | | | | | |
| Are 9 usable fractals placed in the correct directory? |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| | | | | | | | | |
| Comments | |
Test 2
(See task #1.015)
-
Purpose
-
Incorporating color into the images. The purpose of this part of the
system, is to combine colors from previous winning images to produce new
colors. This should be done in a command line, non-interactive way.
-
Test description
This test is a little more difficult to do. Again, we will run a black
box test here, but the output is inherently non-deterministic. We would
not want the same inputs to always produce the exact same output, otherwise
all of our pictures would tend towards the same color [probably a shade
of blue/gray]. We do want it to produce output which has some
of the characteristics of the to winning pictures. It should have also have
a large element of randomness.
To achieve this, the only real requirement for the outputs of this test,
is that this portion of the system produces valid color maps. With no user
interaction, it should be able to take the current color maps, and the
current vote tallies for each image, and should produce 9 new color maps.
Each of these should have some of the aspects of the old color maps, but
can also have new mutations.
These color maps should be placed into files called 0.map, 1.map etc...and
should be placed into the directory /net/www-int/projects/DNA/voting. All
of these files should be world readable.
-
This test will be performed by the manager, who is currently programming
that aspect of the system.
-
Results
| Tester | |
| Date | |
| Platform | |
| Does the color scheme work with the learning algorithm? | |
| Outcome | |
| Comments | |
Test 3
(See task #3.31)
-
Purpose
-
The web page is the part of our system which the users will actually
be using. Therefore, its very important that we have a easy to use interface. It also has to be functional.
-
Test description
-
To test this part of the system, we will create a web page which displays
all 9 images, and allows the user to enlarge each picture, one at a time. The user will
also be able to select their top three choices from a list of all the possible
images.
-
When selecting their top 3 they are only allowed to have one choice
for first place, one choice for second place and one choice for third.
All 3 of the above can actually be the same picture. (i.e. A user can really
like one picture, and select it as first, second and third)
-
It would be ideal to perform user interface tests on this page, however
due to lack of time, that may not be possible right now. In the meantime,
we will perform a fairly simple blackbox test. HTML is already a well tested
language, so we can assume most functionality works. For example on the
page we will use radio buttons to enforce the rule that only one image
may be selected as first place. There is no need to test the fact that
only one can be selected then, since we already know HTML does that correctly.
-
We will however test the functionality of this page. Specifically we
will test:
| The submit button
|
Should call the appropriate script passing the selected pictures as
parameters
|
| 1st Choice Button
|
Identifies first choice picture
|
| 2nd Choice Button
|
Identifies second choice picture
|
| 3rd Choice Button
|
Identifies third choice picture
|
| Help Button
|
Links to the help page
|
| Reload button
|
Reloads the current page
|
-
This test will be performed by the Architect, and can be completed
as soon as the final version of the web page exists.
-
Each of these tests should be performed on ALL of the platforms which
we have specified as our target platform.
-
Results
-
| Tester | |
| Date | |
| Platform | |
| Do the elements of the web page function correctly? |
The submit button | 1st Choice Button | 2nd Choice Button | 3rd Choice Button | Help Button | Reload button |
| | | | | | |
| Outcome | |
| Comments | |
Test 4
(See task #4.4)
-
Purpose
-
This test will check to ensure that the CGI script which is behind
the web page functions correctly. Basically the web page passes its votes
to the CGI script when submit is pressed. The CGI script is then responsible
for updating the vote counts.
-
Test description
-
This test will be performed when the web page is finished. A working
model of the web page already exists, and we are able to do preliminary tests. Using the sample web page, we can create votes for some of the pictures, and if the code is working properly, this script will update the data files.
-
Each picture has an associated data file with it. The first line in
each of these files is how many votes that file has already received. This
file gets set back to 0 by the fractal learning program. If the CGI script is working correctly, points will be added to the number on the first line of
the corresponding file. (For example, assume I pick image 5 as my
first choice. 15 points will be added to the number on the first line
of the file /net/www-int/projects/DNA/voting/5.data ). Second place vote
will result in 10 additional points for that file, and third place file
will add 5 points.
-
The script must do a few additional things. When accepting a vote,
the page will notify the user that their vote has been received, and
tell them how many votes until the images get updated. If their vote can
not be currently accepted, the script should notify them.
-
Conditions when a vote can not be taken:
-
The page is currently being updated
-
The fractals which the user is seeing are not the most current fractals.
Thus we are in the process of updating the pictures. While this process
is ongoing, we cannot allow them to vote, because this would lead to some
votes being lost.
-
The internal server is currently down. However they most likely would
not even get to the page in this case.
In addition the CGI script must ensure that 2 users do not attempt to write
to the same file at the same time, as this would create a race condition.
Thus file locking must be used.
The CGI must also create a history of old pictures. This will happen at
the same time when the script calls the learning algorithm. It should create
a directory under the main web page which is called the generation number,
and should add to that directory a copy of all the small images. In addition
it should copy a standard index.html file in there.
Finally the CGI should update a file called /net/www-int/projects/DNA/voting/vote.count
to reflect the addition of this count.
The calling of the learning algorithm is achieved via an e-mail message.
This message should be sent when 5 votes have been received.
Actual testing of each of these functions is achieved by opening a web
browser, preferably multiple browsers on multiple platforms, and attempting
to vote. Setting the vote.count back to 0 and then going through the various
files and checking to see if the appropriate number of points were added
to them after each vote.
When the 5th vote happens, you can check that the appropriate e-mail message
was generated, the user was notified in the web browser and the old pictures
were archived.
-
Results
-
| Tester | |
| Date | |
| Platform | |
| Does the script update the .data files correctly? | |
| Is the user notified that his selections have been accepted? | |
| The page locks when the images are being updated? | |
| The script updates the vote.count? | |
| Outcome | |
| Comments | |
Test 5
(See task #2.21)
-
Purpose
-
The learning algorithm is the smarts of our project. It is where older
pictures get joined together and new ones are designed. Actually what happens is the parameters for the old pictures
are joined together and new parameters are created. These parameters are passed on to the image
generation algorithm.
-
Test description
-
We can test that the learning algorithm is working by giving it 2 input
files, and see if it can create a new fractal which has some properties
of both of the ones we passed it. Note this part of the project does
not actually generate a image, that is done separately. This just
means that it can take a list of parameters and merge them together.
-
-
Again this is a black box test. We will take 9 random image files,
with image 0 having 15 votes, image 1 having 10 votes and image 2 having
5 votes. We will then let the learning algorithm take those 9 files,
6 of them should die, or at least not have much input into the new image.
The other 3 images should impact the design of the new image greatly.
This should produce 6 new sets of parameters which when passed to the image
rendering program should produce 9 fractals which have common traits, but
are all different.
-
-
This test can only be performed when all of the learning algorithm
has been implemented. This test will be performed by the programmer.
-
Results
| Tester | |
| Date | |
| Platform | |
| Does the learning algorithm generate valid fractal parameters? | |
| Do the new images reflect aspects of the previous generation? | |
| Outcome | |
| Comments | |
Test 6
(See task #3.311)
-
Purpose
-
This test checks the performance of our project on all of our target platforms.
-
-
Test description
-
The voting page and winning page need to be viewed on all of the target platforms. The user must be able to submit votes, get confirmation, and view the results on any of the target platforms.
Results
| Tester | |
| Date | |
| Platform | |
| Does the project perform to specification? |
Macintosh | Windows 3.1 | Windows 95 | Sun | SGI |
| | | | | |
| Outcome | |
| Comments | |
Test 7
(See task #3.312)
-
Purpose
-
This test checks the performance of our project on all of our target web browsers.
-
-
Test description
-
The voting page and winning page need to be viewed on all of the target web browsers. The user must be able to submit votes, get confirmation, and view the results on any of the target web browsers.
Results
| Tester | |
| Date | |
| Platform | |
| Does the project perform to specification? |
Netscape 3.0 | Internet Explorer
3.0 |
| | |
| Outcome | |
| Comments | |
Test 6
(See task #4.4)
-
Purpose
-
This test is for the first of the non-functional requirements.
Specifically the Reasonable Turnaround Time requirement. We want our page to be as user friendly as is possible.
We do not want the user to get so discouraged by the time delay, that we
miss their vote.
-
Test description
-
In our requirements document, we defined that no longer than 5 minutes
should be required to update the images. To test this, we will perform
multiple tests:
-
-
First we will submit the same votes multiple times. The web page
is designed to automatically update after 5 minutes, by that time we should
have new images to see.
-
-
In addition we would want to try the server with a higher load.
To do that, we will sit 5 people on computers and have them all voting
at the same time...during the more busy time of the day [yet to be determined]
for the machine where the fractals are being generated.
-
-
This test will be performed by the Architect as soon as all other parts
of the project are working.
-
Results
| Tester | |
| Date | |
| Platform | |
| Are the images generated and updated within the specified time frame? | |
| Outcome | |
| Comments | |
Test 7
(See task #3.31)
-
Purpose
-
The voting page can only allow three images to be submitted. The user be only vote on three images.
-
Test description
-
We will try different ways to click on the list boxes and submit button.
-
-
This test will be performed by the Architect as soon as all other parts
of the project are working.
-
Results
| Tester | |
| Date | |
| Platform | |
| Were there any ways to submit more than three votes? | |
| Outcome | |
| Comments | |
Test 8
(See task #3.31)
-
Purpose
-
The user should be able to work the voting page without any outside assistance.
-
Test description
-
We will introduce our project to several test groups and monitor their feedback.
-
-
This test will be performed by the entire team as soon as all other parts
of the project are working.
-
Results
| Tester | |
| Date | |
| Platform | |
| How many people participated? | |
| How many needed assistance? | |
| Any other problems? | |
| Any suggestions? | |
| Outcome | |
| Comments | |
IV. Verification Tests
This section contains details on each of the tests that are designed for
verification ("Are we building the thing right?"). There is a section devoted
to each test which contains a high-level description of the test, a pointer
to reference material within project documentation, the actual test to
be performed, and the results of the test (once completed). We will not
be completing this section for now. If it were to be
filled in, it would follow the same format as the validation tests section.
V. Revision History
| 1 | Date: | 5/15
/97 |
| Name(s): | Lynn Bacher - Technical
Writer |
| Description of
revision: | Update to the Test plan. Test Plan 2.0 has been updated to
include the additional data suggested by the
grading criteria. |
DNA Home Page
Last Modified 5/15/97 -- C. Lynn Bacher
(lynn@cc.gatech.edu)